package com.tszr.conditional; import org.springframework.context.annotation.Condition; import org.springframework.context.annotation.ConditionContext; import org.springframework.core.type.AnnotatedTypeMetadata; public class MyCondition implements Condition { @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { return context.getResourceLoader().getResource("classpath:test.properties").exists(); } }
package com.tszr.conditional; import org.springframework.context.annotation.Condition; import org.springframework.context.annotation.ConditionContext; import org.springframework.core.type.AnnotatedTypeMetadata; public class YourCondition implements Condition { @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { return !context.getResourceLoader().getResource("classpath:test.properties").exists(); } }
package com.tszr.dao; public interface MessagePrint { public String showMessage(); }
package com.tszr.service; import com.tszr.dao.MessagePrint; public class MyMessagePrint implements MessagePrint { @Override public String showMessage() { return "test.properties文件存在。"; } }
package com.tszr.service; import com.tszr.dao.MessagePrint; public class YourMessagePrint implements MessagePrint { @Override public String showMessage() { return "test.properties文件不存在!"; } }
package com.tszr.controller; import com.tszr.conditional.MyCondition; import com.tszr.conditional.YourCondition; import com.tszr.dao.MessagePrint; import com.tszr.service.MyMessagePrint; import com.tszr.service.YourMessagePrint; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; @Configuration public class ConditionConfig { @Bean @Conditional(MyCondition.class) public MessagePrint myMessage() { return new MyMessagePrint(); } @Bean @Conditional(YourCondition.class) public MessagePrint yourMessage() { return new YourMessagePrint(); } }
package com.tszr.conditional; import com.tszr.controller.ConditionConfig; import com.tszr.dao.MessagePrint; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class TestMain { private static AnnotationConfigApplicationContext context; public static void main(String[] args) { context = new AnnotationConfigApplicationContext(ConditionConfig.class); MessagePrint mp = context.getBean(MessagePrint.class); System.out.println(mp.showMessage()); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
2020-03-04 吴裕雄--天生自然JAVA反射机制学习笔记:工厂设计模式
2020-03-04 吴裕雄--天生自然JAVA反射机制学习笔记:动态代理
2020-03-04 吴裕雄--天生自然JAVA反射机制学习笔记:反射机制深入探究
2020-03-04 吴裕雄--天生自然JAVA反射机制学习笔记:反射机制的使用——取得类的结构
2020-03-04 吴裕雄--天生自然JAVA反射机制学习笔记:Class类的使用
2020-03-04 吴裕雄--天生自然JAVA反射机制学习笔记:认识Class类
2020-03-04 吴裕雄--天生自然信息安全学习笔记:信息安全内容概述