码迷,mamicode.com
首页 > 编程语言 > 详细

2019.6.28 Spring注解

时间:2019-06-29 00:53:18      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:public   spring   init   nconf   rabl   person   ble   获取   注册   

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注解

标签:public   spring   init   nconf   rabl   person   ble   获取   注册   

原文地址:https://www.cnblogs.com/mwss/p/11105110.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!