之前我们看了如何使用注解配置spring的功能,那么现在我们再看一下如何使用xml配置spring。
为了方便展示,笔者再新建一个项目,过程就不赘述。
新项目建好后,我们在main的java目录下,和之前一样,建一个名为hello的包
然后把之前的这三个class都copy过来
回到spring02项目,因为我们不再使用注解的方式去配置bean了,所以我们把这些注解全都删掉
把这几个注解删掉后,我们把各个类的包都整理一下,鼠标点中Import这行后,Alt + Enter,再选Optimize imports即可。
把MessagePrinter和MessageService的引入都删掉,ApplicationSpring会自动留下两个我们待会要用到的。
像spring01一样,把spring的核心包通过pom.xml导入进去,这个没什么技术含量的,从spring01复制过来就可以了。
点击右下角的 Import Changes保存引入。
引入成功后,我们回到自己的项目结构。看到这里有个文件夹叫resources,这个文件夹是maven项目放置基本配置的地方。
我们在这个文件夹下面新建一个xml文件。
依旧是快捷键Alt + insert键,选择SpringConfig
文件名就叫applicationContext
创建好了之后发现里面有几行代码,也不知道是什么意思,怎么办呢?
我们先不去管它,反正不要动就对了。
我们在<beans>标签下新加入一个<bean>标签,这样一来这个bean所指向的class就能直接被spring所管理,我们称之为bean类。
<bean id="service" class="hello.MessageService"></bean>
同样的,我们把MessagePrinter也加入到bean中去
<bean id="printer" class="hello.MessagePrinter"></bean>
这个时候,我们需要把这两个对象给关联起来,因为printer是包含service的。
我们就在printer的bean标签里加入这样一行xml
<property name="messageService" ref="service">
</property>
这行xml的意思是,把service和printer之间建立起联系。
其中property的意思是属性
name则对应Printer类中成员变量的命名
ref则对应service对应的bean的id
很难理解吗?我们画个图来理一下逻辑
这样,它们之间的关系就被绑定起来了。
回到ApplicationSpring类,我们删掉一些没有用的代码,留下以下几行就行。
我们把这行代码改一下,被红框框住的这行代码意思是“注解形式的配置应用程序的上下文”,而我们现在没有用注解,我们用的是XML,所以需要改一下
改成这样
ApplicationContext context = new
ClassPathXmlApplicationContext("applicationContext.xml");
这个构造函数里,我们需要传入一个参数。这个传入的参数表示着刚才我们创建的xml的文件名,因为我们创建的文件名就在resources的根目录下,所以它能自动找到。
这个时候,我们的代码就编写完成了,Alt + Shift + F10跑一下~
也就是说,我们也能通过XML的方式来实现Spring对对象的管理。