spring Code(spring 核心)

一.spring的作用
spring 就是为了让我们以后能够做大的项目准备的。spring核心的功能就是一个工厂模式,spring相当于为你的项目专门成立一个一个工厂,这个工厂负责创建对象 ,维护对象之间的关系。你需要对象了,以前是直接new,现在
从spring 的工厂里面获取。
spring 的核心完成两个工作:
1,创建对象
2,维护对象之间的依赖关系。
二.spring的基本配置
1.创建java项目,导入jar包
2.在src下创建主配置文件applicationContext
3.创建实体类
  创建Display的接口:

  创建Display的两个实现类:   

LgDisplay:
SumSingDisplay:

  创建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://www.cnblogs.com/duguangming/p/10895007.html