国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 幫助中心 > 正文

Spring條件注解用法案例分析

2024-07-09 22:41:22
字體:
來源:轉載
供稿:網友

本文實例講述了Spring條件注解用法。分享給大家供大家參考,具體如下:

一 點睛

Spring 4 提供了一個更通用的基于條件的Bean的創建,即使用@Conditional注解。

@Conditional根據滿足僅一個特定條件創建一個特定的Bean。也就是根據特定的條件來控制Bean的創建行為,這樣就可以利用這個特性進行一些自動的配置。

二 項目說明

以不同的操作系統為條件,通過實現@Condition接口,并重寫matches方法來構造條件。若在windows系統下運行,則輸出列表命令為dir;若在Linux操作系統下運行程序,則輸出列表命令為ls。

三 實戰

1 判斷條件定義

1.1 windows的判定條件

package com.wisely.highlight_spring4.ch3.conditional;import org.springframework.context.annotation.Condition;import org.springframework.context.annotation.ConditionContext;import org.springframework.core.type.AnnotatedTypeMetadata;public class WindowsCondition implements Condition { public boolean matches(ConditionContext context,   AnnotatedTypeMetadata metadata) {  return context.getEnvironment().getProperty("os.name").contains("Windows"); }}

1.2 Linux的判定條件

package com.wisely.highlight_spring4.ch3.conditional;import org.springframework.context.annotation.Condition;import org.springframework.context.annotation.ConditionContext;import org.springframework.core.type.AnnotatedTypeMetadata;public class LinuxCondition implements Condition { public boolean matches(ConditionContext context,   AnnotatedTypeMetadata metadata) {  return context.getEnvironment().getProperty("os.name").contains("Linux"); }}

2 不同系統下的Bean類

2.1 接口

package com.wisely.highlight_spring4.ch3.conditional;public interface ListService {  public String showListCmd();}

2.2 Window下創建的Bean類

package com.wisely.highlight_spring4.ch3.conditional;public class WindowsListService implements ListService {  @Override  public String showListCmd() {   return "dir";  }}

2.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;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Conditional;import org.springframework.context.annotation.Configuration;@Configurationpublic class ConditionConifg { @Bean @Conditional(WindowsCondition.class) //符合window條件,則實例化WindowsListService public ListService windowsListService() {  return new WindowsListService(); } @Bean @Conditional(LinuxCondition.class) //符合Linux條件,則實例化LinuxListService public ListService linuxListService() {  return new LinuxListService(); }}

4 主類

package com.wisely.highlight_spring4.ch3.conditional;import org.springframework.context.annotation.AnnotationConfigApplicationContext;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());   context.close();  }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿拉善右旗| 通化市| 沈丘县| 五原县| 合川市| 凌云县| 巨野县| 会理县| 永仁县| 鄂托克前旗| 兴文县| 托克逊县| 德兴市| 桂阳县| 自治县| 苗栗县| 马公市| 东至县| 博湖县| 苍梧县| 于都县| 信丰县| 东丽区| 淮南市| 黔西县| 建湖县| 崇阳县| 酒泉市| 绥滨县| 秭归县| 都匀市| 辽源市| 安国市| 浪卡子县| 临沧市| 宣城市| 西平县| 蒙山县| 石楼县| 沅江市| 岳池县|