diff --git a/springboot/autoconfig/src/main/java/hello/config/MemoryConfig.java b/springboot/autoconfig/src/main/java/hello/config/MemoryConfig.java index 51892f35..d38c9f6d 100644 --- a/springboot/autoconfig/src/main/java/hello/config/MemoryConfig.java +++ b/springboot/autoconfig/src/main/java/hello/config/MemoryConfig.java @@ -1,11 +1,16 @@ package hello.config; +import memory.MemoryCondition; import memory.MemoryController; import memory.MemoryFinder; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; @Configuration +//@Conditional(MemoryCondition.class) +@ConditionalOnProperty(name = "memory", havingValue = "on") public class MemoryConfig { @Bean diff --git a/springboot/autoconfig/src/main/java/memory/MemoryCondition.java b/springboot/autoconfig/src/main/java/memory/MemoryCondition.java new file mode 100644 index 00000000..566a21ad --- /dev/null +++ b/springboot/autoconfig/src/main/java/memory/MemoryCondition.java @@ -0,0 +1,18 @@ +package memory; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Condition; +import org.springframework.context.annotation.ConditionContext; +import org.springframework.core.type.AnnotatedTypeMetadata; + +@Slf4j +public class MemoryCondition implements Condition { + @Override + public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { + + // -Dmemory=on + String memory = context.getEnvironment().getProperty("memory"); + log.info("memory={}", memory); + return "on".equals(memory); + } +}