国产探花免费观看_亚洲丰满少妇自慰呻吟_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();  }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 观塘区| 济宁市| 定安县| 福安市| 玛纳斯县| 莱西市| 高台县| 晋江市| 安多县| 永济市| 巢湖市| 天台县| 凌海市| 神池县| 剑川县| 灌阳县| 临沂市| 秦皇岛市| 于都县| 石门县| 鞍山市| 定兴县| 青海省| 麟游县| 石屏县| 长子县| 醴陵市| 于都县| 靖宇县| 海盐县| 海林市| 讷河市| 高邮市| 柳河县| 南充市| 彭泽县| 涟源市| 元谋县| 腾冲县| 宜良县| 芦山县|