springIOC和AOP学习笔记


前言

记录AOP IOC学习心得


一、IOC

控制反转,将创建bean和管理bean的依赖的工作交给容器处理,控制权从自己手中转移到容器中,是一种思想,依赖注入是实现这种思想的方式

1.依赖注入(DI)

IOC的实现方式有依赖查找和依赖注入,一般使用依赖注入

1.1 依赖注入的三种方式

1.构造器注入:IOC会检查被注入对象的构造方法,取得它所依赖的对象列表,为其注入相应的对象。优点是构造完成就处于就绪状态可以马上使用,缺点是构造方法无法被继承,不能设置默认值,若依赖的对象列表很多,会导致构造对象的参数列表很长,对于非必需的依赖处理可能要引入多个构造方法,造成参数列表的变动,不方便维护。

2.setting注入:不能马上使用,能设置默认值,可以被继承。

3.接口注入:必须通过实现接口为bean注入对象,使用少,因为需要实现不必要的接口,侵入性强

1.2 依赖注入的注解

@Autowired:自动按类型再根据id
@Resource:根据id
@value:注入基本数据类型和String

2 bean的作用域

singleton单例:默认作用域,不管收到多少bean请求,在容器中只存在唯一一个bean实例
prototype多例(原型):每次请求都创建新的bean实例
request:每次http请求都创建一个新bean的实例,放到request作用域中,请求结束后bean会失效并被垃圾回收器回收
session:每个session中都有一个bean的实例,session过期后bean失效
global-session:1.5废弃,全局共享

2.1 通过注解创建bean

@component 把当前类对象存入spring容器中
@Controller @Service @Repository都是语义更精确的衍生注解
@Baan:将第三方类变成组件但又没有源代码

2.2 通过注解配置文件

@configuration:标识该类是配置类,value属性指定配置类的字节码
@componentscan:指定spring容器初始化时要扫描的包,basePackages属性用于指定要扫描的包
@import:用于导入其他配置类

2.3 BeanFactory,FactoryBean,ApplicationContext

BeanFactory:用来管理bean的实例化,定位,配置对象和建立对象的依赖关系,IOC容器的顶级接口,使用延迟加载方式,是多例的。

FactoryBean:通过实现该接口可以自定义生产bean的逻辑。

ApplicationContext:BeanFactory的子类,扩展了更多的功能,使用立即加载方式,是单例的,一般推荐使用。

二、AOP

将代码中公共的部分抽离出来,使用动态代理实现公共的功能
权限认证,日志处理,缓存,事务,错误处理

1.相关术语

aspect:切面
advice:通知
joinpoint:连接点
pointcut:切入点,切入点一定是连接点,连接点不一定是切入点
porxy:代理,实现接口使用动态代理,没实现接口使用cglib
targer:代理的目标对象
weaving:植入,把增强应用到目标对象,创建代理对象的过程

2.相关注解

@aspect:声明类是切面类
@before:前置通知
@after:后置通知
@afterReturning:返回后通知
@afterthrowing:异常通知
@around:环绕通知


总结

很重要!背下来!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值