用动态代理和cglib实现,有接口的用动态代理,无接口的用cglib
整合作用
内部用Map实现,或者说HashMap
IOC是一种控制反转的思想,降低了对象的耦合度(客户端只依赖接口,不依赖实现,就是解耦合,通过反射实现),AOP是面向切面编程,非侵入式编程,实现了非业务性编程(公共功能),譬如日志,权限,事务等等
Spring里面的事务分为编程式事务和声明式事务,一般用声明式事务,用来控制数据操作的完整性,一致性
IOC主要来解决对象之间的依赖问题,把所有的bean的依赖关系通过配置文件或者注解关联起来,降低了耦合度,AOP一般用来事务
工厂模式,单例模式,代理模式
Scope常见的有单例或者多例
1. 2. 3.
xml,因为它是最简单,最流行的数据格式
bean的管理,aop技术,ioc技术 ,事务等
降低对象耦合度,让代码更加清晰,提供一些常见的模版
@Component 通用注解 @Repository 持久层注解 @Service 业务层注解 @Controller:表现层注解
@AutoWired @Resource
简单的写过,譬如前置通知,后置通知的方法,环绕通知,事务就是典型的AOP的实现
和Struts2整合时候,和Hibernate整合时候都可以用得到, 事务用的最多,还有个别日志,权限功能也可以用到
f-sp-16. Spring的事务(传播属性,隔离级别)。七大传播属性,四大隔离级别
在业务层加个事务控制
BeanFactory是Spring和核心顶级接口,它里面默认实现了Bean的管理,以及生命周期,bean的作用域管理,Facory只是简单的创建对象
setter注入和构造器注入,一般用setter注入
就是通过反射机制生成想要的对象注入
是在web.xml里面配置的ContextLoaderListener
用来初始化Spring的容器
配置文件耦合度低,容易维护,尤其是在切面或者事务的时候,只配置一次就可以让很多代码拥有事务,
Spring的事务提供了统一的事务处理机制,包含了JDBC,Hibernate,IBatis等事务实现,而Hibernate只处理自己事务
先启动监听器,因为先要初始化容器,初始化容器了以后Action才能从容器里面获得
声明式事务和编程式事务,我们一般用声明式事务
我们可以写一个HashMap,如果并发考虑的话要写并发的Map,把bean的名字放在map的key,bean的实现map的value
ioc用反射实现 ,AOP用动态代理实现
hibernate的事务只能手动显示代码的方式控制创建事务与提交事务以及回滚。
Spring可以通过配置文件设定一类class事务的创建与提交以及回滚,也可以显示代码方式控制。
有七个,常用有两个REQUIERD, REQUIRED_NEW,REQUIERD表示两个事务的方法调用的时候,前面的时候和后面的合并成一个事务,REQUIRED_NEW是重启一个事务,各干各的
前者用REQUIRED_NEW,后者用REQUIRED
Spring定义有四种,但是常见的是READ_COMMIT,Oralce有两种实现,MYSql有四种
IOC(Inversion of Control)对Bean的控制能力更强,能控制对象自动注入,还可以控制生命周期,而工厂类只是简单的创建一个对象,没有什么控制能力