一、简介



二、IOC
2.1 工厂模式





此工厂模式仍存在问题,每次执行都会创建新的对象,即多例模式。
单例模式:执行效率快,节省资源,存在多线程问题;
多例模式:执行效率慢,浪费资源,不存在多线程问题。
工厂模式一般采用单例模式。

2.2 IOC
2.2.1 IOC应用





ApplicationContext适合于单例对象
BeanFactory适合于多例对象
2.2.2 bean




2.3 DI

二、注解IOC
2.1 开启注解扫描

2.2 创建对象

2.3 注入对象



Qualifer不能独立使用,只能用在@AutoWired基础之上

@Resrouce可以单独使用


三、新注解
3.1 @Configration

3.2 @Bean


注解行创建对象默认是单例的,可通过@Scope修改
当配置类作为AnnotationConfigApplicationContext()的配置类时,类上的@Configration可以省略不写。 其余的配置类必须加@Configration。可以使用@Import解决
3.3 @Import
在配置类中加入其它配置类,其它配置类也可以不写@Configration


3.4 @PropertySource

3.5 @RunWith

spring5X对应junit4.12以上版本

四、AOP
4.1 事务控制
原本事务控制是以dao层方法为颗粒的,应用事务控制可以自由改变颗粒,一般以service为最小颗粒

数据库连接池工具类


事务控制



4.2 动态代理
4.2.1 基于接口的动态代理


4.2.2 基于子类的动态代理



4.3 AOP








五、JdbcTemplate
1.简介


网友评论