为什么Spring使用XML进行组件连接?

jan*_*ith 5 java spring inversion-of-control

我理解IOC概念,我们可以使用布线混合和匹配不同的类.通过将布线/关系处理委托给基础xml(上下文xml),每个类都可以摆脱硬代码的依赖性.

这是我的问题,为什么我们使用xml?我们可以使用java类简单地连接所有组件.代替

<bean id="helloWorld" class="com.vaannila.HelloWorld">
    <property name="message" value="HelloWorld"></property>
</bean>

public static void main(String[] args)
{
    // TODO Auto-generated method stub
    ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
    HelloWorld helloWorld = (HelloWorld) context.getBean("helloWorld");
    helloWorld.display();
}
Run Code Online (Sandbox Code Playgroud)

我们可以用它们重写它们

HelloWorld helloWorld = new HelloWorld();
helloWorld.setMessage("HelloWorld");
helloWorld.display();   
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 8

这基本上是Guice采取的方法,是的.

使用XML(或其他一些类似的基于文本的方法)也有优势.特别是,您可以在不重建任何内容的情况下更改应用程序的布线.如果你不想那样,你当然可以手工完成或使用像Guice这样的东西.

此外,Spring使用了以声明方式配置以启用AOP之类的事实.你可以手工完成所有这些,但它有点啰嗦.