讲述了JavaSpring:条件注解,包括:根据不同操作系统获取不同的bean。
树图思维导图提供 JavaSpring-条件注解 在线思维导图免费制作,点击“编辑”按钮,可对 JavaSpring-条件注解 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:7ed6a746ef778c0d3b56ac6643311424
JavaSpring-条件注解思维导图模板大纲
@Conditional根据满足某一个特定条件创建一个特定的Bean。
1.判断条件定义
(1)判定Windows的条件
package com.wisely.highlight_spring4.ch3.conditional; public class WindowsCondition implements Condition { public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { return context.getEnvironment().getProperty("os.name").contains("Windows"); } }
(2)判定Linux的条件
package com.wisely.highlight_spring4.ch3.conditional; public class LinuxCondition implements Condition { public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { return context.getEnvironment().getProperty("os.name").contains("Linux"); } }
2.不同系统下Bean的类
(1)接口
package com.wisely.highlight_spring4.ch3.conditional; public interface ListService { public String showListCmd(); }
(2)Windows下所要创建的Bean的类
package com.wisely.highlight_spring4.ch3.conditional; public class WindowsListService implements ListService { @Override public String showListCmd() { return "dir"; } }
(3)Linux下所要创建的Bean的类
package com.wisely.highlight_spring4.ch3.conditional; public class LinuxListService implements ListService{ @Override public String showListCmd() { return "ls"; } }
3.配置类
package com.wisely.highlight_spring4.ch3.conditional; @Configuration public class ConditionConifg { @Bean @Conditional(WindowsCondition.class) //1 符合Windows条件则实例化windowsListService。 public ListService windowsListService() { return new WindowsListService(); } @Bean @Conditional(LinuxCondition.class) //2 符合Linux条件则实例化linuxListService。 public ListService linuxListService() { return new LinuxListService(); } }
4.运行
package com.wisely.highlight_spring4.ch3.conditional; public class Main { public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ConditionConifg.class); ListService listService = context.getBean(ListService.class); System.out.println(context.getEnvironment().getProperty("os.name") + "系统下的列表命令为: " + listService.showListCmd()); } }
输出
windows系统:Windows8.1系统下的列表命令为:dir
Linux系统:Linux系统下的列表命令为:ls
树图思维导图提供 如何做好IT软件项目建设方案的编制 在线思维导图免费制作,点击“编辑”按钮,可对 如何做好IT软件项目建设方案的编制 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:03bf9c045cf768b6b89cc8908bd9d86c
树图思维导图提供 汽车质押贷款产品方案 在线思维导图免费制作,点击“编辑”按钮,可对 汽车质押贷款产品方案 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:116f2a7c236c6c94c82fe11f4e9d41fe