一、什么是Spring
1、业务实现角度:一站式框架
spring在目前的JavaEE模式中每个层,都提供了实现方式
1、web层:该层作用为分发处理,属于服务员角色,对应的spring实现为:springMVC,还有同类技术:struts
2、service层:该层作用是业务逻辑处理,对应到spring实现为:spring的ioc技术
3、DAO层:该层作用为数据持久层,对应到spring的jdbcTemplate、ibatis、hiberante等技术
2、技术实现角度:ioc、aop
1、ioc:翻译为注入,作用就是依赖反转,用来管理bean
什么是bean:就是对象
2、aop:代理技术,是一种设计模式,类似于Filter,不修改业务代码就可增加其他功能
代理模式:
看着访问的是接口的对象a,其实是访问的代理a
静态代理:
首先定义一个接口,随便写一个方法
定义2个实现接口的方法
(被代理的对象)
(代理对象)
需要将接口 定义get set 方法
代理增强的方法
然后实现
输出结果如下:
动态代理(jdk动态代理)
定义一个方法接口
实现类
测试类
这里要提一下 jdk动态代理只能代理有接口的类 cglib动态代理可以代理没有接口的类
下面是 cglib动态代理实现:
定义一个类(输出OK)
直接在测试类 实现动态代理
这里的Enhancer它是spring提供的一个增强器只需要导入一个jar包就可以了
输出结果: