![19abc02c21b62dc97c8d3a8dc4ad0a99.png](https://i-blog.csdnimg.cn/blog_migrate/4bb1e427f418052ab0b95e8c32da8b9e.jpeg)
刚开始学习Spring,就是通过XML的方式来装配各种Bean。实话实说,之前通过XML装配的方式使用Spring,没觉得不方便,也不觉得作出的程序有多复杂。
三年前的某一天,有个刚刚毕业的新同事写了一段代码让我检查,他的程序通过注解的方式来使用Spring,我被他的代码给惊艳到了,从那天起,我将所有的Java工程(或模块)全部替换成注解的方式,XML配置文件从此从我的代码中消失了。
一晃三年过去了,再也没有碰过XML装配文件。今天突然写这个主题,就是想勾起曾经的回忆,算是为了忘却的纪念吧。
下面使用IDEA工具,将程序的开发过程,逐步记录下来。如果你有兴趣,可以打开电脑实操一下。
第1步:打开IDEA,创建一个新的工程,选择空的工程:
![eb7cec1c3f0b14be195ef4b1e3dd688c.png](https://i-blog.csdnimg.cn/blog_migrate/4b568898b77a19173e0781031d8c88a2.jpeg)
第2步:点击Next,输入工程名XmlProject:
![b4274ff96c03cbbf51ed638b72f27a6c.png](https://i-blog.csdnimg.cn/blog_migrate/bda7ed420826bf77544dafaa565ef709.jpeg)
第3步:点击Finish,完成工程的创建。
第4步:IDEA自动进入Project Structure界面,我们接着创建模块:
![f4dd34a8fa134aeb21934174f7961af0.png](https://i-blog.csdnimg.cn/blog_migrate/09629a993368f0e16870cd8b579127d2.jpeg)
第5步:选择Maven类型的模块:
![59bc02269e40fb9acfafd76c5fb128dd.png](https://i-blog.csdnimg.cn/blog_migrate/e030767d50c0b4d60297b55e1439e446.jpeg)
第6步:点击“Next”按钮,输入模块的基本信息:
GroupId:com.flying
ArtifactId:xml_spring
![53ada4ea63395ee9f773d4f7c9e7343a.png](https://i-blog.csdnimg.cn/blog_migrate/e681fb2c9f04c09003ed42efd3c72e0a.jpeg)
第7步:点击“Next”按钮,出现下面的界面:
![d959be7f1093419da7da5da7233b6b0f.png](https://i-blog.csdnimg.cn/blog_migrate/546c134477d34f147b7165187311610b.jpeg)
第8步:点击“Finish”按钮,完成模块的创建。
第9步:点击“OK”按钮,退出Project Structure界面:
![0cbfac7db196823ff854653cca9c08e3.png](https://i-blog.csdnimg.cn/blog_migrate/6752e4e419b05853c61140e4d99f5c91.jpeg)
第10步:进入https://mvnrepository.com/网站,搜索spring,可以得到spring-context、spring-core、spring-beans的maven依赖:
![d82df38e52e62130197080209e0bc5f4.png](https://i-blog.csdnimg.cn/blog_migrate/8387728d3f465d827fed6e658404f0b3.jpeg)
第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窗口,并等待完成:
![2dcc1fc406d30ad49251742ef4c1a508.png](https://i-blog.csdnimg.cn/blog_migrate/911c2c8c606b1cd6e523518a77a915b7.jpeg)
第13步:在main/java目录中添加 com.flying.xml_spring包:
![60483b1b12b22794210ef41671ae9551.png](https://i-blog.csdnimg.cn/blog_migrate/09c0a5a03c7d3335eb345eee987d4bc0.jpeg)
第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文件:
![8a464cae81ac7267189aaa2c5234ae18.png](https://i-blog.csdnimg.cn/blog_migrate/a216c9f012fd2b941ba674400c50ea03.jpeg)
输入文件名为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类,得到的结果如下:
![22007883c6ed9020871fe7875118aecf.png](https://i-blog.csdnimg.cn/blog_migrate/b95974d40ff3d52f0babf117a2f1431f.jpeg)
可以看到,程序正常运行。这样,我们通过XML配置的方式,让Spring成功生成了三个Bean,并且完成了Bean的装配。