春季注释和应用程序上下文之间有什么更好的东西



我想知道表演热中这些情况之间更好的事情是什么:

@Component
public class A{

    public void doSomethingOne(){
        ServiceDelegateA serviceA = (ServiceDelegateA) ApplicationContextUtils.getBean("ServiceDelegateA");         
        serviceA.compute();
    }

    public void doSomethingTwo(){
        ServiceDelegateB serviceB = (ServiceDelegateB) ApplicationContextUtils.getBean("ServiceDelegateB");         
        serviceB.doAction();
    }
}

@Component
public class A{

    @Autowired
    ServiceDelegateA serviceA;
    @Autowired
    ServiceDelegateB serviceB;

    public void doSomethingOne(){
    serviceA.compute();
    }

    public void doSomethingTwo(){

        serviceB.doAction();
    }
}

事先感谢您的帮助和建议。

我通过假设ApplicationContextUtils实现ApplicationContextAware来回答这个问题,并且内部有一个ApplicationContext

基于此处可用的弹簧文档,您可以阅读对配置Spring的注释比XML更好吗?,但作为比较。

基于XML的配置;

  1. 可以与没有任何注释的普通旧Java对象(POJO)一起使用。这意味着Java对象中没有其他依赖关系。源代码永远不会用于弹簧配置,并且可以在其他地方重复使用源代码。
  2. 当您使用预编译的JAR文件时,这种方法更好
  3. 配置是集中式的,易于维护

基于注释的配置;

  1. 所有相关的配置都在Java对象本身中,因此配置是干净和简洁的。
  2. 配置是分散的,有时很难维护。
  3. Java类不再是Pojos。

这两种方法都有其优点和缺点,但由开发人员决定适合其需求的正确方法。

最新更新