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;
          }
      }

转载于:https://www.cnblogs.com/mwss/p/11105110.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值