一.spring的作用
spring 就是为了让我们以后能够做大的项目准备的。spring核心的功能就是一个工厂模式,spring相当于为你的项目专门成立一个一个工厂,这个工厂负责创建对象 ,维护对象之间的关系。你需要对象了,以前是直接new,现在
从spring 的工厂里面获取。
![](https://img2018.cnblogs.com/blog/1602834/201905/1602834-20190520160652697-1201816244.png)
spring 的核心完成两个工作:
1,创建对象
2,维护对象之间的依赖关系。
二.spring的基本配置
1.创建java项目,导入jar包
2.在src下创建主配置文件applicationContext
3.创建实体类
创建Display的接口:
![](https://img2018.cnblogs.com/blog/1602834/201905/1602834-20190520163108392-754812992.png)
创建Display的两个实现类:
LgDisplay:
![](https://img2018.cnblogs.com/blog/1602834/201905/1602834-20190520163212689-942032563.png)
SumSingDisplay:
![](https://img2018.cnblogs.com/blog/1602834/201905/1602834-20190520163245426-511250860.png)
创建CPU接口:
创建CPU接口是实现类InterlCpu:
创建E470笔记本的类,这个类要依赖两个属性一个是显示器Display,一个是Cpu:
/* 组装E470笔记本 */ public class E470 { //这里需要依赖接口 private Display display; private Cpu cpu; /** * 笔记本工作的方法 */ public void work(){ //cpu进行计算 cpu.calc(); //显示器显示 display.display(); } public Display getDisplay() { return display; } public void setDisplay(Display display) { this.display = display; } public Cpu getCpu() { return cpu; } public void setCpu(Cpu cpu) { this.cpu = cpu; } }
4.在spring的工厂中创建对象
<!--创建一个Lg显示器的对象 spring中以bean的方式管理对象,一个bean就代表创建了一个对象 class 配置类的完全限定名,表明该对象是哪个类的对象 id 配置类的唯一标识 --> <bean id="lgDisplay" class="com.aaa.spring.entity.LgDisplay"></bean> <!--创建一个三星显示器的对象--> <bean id="sumSingDisplay" class="com.aaa.spring.entity.SumSingDisplay"></bean> <!--创建英特尔cpu的对象--> <bean id="interlCpu" class="com.aaa.spring.entity.InterlCpu"></bean> <!--创建E470笔记本的对象--> <bean id="e470" class="com.aaa.spring.entity.E470"> <!--维护对象之间的依赖关系 ref是引用哪个对象,这里要写对象的id --> <property name="display" ref="lgDisplay"></property> <property name="cpu" ref="interlCpu"></property> </bean> </beans>
5.测试
/** * 测试从spring工厂中获取对象 */ public class Test01 { public static void main(String[] args) { //创建spring的工厂类的对象 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); //从工厂中获取对象 E470 e470 = (E470)context.getBean("e470"); //调用对象的方法 e470.work(); } }
总结:
spring的作用 1,创建对象 2,维护对象之间的关系
IOC 控制反转 主要是指在项目开发中对象创建方式的变化,原来不使用spring 创建对象是在程序中创建的,这样
对象和程序的耦合性就较强,不利用之后项目的扩展和维护。使用了spring之后,对象创建就放到工厂中进行了。
DI 依赖注入 主要指的对象之间关系的维护。原来在程序中如果一个对象要依赖另外一个对象了,可以直接调用对
象属性的setter方法。使用spring之后,我们通过spring依赖注入的方式维护对象之间的关系。
三.spring的BeanFactory和ApplicationContext
BeanFactory是ApplicationContext的父接口,BeanFactory接口定义了一些spring工厂最底层的使用的方法,一
般在spring的源码中我们使用BeanFactory,但是该类不建议程序员直接使用,建议程序员使用
ApplicationContext接口,该接口对BeanFactory功能进行了一些扩展:
1,提供spring的国际化支持
2,提供了事物的处理方式
3,可以加载多个主配置文件
以后一般开发中使用ApplicationContext接口,但是接口不能直接使用,我们可以同
ClassPathXmlApplicationContext类来实例化这个接口。我们也可以使用FileSystemXmlApplicationContext来实例化该接口:
![](https://img2018.cnblogs.com/blog/1602834/201905/1602834-20190520164631829-72344124.png)