SpringBoot中Condition註解條件的使用
package com.longfor.plus.common.condition;
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.env.Environment;
import org.springframework.core.type.AnnotatedTypeMetadata;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class LinuxCondition implements Condition {
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
Environment environment = context.getEnvironment();
String property = environment.getProperty("os.name");
//可以判斷容器中的bean註冊情況,也可以給容器中註冊bean
String port = environment.getProperty("server.port");
String active = environment.getProperty("spring.profiles.active");
InetAddress address = null;
try {
address = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
String hostAddress = address.getHostAddress();
System.out.println(port);
System.out.println(hostAddress);
if(property.contains("linux")){
return true;
}
return false;
}
}