IOC DI 概念
元数据格式: xml, annotation, java code
ApplicationContext, AnnotationConfigApplicationContext, ClassPathXmlApplicationContext, naming beans
两种注入方式:
- Constructor-based dependency injection
- Setter-based dependency injection
代码说明:
- src/main/java/com/sprint/bean/di/下所有文件
- src/main/resources/config/spring-bean-di.xml
- src/test/java/com/sprint/bean/di/
- src/main/java/com/sprint/bean/details/下所以文件
- src/main/resources/config/spring-bean-detail.xml
- src/test/java/com/sprint/bean/details/
- src/main/java/com/sprint/bean/dependsOn/下所以文件
- src/main/resources/config/spring-bean-dependson.xml
- src/test/java/com/sprint/bean/dependsOn/
指定初始化,销毁顺序。depends-on值的bean要先初始化,早于被指定的Bean的,并且晚于被指定的Bean销毁.
- Spring-Bean之Lazy-initialized beans
- Spring-Bean之Autowiring collaborators
- Spring-Bean之Method injection
- singleton 一般默认single, 保证Spring只有一个实例对象,不仅缓存对象而且还缓存Bean,将单例对象放入缓存池里。
- prototype 每次都会重新获取一个全新的Bean
- 等用到再说吧
- src/main/java/com/sprint/resource/
- 等用到再来深入学习吧
- 框架这东西真的需要项目来驱动
-
使用Schema-based AOP support 需要的依赖:spring-aop, cglib,aspectjweaver
- src/main/java/com/sprint/aop/
- src/main/resources/config/spring-aop.xml用注释陈述了一些有关aop的概念,以及使用
- src/test/java/com/sprint/aop/ 记录过程中出现的问题
-
使用@AspectJ注解,需要依赖:spring-aop, aspectjweaver.
- src/main/java/com/sprint/aop/HelloWorldAspect2.java 里面配置aop及各种通知
- src/main/resources/config/spring-aop-aspectj.xml
- src/test/java/com/sprint/aop/
Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架通过实现策略接口PlatformTransactionManager,从而能支持各种数据访问框架的事务管理。
Spring中提供许多内置的事务管理器:如:org.springframework.jdbc.datasource.DataSourceTransactionManager
提供SpringJdbc, MyBatis框架的事务处理
JpaTransactionManager, HibernateTransactionManager分别处理Jpa, hibernate的事务处理
- 本地事务(一个数据库)
- 分布式事务(多个数据库,多个源)
事务配置实现
- 编程式实现事务管理
- 声明式实现事务管理
声明式实现事务管理
- 基于xml: src/main/resources/config/spring-transaction-xml.xml 详情介绍
- 基于Annotation: src/main/resources/config/spring-transaction-annotation.xml 详情介绍
个人偏向基于Annotation的事务管理配置