Spring技术:
目的:解决企业应用开发的复杂性
功能:使用JavaBean代替EJB,并提供更多的企业应用功能
范围:任何Java应用
Spring是一个轻量级的依赖注入(IOC)和面向切面(AOP)的容器框架
优势分层架构
Spring中三种注入方式:1.set注入,2.构造注入,3.接口注入
Spring中面向切面(AOP)编程的两种实现方式:
1.动态代理(需提供接口)
2.CGLIB(继承)
Spring框架优点:
1.轻量级的容器框架,没有侵入性
2.使用IOC容器更加容易组合对象直接间关系,面向接口编程,降低耦合度
3.AOP可以更加容易的进行功能扩展,遵循OOP开发原则
4.创建对象默认是单例的,不需要再使用单例模式进行处理
缺点:依赖Spring特有的功能,依赖Spring环境
Spring框架使用的是分层的注解:
1.持久层:@Repository
2.服务层:@Service
3.控制层:@Controller
@Resource对象间关系的组合,默认采用byName方式进行配置,如果根据名称查找不到关联对象,那么会再利用byType继续查找
@Repository,@Service,@Controller 这三个注解的关键在于,都可以使用@Component代替,使用注解声明对象,默认情况下生成的id名称为类名称的首字母小写
Spring的AOP
Aspect:横切面的功能(类似于字符编码功能)
Advice:横切面功能的具体实现(增加类似于字符编码过滤器)
Pointout:切入点,描述横切面功能应用的限制(类似于过滤器的配比规则)
SoinPoint:连接点,或指组件加入流程的时机(类似于过滤器的过滤规则Request forWord)
weave:缝合,将组件应用到业务流程中的这个过程叫缝合或织入(类似于将过滤器配置到web.xml文件的过程)
Proxy:代理,一种Spring的AOP使用JDK的动态代理(使用接口),也可以使用CGLIB(继承的方式实现代理)
Target:目标,业务操作的实际流程
优点:AOP于SpringIOC容器整合,增强,切入点都是JavaBean,可在同一个文件配置和Spring的其他部分一样,可以在不同应用服务器之间移植,Spring实现AOP的拦截接口,使得用户不必绑定在特定的拦截器接口上。