1、Spring的了解
Spring是一个轻量级的IOC/DI和AOP容器的开源框架。可以实现Java模块化开发,贯穿表现层,业务层,逻辑层,实现各层之间的解耦合关系。
IOC,控制反转,将程序中手动创建对象的控制权交由Spring框架来管理,从而实现对象之间解耦合
AOP,面向切面编程,将功能代码从业务逻辑代码中分离,使之可以更专注于业务
2、AOP的实现方式
AOP的实现方式有两种:JDK动态代理和cglib实现
如果目标对象实现了接口,默认情况下采用JDK的动态代理实现AOP,也可以强制使用cglib实现AOP
如果目标对象没有实现接口,必须采用cglib,Spring会自动在JDK动态代理和cglib之间切换
3、JDK动态代理如何实现
JDK动态代理,只能对实现了接口类生成代理,而不是针对类,该目标类型实现的接口都将被代理。原理是通过在运行期间创建一个接口的实现类来完成对目标对象的代理。具体步骤如下:
①、定义一个实现接口InvocationHandler类
②、通过构造好换,注入被代理类
③、实现invoke(Object proxy,Method method,Object[] args) 方法
④、在主函数中获得被代理类的类加载器
⑤、使用Proxy.newProxyInstance()产生一个代理对象
⑥、通过代理对象调用各种方法
4、Spring中Bean的作用域
在默认的情况下,Spring IOC容器只会对Bean创建一个实例
Spring提供了5中作用域,通过@Scope注解来设置
①、singleton(单例):在Spring IOC容器中仅存在一个Bean实例,默认的Scope设置
②、prototype(多例):每次从容器中调用Bean时,都会返回一个新的实例
③、request(请求):用于web开发,将Bean放入request范围,request.setAttribute
(“XXX”),在用一个request获得同一个Bean
④、session(会话):用于web开发,将Bean放入Session范围,在同一Session获得同一个Bean
⑤、globalSession(全局会话):一般用于Porlet应用环境,分布式系统存在全局session概念,如果不是porlet环境等同于Session
Java开源框架知识整理
猜你喜欢
转载自www.cnblogs.com/conswin/p/10408160.html
今日推荐
周排行