Spring中IOC,AOP概念

时间:2022-07-14

Spring

对于网站开发而言,spring是一个轻量级的管理框架,主要用于管理各个组件之间的关系。核心功能有ioc和aop


spring创建对象有三种方式:

1、在xml文件中使用bean标签创建对象

2、在xml文件中开启扫描注解,在类的上面添加对应的注释创建对象,常用的注解有:@component、@controller、@service、@mapper

3、通过配置类的方式创建对象。在类上面加@configuration注解,在需要创建的对象上面加@Bean注解前两种创建对象的方式是通过反射来创建的,配置类创建对象是程序员自己new出来的

spring使用的设计模式有工厂模式,代理模式,单例模式,模板方法,观察者模式


image.png


IOC

ioc是控制反转,即把用户管理对象的权力交给spring容器,spring容器可以创建和管理对象,spring容器默认是单例的,在spring容器启动时自动根据bean标签通过反射创建对象,所以在多个类中可以复用一个对象,这样就可以节省系统的资源。如果我们想要改变对象的生命周期,可以修改bean标签的scope属性为prototype,这样对象的创建就是多例的,只有在调用getBean的时候才会创建一个对象。

ioc中的重点是di,即依赖注入,可以通过依赖注入的方式管理组件之间的依赖关系,从而达到解耦合的目的,取代我们之前的在一个类中创建另一个类的对象的方式。


依赖注入有三种方式

1、构造器注入:利用对象的全参构造器给对象的属性赋值

2、set注入:先调用对象的无参构造器,再通过调用set方法的方式去给对象的属性赋值

3、自动注入:自动注入分为两种,分别是byName和byType,即通过spring工厂中的其他bean标签的id值注入以及根据bean标签的类型自动注入


AOP

aop是面向切面编程,即我们可以把代码中重复冗余的部分单独拿出来写在一个通知类中,我们把实现核心功能的方法叫做切点,这个方法所在的类称作目标类,即被代理的类。在xml配置文件中织入切点和通知类组成切面。也可以直接在通知类上加上@aspect注解,这个类可以成为切面,在我们实现通知的方法上面加上@before/@after/@around注解配置切点

通知有五种类型,分别为前置通知,后置通知,返回通知,异常通知,环绕通知

aop底层是使用动态代理实现的,默认使用的是jdk动态代理,当目标类没有实现接口时,则默认使用cglib动态代理。aop的好处是开发人员可以专注于实现程序的核心代码,而那些重复的固定的代码可以拿出来集中处理,例如事务的控制,日志的打印,权限认证等等


Copyright © 2016 广州思洋文化传播有限公司,保留所有权利。 粤ICP备09033321号

与项目经理交流
扫描二维码
与项目经理交流
扫描二维码
与项目经理交流
ciya68