高级java工程师-----spring的IOC和AOP
来源:互联网 发布:爱淘宝红包怎么领 编辑:程序博客网 时间:2024/05/22 07:54
spring在SSH中主要的作用是什么呢?
第一就是IOC(依赖注入或者控制反转):
SSH框架的流程大致是:Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右)struts负责控制Service(业务逻辑处理类),从而控制了Service的生命周期,这样层与层之间的依赖和强,属于耦合。要在action中实现一个具体业务就需要调用至少一个service业务组件,service业务组件至少实例化一个dao组件,这样的一个业务使action和service和dao层的耦合度相当高,spring就是依赖注入的原理首先是面向接口编程,提供service业务组件接口层和dao组件接口,当action实现一个业务的时候只需要调用service组件接口和dao组件接口,那么这些接口怎么实例化呢?早期有使用工厂设计模式来实例化接口,spring出现之后是提供一个xml的配置文件将接口实现类的路径和接口对象以bean的形式配入,可以通过propertity或者contruct的形式注入其他的实例(比如service的bean中注入dao的bean),最后在action和service的实现类添加set方法或者带参构造方法,这样ation层和service层和dao层就完全分离了实现了高度解耦,而在以往单独使用Struts框架的时候,所有的业务方法类的生命周期,甚至是一些业务流程都是由Action来控制的。层与层之间耦合性太紧密了,既降低了数据访问的效率又使业务逻辑看起来很复杂,代码量也很多。在spring容器启动时来实例化引用,降低了程序的依赖性,如果某个业务逻辑发生变化,可以重新写一个新的业务逻辑实现类,修改spring的配置文件即可,不用每个action代码中去改new的对象,这就是依赖注入。
其实这种思想是spring用到的另一种设计模式叫做桥接模式,主要思想是指当将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化,就好像service组件和dao组件,早期没有用mvc框架思想的时候就是实现一个service组件就会将需要调用的dao组件绑定,这就需要将这种多维度的变化分开使它们独立的变化,spring就很好的使用了该设计模式达到解耦代码简易的效果可扩展性强。
第二就是AOP:
首先AOP是Aspect-oriented programing 是面向切面编程的核心思想
系统功能主要意思是 独立的服务运行时通过动态代理从切面中织入到流程之中
主要作用:1、对程序解耦,提高程序的可扩展性
2、通过动态代理,和配置文件或者注解形式配置advice、pointcut,从而集中式将独立的服务动态的切入到业务流程之中,降低了编码量,通过配置操作简单
- 高级java工程师-----spring的IOC和AOP
- 高级java工程师-----spring的IOC和AOP
- Spring的AOP和IOC
- spring的IOC和AOP
- Spring的IoC和AOP
- spring的IOC和AOP
- spring的IOC和AOP
- spring的aop和ioc
- Spring 的IOC和AOP
- Spring的IOC和AOP
- Spring的IOC和AOP
- Spring的IOC和AOP
- spring的ioc和aop
- spring的Ioc和AOP
- Spring的IOC和AOP
- spring的IOC和AOP
- Java Spring的IoC和AOP的知识点速记
- Java Spring的IoC和AOP的知识点速记
- mysql 连接
- Ubuntu14.04 LTS 无法输入中文
- neo4j 启动脚本 centos 7 x64
- Bitmap的加载
- 求最长连续线段长
- 高级java工程师-----spring的IOC和AOP
- 定时系统“同时”之坑------理论可行, 实际不一定行; 理论不可行, 换个思路,实际可能会行!
- [08]javascript对象和数组
- Bone Collector II
- BZOJ_2038 小Z的袜子(莫队算法)
- [KDTree] [BZOJ2716] [Violet 3] 天使玩偶
- JAVA面试题解惑系列(十)——话说多线程
- cas sso 配置完整例子
- java基础知识记录--java代码查错 (摘自张孝祥整理java面试题)