欢迎来到天天文库
浏览记录
ID:40712563
大小:26.10 KB
页数:5页
时间:2019-08-06
《Spring入门_IOC控制反转》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、====================Demo==========================publicclassPersonService{privateStringname;privateintage;publicvoidsetAge(intage){this.age=age;}publicvoidinfo(){System.out.println("姓名:"+name+"年龄:"+age);}publicvoidsetName(Stringname){this.name=name;}}====
2、=================Config===================================================Test==============================Applicatio
3、nContextcontent=newClassPathXmlApplicationContext("applicationContext.xml");PersonServiceps=content.getBean("person",PersonService.class);ps.info();姓名:杨飞年龄:12=====================End=============================上面两行代码并不是直接创建Person实例,而是通过Spring容器获取Person实例的
4、,这正式Spring容器的作用,Spring容器不仅可以创建Person实例,而且该Person的name属性和age属性有了属性值。Spring容器根据配置文件信息,负责创建Person实例,并为Person实例设置属性值-----------这种由Spring容器设置属性的方式被称为控制反转(IOC)控制反转/依赖注入,依赖注入是目前最优秀的解耦方式,依赖注入让Spring的Bean以配置文件组织在一起,而不是以硬编码的方式耦合在一起。依赖注入通常有两种方式:设置注入:IOC容器使用属性Setter方法
5、来注入被依赖的实例构造注入:IOC容器使用构造器来注入被依赖的实例====================DemoDao==========================publicinterfacePerson{//定义了一个使用斧子的方法publicvoiduseAxe();}publicinterfaceAxe{//有一个坎的方法publicStringchop();}====================DaoImpl=========================publicclassSto
6、neAxeimplementsAxe{publicStringchop(){return"石斧砍柴好慢";}}publicclassChineseimplementsPerson{//人使用斧子,那么必须有一个斧子privateAxeaxe;publicvoidsetAxe(Axeaxe){this.axe=axe;}publicvoiduseAxe(){System.out.println(axe.chop());}}到现在为止Chinese还不知道和那个Axe实例耦合,Spring当然也不知道!!Spr
7、ing需要使用XMl配置文件来指定实例之间的依赖关系。=====================Config=================================================
8、==Test===============================ApplicationContextcontent=newClassPathXmlApplicationContext("applicationContext.xml");Personch=(Person)content.getBean("ch",Person.class);ch.useAxe();石斧砍柴好慢===============
此文档下载收益归作者所有