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注册到容器中
需要将注解bean的方法加上@Conditional
@Conditiona接受一个Condition类型的CLass数组,
需要写一个条件类来实现Conditional接口里面的matches
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注解的主要内容,如果未能解决你的问题,请参考以下文章