2019.6.28 Spring注解

Posted mwss

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019.6.28 Spring注解相关的知识,希望对你有一定的参考价值。

6.28

  • Spring提供了获取操作系统的信息:

    ApplicationContext applicationContext = new AnnotationConfigApplicationContext(Myconfig.class);
            ConfigurableEnvironment contextEnvironment = (ConfigurableEnvironment) applicationContext.getEnvironment();
    /*对应jvm参数中的os.name*/
            String ospropertyname = contextEnvironment.getProperty("os.name");
            System.out.println(ospropertyname);
  • Conditional根据条件判断是否将bean注册到容器中

    1. 需要将注解bean的方法加上@Conditional

    2. @Conditiona接受一个Condition类型的CLass数组,

    3. 需要写一个条件类来实现Conditional接口里面的matches

    4. matches的方法形参是ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata

      public class Os implements Condition 
          @Override
          public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) 
              /*获取ioc使用的beanfactory*/
              ConfigurableListableBeanFactory beanFactory = conditionContext.getBeanFactory();
              /*获取bean定义的注册类*/
              BeanDefinitionRegistry registry = conditionContext.getRegistry();
              Environment environment = conditionContext.getEnvironment();
              String ospropertyname = environment.getProperty("os.name");
      
              /*判断容器中是否含有bean*/
              //boolean person = registry.containsBeanDefinition("person");
              if(ospropertyname.contains("window"))
                  return true;
              
              return false;
          
      

以上是关于2019.6.28 Spring注解的主要内容,如果未能解决你的问题,请参考以下文章

spring常用注解作用与常用接口与后置处理器

spring 注解管理

Spring使用的注解大全和解释

Spring使用的注解大全和解释

Spring使用的注解大全和解释

Spring使用的注解大全和解释