1 定义:spring是一个开源的控制反转和面向切面的容器框架
目的:为了简化企业开发,实现一个全方位的整合框架。
2 Ioc概念
控制反转,是面向对象的编程法则,将程序主动权由我们教给Ico容器,创建对象和依赖对象。
3 DI概念
(1) 依赖注入,由spring容器构建到依赖对象中去。
(2)依赖注入的方式
1 应用DI原则后,代码将更加清晰。
2 实现更高的松藕合更加容易。
3 构造方法的注入
public DeptService(DeptDao deptDao){
this.deptDao=deptDao;
}
将DeptDao交由spring容器管理
<bean id="deptDao" class="com.zhidisort.dao.DeptDao"/>
将DeptService交由ioc容器管理
<bean class="com.zhidisort.service.DeptService">
将依赖对象注入到service
<construtor -arg ref="deptDao"/>
</bean>
set属性注入
public setDeptDao(DptDao deptDao){
this.deptDao=deptDao;
}
将DeptDao交由spring容器管理
<bean id="deptDao" class="com.zhidisort.dao.DeptDao"/>
将DeptService交由ioc容器管理
<bean class="com.zhidisort.service.DeptService">
将依赖对象注入到service
<property name="deptDao" ref="deptDao"/>
</bean>
4 bean的作用域
bean的作用域主要使用的有两种:
单例bean : scope="singleton" 随着容器的开启实例化对象
原型bean : scope="prototype" ,在调用时才会被实例化, 每次实例化都会创建新的实例,
5 spring-bean的生命周期
1 inin-method="init" 指定类初始化被调用的方法。
2 destroy-method="destroy" 指定类被销毁时调用的方法。
6 bean的普通类属性装配
private driverClass;
private url;
private username;
private password;
提供get set tostring 方法;
<bean class="com.zhidisort.util.ConnectionPool">
<propertry name="drviceClass" value="com.mysql.jdbc.Drvice"
<propertry name="url" value="jdbc:mysql://localhost:3306/company">
<propertry name="username" value="root">
<propertry name="password value="root">
</bean>
7 bean的集合属性装配
private List<String> list;
private Set<Integer> set;
private Map<String,String> map;
private String[] strs;
提供 get set toString();方法
<bean class="com.zhidisort.util.ConnectionPropertry">
<propertry name="list">
<list>
<value>石烁好无聊</value>
</list>
</propertry>
<propertry name="set">
<set>
<value>1234457</value>
</set>
</propertry>
<propertry name="map">
<map>
<entry key="key1" value="value1"></entry>
</map>
</propertry>
<propertry name="strs" >
<array>
<value>老赵很帅</value>
</arrey>
</propertry>
8 bean的延迟初始化
lazy-init="true" 延迟初始化
lazy-init="false" 不延迟初始化
目的:为了简化企业开发,实现一个全方位的整合框架。
2 Ioc概念
控制反转,是面向对象的编程法则,将程序主动权由我们教给Ico容器,创建对象和依赖对象。
3 DI概念
(1) 依赖注入,由spring容器构建到依赖对象中去。
(2)依赖注入的方式
1 应用DI原则后,代码将更加清晰。
2 实现更高的松藕合更加容易。
3 构造方法的注入
public DeptService(DeptDao deptDao){
this.deptDao=deptDao;
}
将DeptDao交由spring容器管理
<bean id="deptDao" class="com.zhidisort.dao.DeptDao"/>
将DeptService交由ioc容器管理
<bean class="com.zhidisort.service.DeptService">
将依赖对象注入到service
<construtor -arg ref="deptDao"/>
</bean>
set属性注入
public setDeptDao(DptDao deptDao){
this.deptDao=deptDao;
}
将DeptDao交由spring容器管理
<bean id="deptDao" class="com.zhidisort.dao.DeptDao"/>
将DeptService交由ioc容器管理
<bean class="com.zhidisort.service.DeptService">
将依赖对象注入到service
<property name="deptDao" ref="deptDao"/>
</bean>
4 bean的作用域
bean的作用域主要使用的有两种:
单例bean : scope="singleton" 随着容器的开启实例化对象
原型bean : scope="prototype" ,在调用时才会被实例化, 每次实例化都会创建新的实例,
5 spring-bean的生命周期
1 inin-method="init" 指定类初始化被调用的方法。
2 destroy-method="destroy" 指定类被销毁时调用的方法。
6 bean的普通类属性装配
private driverClass;
private url;
private username;
private password;
提供get set tostring 方法;
<bean class="com.zhidisort.util.ConnectionPool">
<propertry name="drviceClass" value="com.mysql.jdbc.Drvice"
<propertry name="url" value="jdbc:mysql://localhost:3306/company">
<propertry name="username" value="root">
<propertry name="password value="root">
</bean>
7 bean的集合属性装配
private List<String> list;
private Set<Integer> set;
private Map<String,String> map;
private String[] strs;
提供 get set toString();方法
<bean class="com.zhidisort.util.ConnectionPropertry">
<propertry name="list">
<list>
<value>石烁好无聊</value>
</list>
</propertry>
<propertry name="set">
<set>
<value>1234457</value>
</set>
</propertry>
<propertry name="map">
<map>
<entry key="key1" value="value1"></entry>
</map>
</propertry>
<propertry name="strs" >
<array>
<value>老赵很帅</value>
</arrey>
</propertry>
8 bean的延迟初始化
lazy-init="true" 延迟初始化
lazy-init="false" 不延迟初始化