首页 > 编程知识 正文

aop和ioc的概念和区别,spring中aop和ioc

时间:2023-05-05 14:31:01 阅读:23027 作者:3639

IOC和AOP Spring中的两个核心IOC控件反转IOC和DI@Resourse和@Autowired依赖注入方式面向AOP片的编程代理模式事务AOP注释

Spring的两个主要核心

IOC和AOP

IOC控件反转IOC和DI IOC控制反转意味着,我需要在程序中自己创建对象,但当前对象的创建委托给外部容器(这里是Spring容器)

IOC必须提到的另一个概念DI依赖注入是将对象之间的相互依赖关系交给IOC容器,IOC容器完成对象的注入。

两者的区别

IOC要解决的是对象的创建问题;

DI解决的是创建对象后的对象关系问题。

在三层体系结构中最终实现的效果是,控制器不会显示服务层的具体实现类代码,而只能看到服务接口。 Service中没有出现Dao层的具体实现类代码,只出现Dao层接口。

@Resourse和@Autowired @Resource

缺省情况下,它按名称组装,并指定要注入的名称。

@resource(name=“名称”

@Autowired

在按类型列出的程序集中,如果容器中有多个子类报告错误,则必须在@Resource中指定。

注入方式1、助洗剂依赖注入

容器启动构造函数时完成。 构造函数具有一组参数,每个参数表示一个注入的对象。

2、Setter方法依赖注入

首先,容器启动无参数的生成方法或无参数的静态工厂实例化对象,然后容器调用bean的setter方法以完成setter方法的依赖关系注入。

面向AOP切片的编程AOP封装业务模块共同调用的逻辑和责任(事务、日志管理、权限控制),减少系统的重复代码,降低模块之间的耦合度,将来功能:将关注点代码与业务代码分离。

对于未实现代理模式Spring AOP是基于动态代理的,如果要代理的对象实现了某个接口,那么Spring AOP就会使用JDK Proxy去创建对象接口的对象,请使用CGlib。

事务AOP注释@Aspect

切面表示横穿业务的对象。 包含“切口”(PointCut )和“通知”(Advice )。

@PointCut

切口指示要切入的位置,如某个类或某个方法。 也就是说,先决定范围。

通知

@Before预通知,方法调用前

@AfterReturning后置通知在成功调用方法后执行

@Around环绕声通知,可以分别在方法调用之前和之后执行的通知

@AfterThrowing异常通知、方法调用中发生异常时通知

@After最终通知在方法调用后执行,类似于finally

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。