Spring是轻量级的开源的JavaEE框架,目的在于解决企业应用开发的复杂性。
核心的两个部分:
1)IOC:控制反转,把创建对象和对象之间的调用过程交给Spring进行管理,目的是降低耦合度
底层原理:工厂模式、xml解析、反射
过程:
第一步:xml配置文件,配置创建的对象<bean id="dao" class="com.zong.UserDao"></bean>
第二步:在工厂类中进行xml解析,并通过反射创建对象
class UserFactory{
public static UserDao getDao(){
String classValue = class属性值;//通过xml解析
Class clazz = Class.forName(classValue);
return (UserDao)clazz.newInstance(); //通过反射创建对象
}
}
IOC底层就是一个对象工厂
IOC的bean管理包括创建对象和注入属性
IOC的bean管理操作包括:
1)创建对象
2)注入属性
实现的方式有:
a.基于xml配置文件的方式实现
(1)使用Bean标签,添加属性,就可以实现对象的创建
(2)Bean标签属性介绍:
*id:唯一标识
*class属性:类全路径(包类路径)
DI:依赖注入,添加属性
set方法注入
bean标签内添加property标签,即可注入属性,property标签的属性介绍:
name:属性名
value:属性值
<bean id="book" class="com.zong.spring">
<property name="bname" value"论语"></property>
//设置null值
<property name="bauthor">
<null/>
</property>
//属性赋值左右尖括号,用<![CDATA[]]>方式
<property name="naddress">
<value><![CDATA[<<南京>>]]></value>
</property>
//外部Bean,属性赋值为对象,用ref属性
<property name="userDao" ref="user"></property>
//内部级联赋值,需要生成get方法
<property name="userDao.attr1" value="value1"></property>
//内部Bean写法,等同于ref写法
<property name="userDao1"
<bean id = "user1" class="com.zong.spring">
<property name ="dname" value ="1" ></property>
</bean>
</property>
</bean>
<bean id="user" class="com.zong.spring">
//外部级联赋值
<property name="attr1" value="value1"></property>
</bean>
有参数构造注入
<bean id = "order" class="com.zong.spring">
<constructor-arg name="oname" value="电脑"></constructor-arg>
</bean>
b.基于注解的方式实现
2)AOP:面向切面,不修改源代码进行功能增强
核心的4个JAR包:
bean、context、core、expression
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。