``**Spring概述:轻量级,开源,javaEE框架,可以解决企业应用开发的复杂性。
核心:IOC(控制反转)和AOP(面向切面编程)。
特点:解耦,方便和其它框架整合,方便测试,方便进行事务操作等。**
/先了解一下IOC的过程再理解一下它的底层原理/
I0C过程:
第一步:在xml配置文件中配置要创建的对象,第二步加载配置文件,经过xml解析,然后通过反射创建对象。
I0C:把对象创建和对象之间的调用过程交给 spring 进行管理。使用IOC目的:就是为了解耦。
底层原理: XML解析、工厂模式、反射
/对于工厂所做的事情的简单解释/
工厂模式:原来是通过new对象来调用方法,那么这两个类之间的耦合度很高,经过一个工厂,类似于一个中间商,或者说第三方,来使那原本亲密的两个人没那么密切,来降低耦合度。
/接下来介绍一下实现IOC容器的两个接口以及其中一个接口的两个实现类/
IOC 思想基于I0C 容器完成,I0C 容器底层就是对象工厂。Spring提供I0C容器实现两种方式:(两个接口): 第一个是BeanFactory(是Spring内部接口,不提供开发人员使用)
第二个是ApplicationContext(BeanFactory接口的子接口,提供更多更强大的功能),一般用第二个。
第一个在加载配置文件的时候不会创建对象,在使用对象的时候 才会去创建对象,而第二个在加载配置文件的时候就已经把对象创建了。
ApplicationContext接口的主要实现类:
FileSystemXmlApplicationContext(文件路径写的是盘符下的)和ClassPathXmlApplicationContext(文件路径写的是src下的)
/接着开始认识Bean管理以及它的实现方式/
I0C操作Bean管理(主要指Spring创建对象, Spring注入属性)
Bean管理操作两种实现方式,一种是基于XML配置文件的方式,一种是基于注解的方式。
/接下来了解基于XML方式创建对象和注入属性/
<bean id=“user” class=“User”></bean>
你要创建的这个对象 ,给它取一个唯一标识 ,然后交给spring管理。
//加载xml配置文件
ApplicationContext context=new ClassPathXmlApplicationContext(“bean.xml”)
//获取配置创建的对象
User user=context.getBean(“user” ,User.class)
此时这个对象是执行无参构造创建的,也就是在原来的User类构造方法是无参构造。`
set方法注入属性:
<bean id="book" class="Book">
<property name="bame" value="笑傲江湖"></property>
<property name="bame" value="笑啊江湖"></property>
</bean>
有参数构造注入属性:
<bean id="orders" class="Orders">
<constructor- org name="oname" value="电脑"></constructor-org>
<constructor- org name="address" value="中国"></constructor-org>
</bean>
p名称空间注入:
<beans
xmlns:p="http://www.springframework.org/schema/p"
>
<bean id ="book" class="Book" p:bname="九阳电磁炉" p:bauthor="乖乖的">