什么是spring?
spring是一个一站式轻量级开源框架,目的是解决企业级应用开发中业务逻辑层与其他各层之间的耦合问题。
组成spring框架的七大模块:核心容器(Core Container),数据访问/集成(Data Access/Integration),Web层,Aop(面向切面编程)模块,植入(Instrumentation)模块,消息传递(messaging)模块和Test(测试)模块。
什么是springIoC?
IoC即控制反转,是spring框架的核心,用来削减计算机程序的耦合问题。
怎样理解控制反转?
当某个java对象(调用者,例如我们程序员)调用另一个java对象(被调用者)时,在传统模式下,调用者会采用"new"被调用者的方式来创建对象,而在spring框架中,对象的实例化不在由调用者来执行,而是交由spring容器来创建,spring容器会负责控制程序之间的关系,而不是由调用者的程序直接控制,这样创建对象的控制权由调用者转移到spring容器,控制权发生反转,这就是所谓的控制反转。这样能够减少调用者和被调用者之间的耦合性,有利于后期代码的维护。
现实生活也可以理解为当你饿的时候你自己可以做饭吃,而饭是你自己做的,饭相当于被调用者对象,而现在饭店盛行,甚至还有外卖,当你饿的时候,你可以选择点外卖,而外卖的饭是饭店做的,饭店相当于spring容器。
DI即依赖注入,依赖注入是实现控制反转的方法。
实现控制反转的是springIOC容器,springIoC容器的设计主要是基于BenFactory和ApplicationContext两个接口。
BeanFactory是一个管理Bean的工厂,主要负责初始化,管理,装配各种Bean.
ApplicationContext是BeanFactory的一个子接口,也是BeanFactory的超集,不仅拥有BeanFactory的所有功能,同时还添加了国际化,资源访问,事件传播等功能。
创建ApplicationContext的三种方式。
1.通过ClassPathXmlApplication创建
ApplicationContext appCon = new ClassPathXmlApplicationContext (” applicatioContext xml ”); 从src目录中找到指定的XML的配置文件。
2.通过FileSystemXmlApplication创建
ApplicationContext appCon= new FileSystemXmlApplicationContext (”D: \eclipse-workspace\chl \src\ applicationContext.xml”);
该方式将从指定文件的绝对路径中找到指定的配置文件。
3.通过Web服务器实例化ApplicationContext容器
此方法需在web.xml中编写如下代码:
依赖注入的方式
依赖注入有两种方式:
1.构造方法注入 2.setter方法注入
代码如下:
在Dao层创建一个接口并定义一个方法
创建该接口实现类并实现其接口方法
在Service层创建一个接口并定义方法
创建实现类并实现该方法同时注入Dao层
配置文件如下
测试类:
结果:
使用 Spring 容器通过 TestService实现类中的 sayHallo方法,调用了 TestDao 实现类中的 sayHallo方法,并输出了结果
这就是依赖注入两种方式的实现。
来源:CSDN
作者:misaki2012
链接:https://blog.csdn.net/misaki2012/article/details/104137634