spring之Condition判斷操作系統

spring之Condition判斷操作系統(部分代碼)

/**
 * 判斷是否linux系統
 */
public class LinuxCondition implements Condition {
    /**
     * ConditionContext:判斷條件能使用的上下文(環境)
     * AnnotatedTypeMetadata:註釋信息
     */
    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {

        // TODO是否linux系統
        //1、能獲取到ioc使用的beanfactory
        ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();
        //2、獲取類加載器
        ClassLoader classLoader = context.getClassLoader();
        //3、獲取當前環境信息
        Environment environment = context.getEnvironment();
        //4、獲取到bean定義的註冊類
        BeanDefinitionRegistry registry = context.getRegistry();
		if(property.contains("linux")){
			return true;
		}
		
		return false;
	}

}

註解

  @Conditional({LinuxCondition.class})	
   @Bean("linus")
	 public Person person(){
    return new Person("linus", 48);
}

test

  @Test
    public void test(){
        //獲取環境變量
        Environment environment = applicationContext.getEnvironment();
        String property = environment.getProperty("os.name");

        System.out.println(property);
        String[] beanDefinitionNames = applicationContext.getBeanNamesForType(Person.class);
        for (String name:beanDefinitionNames) {
            System.out.println(name);
        }
        Map<String, Person> beansOfType = applicationContext.getBeansOfType(Person.class);
        System.out.println(beansOfType);

    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章