Spring常用注解解析

一、bean初始化、销毁

  • 1) 指定初始化和销毁方法

    通过@bean指定 init-method 和 destory-method

  • 2) 通过让bean实现InitialzingBean (定义初始化逻辑)

    DisposableBean (定义销毁逻辑)

  • 3) 使用JSR250 ,JDK的注解

    @PostConstruct :在bean创建完成并属性赋值完成,来指定初始化操作
    @PreDestory : 在容器销毁bean之前通知我们进行清理操作

  • 4) beanPostProcessor : bean的后置处理器

    在bean初始化之前、之后进行操作【需要实现接口】

  • spring底层对beanPostProcessor的使用:

    bean赋值、注入其他组件、@Autowired注解、生命周期注解功能、@Async异步

二、属性赋值 @Value

  • 1、赋值使用 @Value("${name}")
    用 @PropertySource( value = {“classpath:/person.properties”} ) 读取配置文件
  • 2、配置文件属性值一旦加载到环境中,可以通过环境直接获取
    案例: ConfigurableEnvironment environment = application.getEnvironment();
    String name = environment.getProperty(“name”);

三、自动装配

1、 @Autowired自动注入:

1) 默认优先按照类型去容器中找对应组件
2) 如果多个相同类型的bean,再将属性名字作为组件ID去容器中找
3) 使用@Qualifier 指定需要装配的组件的ID
4) 自动装配默认一定要将属性赋值好,没有就会报错
可以使用 @Autowired(required = false)
5) @Primary:让spring在自动装配的时候默认使用 首选的bean

2、@Autowired:构造器、参数、方法、属性 , 都是从容器中获取参数的值

1)【标注在方法位置】:@bean + 方法参数;参数从容器中获取
2)【标注在构造器删】:如果组件只有一个有参构造,这个有参构造的@Autowired可以省略,
3)【放在参数位置】

3、自定义组件想要使用Spring容器底层的一些组件(ApplicationContext、BeanFactory、xxx)

自定义组件实现 xxxAware; 在创建对象的时候,会调用接口规定的方法注入相关组件

Aware把spring底层的一些组件注入到自定义的bean中
xxxAware:功能使用xxxProcessor来处理的 , 后置处理器

四、环境切换

@Profile:指定组件在哪个环境的情况下才能被注册到 spring容器中,不指定,任何环境下都能注册这个bean

  • 1、加了环境标识的bean,只能这个环境被激活时才能注册到容器中。默认是 default环境
  • 2、写在配置类上,只有是指定环境的时候,整个配置类的所有配置才能生效。

五、AOP:【底层 动态代理】

指在程序运行期间动态的将某段代码,切入到指定方法指定位置进行运行的编程方式。

  • 1、导入aop模块,Spring AOP (sprng-aspects)

  • 2、定义一个业务逻辑类,在业务逻辑类运行时进行日志打印,(方法运行前、后…)

  • 3、定义一个日志切面类

    通知方法:
    前置通知 (@Before) : 在目标方法运行之前运行
    后置通知 (@After) : 在目标方法运行结束之后运行
    返回通知 (@AfterReturning): 在目标方法正常返回之后运行
    异常通知 (@AfterThrowing) : 在目标方法出现异常运行
    环绕通知 (@Around) : 动态代理,手动推进目标方法执行(joinPoint.procced)

  • 4、给切面类的目标方法标注,何时何地运行(通知注解)

  • 5、将切面类和业务逻辑类(目标方法类)都加入到容器中

  • 6、必须告诉spring哪个类是切面类(类上加:@Aspect)

  • 7、给配置类中加 @EnableAspectJAutoProxy 【开启基于注解的aop模式】

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值