Spring注解驱动知识点简单记录三

一:bean的后置处理器BeanPostProcessor

  1. 简介
      主要是在bean的初始化前后进行一些处理工作。     
      postProcessBeforeInitialization:在初始化之前工作
      postProcessAfterInitialization:   在初始化之后工作 
  2. 实例
    ⑴创建实现BeanPostProcessor接口的自定义的后置处理器
                   Spring注解驱动知识点简单记录三_第1张图片
     ⑵创建实体类
                  Spring注解驱动知识点简单记录三_第2张图片
      ⑶配置类
                Spring注解驱动知识点简单记录三_第3张图片
      ⑷测试类
           Spring注解驱动知识点简单记录三_第4张图片
      ⑸效果
           Spring注解驱动知识点简单记录三_第5张图片
          
     

二:属性 赋值之@Value注解

  1.  @Value用法的集中获取值的方式
      a:基本数值,例如@Value("张三")
      b:可以写spring的EL语句,例如:@Value("#{'key'}")       
      c:可以使用@Value("${key}")
  2. 实例1:使用上面的a和b的方式
     a:创建实体类
         Spring注解驱动知识点简单记录三_第6张图片
     b:配置类
         Spring注解驱动知识点简单记录三_第7张图片
     c:测试类
         Spring注解驱动知识点简单记录三_第8张图片
     d:效果
        Spring注解驱动知识点简单记录三_第9张图片
  3. 实例2:使用@PropertySource加载外部文件,并且使用第三种方式向bean实体中注入值
     a:创建配置文件
           Spring注解驱动知识点简单记录三_第10张图片
     b:创建实体类
          Spring注解驱动知识点简单记录三_第11张图片
     c:配置类
         Spring注解驱动知识点简单记录三_第12张图片
     d:测试类
        Spring注解驱动知识点简单记录三_第13张图片
      效果: 
         Spring注解驱动知识点简单记录三_第14张图片

三:自定义组件之@Aware注入Spring底层组件

  1.  需求:我们想要在自定义组件中使用Spring容器底层的一些组件,例如:ApplicationContext,BeanFactory等等。
     
  2. 实例
     ⑴实现ApplicationContextAware,BeanNameAware以及EmbeddedValueResolverAware接口,
         获取ApplicationContext等对象
        a:自定义组件
             Spring注解驱动知识点简单记录三_第15张图片
        b:配置类
            Spring注解驱动知识点简单记录三_第16张图片
        c:测试类
           Spring注解驱动知识点简单记录三_第17张图片
       效果:
          Spring注解驱动知识点简单记录三_第18张图片
                    

四:自动装配之@Profile环境搭建

  1. 简介
       这个是spring为我们提供的可以根据当前环境,动态的激活和切换一系列组件的功能。
  2. 数据源切换简单实例
     ⑴导入pom依赖
          Spring注解驱动知识点简单记录三_第19张图片         
      ⑵配置文件
           Spring注解驱动知识点简单记录三_第20张图片
       ⑶配置类信息
            Spring注解驱动知识点简单记录三_第21张图片
            Spring注解驱动知识点简单记录三_第22张图片
            Spring注解驱动知识点简单记录三_第23张图片
            注意:在配置类中我们使用的组件如下:
                    a:使用@PropertySource组件加载properties文件
                    b:实现了EmbeddedValueResolverAware接口,通过setEmbeddedValueResolver
                         方法解析并获取properties文件中的值
                    c:通过@Value组件直接给变量上使用并注入值
                    d: 通过@Value组件直接给方法参数上使用并注入值

             以上都是获取properties文件中数据的方式。
        ⑷测试类
             Spring注解驱动知识点简单记录三_第24张图片 
           效果:
              Spring注解驱动知识点简单记录三_第25张图片
  3. 使用@Profile注解指定组件在哪个环境下才能被注册到容器中去。
     ⑴我们为数据源添加@Profile注解
          Spring注解驱动知识点简单记录三_第26张图片
          Spring注解驱动知识点简单记录三_第27张图片
          Spring注解驱动知识点简单记录三_第28张图片
      ⑵运行测试类效果:(发现一个DataSource类型的bean实例都没有了)
          Spring注解驱动知识点简单记录三_第29张图片
         原因:加了@Profile这个环境标识的bean,只有在这个环境被激活的时候才能被注册到容器中。
                   当然默认是default环境,比如我们将test环境修改为default(后面自动修改回来test)
                   Spring注解驱动知识点简单记录三_第30张图片
             运行测试类效果:
                  Spring注解驱动知识点简单记录三_第31张图片
  4. 那么我们可以通过下面的方式激活指定的环境
     ⑴:通过eclipse运行的命令行方式,命令:-Dspring.profiles.active=环境名称
            这种方式是可以在项目部署的时候在虚拟机环境参数位置设置这个命令。
            比如激活test环境,
        Spring注解驱动知识点简单记录三_第32张图片   
        Spring注解驱动知识点简单记录三_第33张图片
        效果:
           Spring注解驱动知识点简单记录三_第34张图片
      ⑵使用代码的方式指定要激活的环境
          Spring注解驱动知识点简单记录三_第35张图片
         效果:
            Spring注解驱动知识点简单记录三_第36张图片
      ⑶当然@Profile这个注解是可以写在类上的,如果写在类上,那么只有满足@Profile注解
          里面的条件,整个类里面的方法才会生效。

 

上一篇:Spring注解驱动知识点简单记录二

下一篇:Spring注解驱动知识点简单记录四

文章目录

 

你可能感兴趣的:(spring)