Spring的IOC的注解(学习笔记二)

1.1 @Component:组件

  • 修饰一个类,将这个类交给Spring来管理
  • 该注解有三个衍生注解(功能类似),建议使用
    • @Controller:修饰web层的类
    • @Service :修饰service层的类
    • @Repository:修饰dao层的类

属性注入的注解

  • 普通属性
    • @Value : 设置普通属性的值
  • 对象类型属性
    • @Autoware :设置对象类型的属性值,但是按照类型完成属性注入,我们习惯按照名称完成属性注入,必须让该注解与@Qualified注解一起使用,@Qualified(value="")传入具体的名称
    • @Resource : 完成对象类型的属性注入:按照名称来完成的属性,实际开发中常使用,是Spring实现的一套接口规范

Bean的其他注解

一: 生命周期相关

  • @PostConstruct :初始化方法
  • @PreDestroy :销毁方法

二:Bean的作用范围注解 @Scope:作用范围

  • singleton :默认单例
  • prototype :多例
  • request :
  • session :
  • globalsession:

1.2 IOC基于XML配置与注解配置的比较

  1. 适用场景
  • XML: 适用于任何场景,结构清晰维护方便
  • 注解:该类不是注解提供的,比如说是源代码的。开发方便
  1. XML和注解整合开发
  • XML管理Bean
  • 注解完成属性注入

Spring的AOP的XML开发

一:底层实现原理

  • 动态代理
    • JDK动态代理 :只能对实现接口的类产生代理
    • Cglib动态代理(类似于Javassist第三方代理技术):对于没有接口的类产生代理,生成子对象

二: JDK动态代理

三: Cglib动态代理

1.3 Spring的AOP开发(AspectJ的XML的方式)

  • 创建web项目,引进jar包
    • 引入基本的开发包

  • 引入aop开发相关的jar包

  • 引入Spring的配置文件

    • 引入aop约束

  • 编写目标类,完成配置

  1. 编写测试类,引入Spring单元测试的jar包

2. 编写切面类

3. 将切面类交给Spring管理

4. 通过AOP的配置来完成对目标类产生代理

1.4 Spring中的通知类型

1.4.1 前置通知: 在目标方法执行前进行操作
  • 获得切入点信息,在代理类MyAspectXML中的checkPri的方法中传入如下参数,并运行测试类,得到结果

1.4.2 后置通知: 在目标方法执行之后的操作
  • 获取切入点信息以及方法的返回值

1.4.3 环绕通知: 在目标方法执行之前和执行之后进行操作
  • 阻止目标方法的执行

1.4.4 异常抛出通知: 在程序出现异常的时候,进行的操作
1.4.5 最终通知: 不管代码有没有异常,总会执行
14.6 引介通知:

Spring的切入点表达式

  • 基于excution的函数完成的
  • 语法
    • [访问修饰符] 方法返回值 包名 类名.方法名(参数)
    • public void it.spring.demo.CustomerDao.save(..)
    • *it.spring.demo.CustomerDao+save(...)

转载于:https://juejin.im/post/5cc6b883f265da037b611cbe

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值