
刚开始学习Spring,就是通过XML的方式来装配各种Bean。实话实说,之前通过XML装配的方式使用Spring,没觉得不方便,也不觉得作出的程序有多复杂。
三年前的某一天,有个刚刚毕业的新同事写了一段代码让我检查,他的程序通过注解的方式来使用Spring,我被他的代码给惊艳到了,从那天起,我将所有的Java工程(或模块)全部替换成注解的方式,XML配置文件从此从我的代码中消失了。
一晃三年过去了,再也没有碰过XML装配文件。今天突然写这个主题,就是想勾起曾经的回忆,算是为了忘却的纪念吧。
下面使用IDEA工具,将程序的开发过程,逐步记录下来。如果你有兴趣,可以打开电脑实操一下。
第1步:打开IDEA,创建一个新的工程,选择空的工程:

第2步:点击Next,输入工程名XmlProject:

第3步:点击Finish,完成工程的创建。
第4步:IDEA自动进入Project Structure界面,我们接着创建模块:

第5步:选择Maven类型的模块:

第6步:点击“Next”按钮,输入模块的基本信息:
GroupId:com.flying
ArtifactId:xml_spring

第7步:点击“Next”按钮,出现下面的界面:

第8步:点击“Finish”按钮,完成模块的创建。
第9步:点击“OK”按钮,退出Project Structure界面:

第10步:进入https://mvnrepository.com/网站,搜索spring,可以得到spring-context、spring-core、spring-beans的maven依赖:

第11步:修改pom.xml文件,将上面查到的spring-context、spring-core、spring-beans的依赖加入,现在pom.xml文件的内容变为:
<?xml version="1.0" encoding="UTF-8"?>4.0.0com.flying xml_spring 1.0-SNAPSHOTorg.springframework spring-context 5.2.8.RELEASEorg.springframework spring-core 5.2.8.RELEASEorg.springframework spring-beans 5.2.8.RELEASE第12步:刷新maven窗口,并等待完成:

第13步:在main/java目录中添加 com.flying.xml_spring包:

第14步:在com.flying.xml_spring包中建立Worker接口,代码如下:
package com.flying.xml_spring;public interface Worker { public void doTheWork();}第15步:在com.flying.xml_spring包中建立Driver类,该类实现Worker接口,代码如下:
package com.flying.xml_spring;public class Driver implements Worker { public void doTheWork() { System.out.println("I am a driver."); System.out.println("I am driving"); }}第16步:在com.flying.xml_spring包中建立Teacher类,该类实现Worker接口,代码如下:
package com.flying.xml_spring;public class Teacher implements Worker { public void doTheWork() { System.out.println("I am a teacher."); System.out.println("I am teaching the pupils."); }}第17步:在com.flying.xml_spring包中建立WorkerManager类,该类管理多个Worker,代码如下:
package com.flying.xml_spring;public class WorkerManager { private Worker worker1; public Worker getWorker1(){ return worker1; } public void setWorker1(Worker worker1){ this.worker1 = worker1; } private Worker worker2; public Worker getWorker2(){ return worker2; } public void setWorker2(Worker worker2){ this.worker2 = worker2; }}第18步:在main/resources目录下创建Spring Config的xml文件:

输入文件名为applicationContext.xml,得到的内容如下:
<?xml version="1.0" encoding="UTF-8"?>第19步:修改applicationContext.xml文件,加入bean的定义。现在applicationContext.xml内容变为:
<?xml version="1.0" encoding="UTF-8"?>第20步:修改applicationContext.xml文件,加入bean装配时扫描的包路径。现在applicationContext.xml文件的内容变为:
<?xml version="1.0" encoding="UTF-8"?>第21步:在com.flying.xml_spring包中建立Application类,用于启动Spring,并执行测试任务。Application类的代码如下:
package com.flying.xml_spring;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Application { public static void main(String[] args){ ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); WorkerManager workerManager = (WorkerManager)applicationContext.getBean("workerManager"); workerManager.getWorker1().doTheWork(); workerManager.getWorker2().doTheWork(); }}第22步:运行Application类,得到的结果如下:

可以看到,程序正常运行。这样,我们通过XML配置的方式,让Spring成功生成了三个Bean,并且完成了Bean的装配。