java面试题网

普通会员

160

帖子

12

回复

165

积分

楼主
发表于 2018-05-25 14:45:27 | 查看: 5785| 回复: 1

简单介绍下spring的ioc和aop

控制反转(Inversion of Control,英文缩写为IOC);

    ioc就是典型的工厂模式,通过sessionfactory去注入实例。依赖注入    。

自己实现用什么方式?    反射原理  

其实就是通过解析xml文件,通过反射创建出我们所需要的bean,再将这些bean挨个放到集合中,然后对外提供一个getBean()方法,以便我们获得这bean。

通俗来讲就如同婚姻介绍所,只需要告诉它找个什么样的女朋友,然后婚介就会按照我们的要求,提供一个mm,如果婚介给我们的人选不符合要求,我们就会抛出异常。

面向切面编程(Aspect Oriented Programming,英文缩写为AOP)

    AOP就是典型的代理模式的体现。 实现拦截器  日志 统一权限校验 。

    spring的IoC容器是spring的核心,spring AOP是spring框架的重要组成部分。 

 实现AOP的技术,主要分为两大类:

 一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;

 二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码.简单点解释,比方说你想在你的biz层所有类中都加上一个打印‘你好’的功能,这时就可以用aop思想来做.你先写个类写个类方法,方法经实现打印‘你好’,然后Ioc这个类 ref=“biz.*”让每个类都注入即可实现。


文章来自www.wityx.com,转载请注明出处!原文地址http://www.wityx.com/post/428_1_1.html


java面试题交流群:327440556

上一篇:并发问题 下一篇:web应用安全问题

普通会员

115

帖子

83

回复

167

积分
沙发
发表于 2019-09-27 11:23:48

简单解释一下spring的AOP
AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,
面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一
个集合。不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。日志代码往往横向地散
布在所有对象层次中,而与它对应的对象的核心功能毫无关系对于其他类型的代码,如安全性、异常处理和透明的持
续性也都是如此,这种散布在各处的无关的代码被称为横切(cross cutting),在 OOP设计中,它导致了大量代码的
重复,而不利于各个模块的重用。
AOP 技术恰恰相反,它利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为
封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为业务模块所
共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可
维护性。
使用"横切"技术,AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,
与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处基本相似,
比如权限认证、日志、事物。AOP的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。
AOP核心就是切面,它将多个类的通用行为封装成可重用的模块,该模块含有一组API提供横切功能。比如,一个日
志模块可以被称作日志的AOP切面。根据需求的不同,一个应用程序可以有若干切面。在Spring AOP中,切面通过
带有@Aspect注解的类实现。 

您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018