一、概述
1、spring框架最重要的两个功能:控制反转(IOC)与依赖注入(DI)
2、spring框架的性质是容器性质的,容器装什么对象,就有什么功能
3、BeanFactory接口:spring的原始接口,针对原始接口的实现类功能比较单一
BeanFactory接口实现类的容器,特点是每次在获得对象时才会创建对象
二、开发环境的搭建(spring在web项目中的应用)
1、spring依赖的添加
2、spring容器的加载(web容器监听器,监听spring容器的创建)
3、配置bean对象,spring容器装什么对象,web项目就有什么功能,java功能都是依赖对象而存在的,我们需要的就是怎么去运用对象
三、Bean对象的配置
1、Bean元素的配置:<bean>标签的使用,注册类
2、Bean的属性注入:set方法注入属性、构造函数注入属性、p名称空间注入、spel注入
复杂类型的注入:数组、List、Map、Properties
四、注解配置spring
1、开启使用注解代理配置文件:
<context:component base-package=“com.baidu.bean”></context:component>
会扫描指定包中的所有注解
2、在类中使用注解完成配置
@Service:service层注解 @Controller: controller层注解 @Repository:dao层注解
3、对象属性值的注入:
@Value注解的使用
@Autowired注解的使用:对象自动装配,不用我们去spring容器中拿取
@Qualifier注解:告诉对象装配哪个名称的对象(在类名与spring注册的id值有出入的时候使用)
@Resource:手动注入哪个名称的对象
4、对象初始化|销毁方法的注解
@PostConstruct注解:有此注解的方法,为该对象初始化调用的方法
@PerDestroy注解:有此注解的方法,为该对象销毁时调用的方法
五、spring与junit的整合测试
1、注解@Test
六、spring中的aop思想
1、aop思想:横向重复,纵向抽取(spring能够为容器中管理的对象生成动态代理对象)
2、名词解析:连接点:目标对象中,所有可以增强的方法
切入点:目标对象,已经增强的方法
通知/增强:增强的代码
目标对象:被代理的对象
织入:将通知应用到切入点的过程
代理:将通知织入到目标对象后,形成代理对象
切面:切入点+通知
七、spring整合JDBC
1、spring提供一个可以操作数据库的对象,对象封装了JDBC技术
2、属性依赖关系:DataSource依赖JDBCTemplate,JDBCTemplate依赖Dao
3、Spring管理DataSource,JDBCTemplate,Dao(dao采用注解扫描的方式创建bean,在配置文件中配置DataSource对象与JDBCTemplate对象)
八、spring整合aop事务
1、事务:事务特性:acid
事务并发问题:脏读、不可重复读、幻读
事务的隔离级别:读未提交、读已提交、可重复读、串行化
2、事务封装了事务管理的代码:
因为在不同平台,操作事务的代码各不相同,spring提供了一个接口
PlatformTransactionManager 接口:DataSourceTransactionManager/HibernateTransitionmanager
3、 spring管理事务的方式
xml配置的方式:导入约束——配置通知——将通知织入目标对象
注解配置的方式:开启注解管理aop事务——在代码中使用@Transactional注解