spring boot 中 condition注解的使用

package com.condition;

import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;

public class WindowsCondition implements Condition {

	@Override
	public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
		// TODO Auto-generated method stub
		return context.getEnvironment().getProperty("os.name").contains("Windows");
	}

}
package com.condition;

import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;

public class LinuxCondition implements Condition {

	@Override
	public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
		// TODO Auto-generated method stub
		return context.getEnvironment().getProperty("os.name").contains("Linux");
	}

}
package com.condition;

public interface ListService {

	public String showCmd();
}
package com.condition;

import org.springframework.stereotype.Service;

@Service
public class WindowsService implements ListService {

	@Override
	public String showCmd() {
		// TODO Auto-generated method stub
		return "cmd";
	}

}
package com.condition;

import org.springframework.stereotype.Service;

@Service
public class LinuxService implements ListService {

	@Override
	public String showCmd() {
		// TODO Auto-generated method stub
		return "ls";
	}

}
package com.condition;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ConditionConfig {

	@Bean
	@Conditional(WindowsCondition.class)
	public ListService windowsService() {
		return new WindowsService();
	}
	
	@Bean
	@Conditional(LinuxCondition.class)
	public ListService linuxService() {
		return new LinuxService();
	}
}
发布了476 篇原创文章 · 获赞 3 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_37769323/article/details/104724463