日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

java 按条件注解_Spring 条件注解 @Conditional

發布時間:2025/3/20 javascript 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 按条件注解_Spring 条件注解 @Conditional 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

下面的示例將以不同的操作系統作為條件,我們將通過實現Condition接口,并重寫其matches方法來構造判斷條件。如在Windows系統下運行程序輸出dir,Linux下輸出ls。

一、不同系統下的Bean

1、聲明接口

package cn.wuweixiang.springbootdemo.service;

/**

* ListService

*

* @author weixiang.wu

* @date 2018 -08-22 15:39

*/

public interface ListService {

/**

* Show list cmd string.

*

* @return the string

*/

String showListCmd();

}

2、Windows下所要創建的Bean

package cn.wuweixiang.springbootdemo.service.impl;

import cn.wuweixiang.springbootdemo.service.ListService;

/**

* WindowsListServiceImpl

*

* @author weixiang.wu

* @date 2018-08-22 15:40

**/

public class WindowsListServiceImpl implements ListService {

@Override

public String showListCmd() {

return "dir";

}

}

3、Linux下所要創建的Bean

package cn.wuweixiang.springbootdemo.service.impl;

import cn.wuweixiang.springbootdemo.service.ListService;

/**

* LinuxListServiceImpl

*

* @author weixiang.wu

* @date 2018-08-22 15:42

**/

public class LinuxListServiceImpl implements ListService {

@Override

public String showListCmd() {

return "ll";

}

}

二、判斷條件定義

package cn.wuweixiang.springbootdemo.condition;

import org.springframework.context.annotation.Condition;

import org.springframework.context.annotation.ConditionContext;

import org.springframework.core.type.AnnotatedTypeMetadata;

import java.util.Objects;

/**

* ConditionalConfig

*

* @author weixiang.wu

* @date 2018-08-22 15:55

**/

public class LinuxCondition implements Condition {

@Override

public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {

return Objects.requireNonNull(context.getEnvironment().getProperty("os.name")).contains("Linux");

}

}

package cn.wuweixiang.springbootdemo.condition;

import org.springframework.context.annotation.Condition;

import org.springframework.context.annotation.ConditionContext;

import org.springframework.core.type.AnnotatedTypeMetadata;

import java.util.Objects;

/**

* ConditionalConfig

*

* @author weixiang.wu

* @date 2018-08-22 15:55

**/

public class WindowsCondition implements Condition {

@Override

public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {

return Objects.requireNonNull(context.getEnvironment().getProperty("os.name")).contains("Windows");

}

}

三、配置類

package cn.wuweixiang.springbootdemo.config;

import cn.wuweixiang.springbootdemo.condition.LinuxCondition;

import cn.wuweixiang.springbootdemo.condition.WindowsCondition;

import cn.wuweixiang.springbootdemo.service.ListService;

import cn.wuweixiang.springbootdemo.service.impl.LinuxListServiceImpl;

import cn.wuweixiang.springbootdemo.service.impl.WindowsListServiceImpl;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Conditional;

/**

* ConditionalConfig

*

* @author weixiang.wu

* @date 2018 -08-22 15:55

*/

public class ConditionalConfig {

/**

* 使用@Conditional注解,符合Linux條件就實例化LinuxListService

*

* @return the list service

*/

@Bean

@Conditional(LinuxCondition.class)

public ListService linuxListService() {

return new LinuxListServiceImpl();

}

/**

* 使用@Conditional注解,符合Windows條件就實例化WindowsListService

*

* @return the list service

*/

@Bean

@Conditional(WindowsCondition.class)

public ListService windowsListService() {

return new WindowsListServiceImpl();

}

}

四、測試類

package cn.wuweixiang.springbootdemo;

import cn.wuweixiang.springbootdemo.config.ConditionalConfig;

import cn.wuweixiang.springbootdemo.service.ListService;

import org.junit.After;

import org.junit.Test;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**

* SpringConditionalTest

*

* @author weixiang.wu

* @date 2018-08-22 16:00

**/

public class SpringConditionalTest {

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ConditionalConfig.class);

@Test

public void contextTest() {

ListService listService = context.getBean(ListService.class);

System.out.println(context.getEnvironment().getProperty("os.name")

+ "系統下的列表命令為:"

+ listService.showListCmd());

}

@After

public void closeContext() {

context.close();

}

}

轉載至鏈接:https://my.oschina.net/wuweixiang/blog/1932216

總結

以上是生活随笔為你收集整理的java 按条件注解_Spring 条件注解 @Conditional的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91丝袜美女 | 日韩欧美亚洲一区二区三区 | 中文字幕无码人妻少妇免费 | 国产寡妇亲子伦一区二区三区四区 | 人人干在线 | 色网站免费 | 日本少妇吞精囗交视频 | 美日韩丰满少妇在线观看 | 人人插人人草 | 免费麻豆国产一区二区三区四区 | 日本免费网址 | 午夜福利电影一区 | 欧美专区日韩专区 | 国产在线色视频 | 久久久精品久久久久久 | 国产男男chinese网站 | a级黄片毛片 | 久久夜夜操妹子 | a级黄色网 | 亚洲视频黄色 | 亚洲欧美自偷自拍 | 7799精品视频天天看 | 日韩一区二区三区不卡视频 | av在线播放观看 | 日韩最新视频 | 婷婷毛片 | 俺来也av| 国产精品夫妻自拍 | 欧美福利视频一区 | 人妻无码中文久久久久专区 | 亚洲无线看 | 亚洲精品粉嫩小泬20p | 中文字幕在线看人 | 亚洲欧美综合另类自拍 | 国产精品二三区 | www.三级.com | 在线观看亚洲精品 | 中文区中文字幕免费看 | h视频网站在线观看 | 韩国三级中文字幕hd浴缸戏 | 粉色视频免费观看 | 日韩一卡二卡三卡四卡 | 性久久久久久久久久 | 国产av无码专区亚洲av麻豆 | 91精品福利视频 | 国产毛片不卡 | 国产精品久久久久久中文字 | 亚洲一区黄色 | 国产拍拍拍拍拍拍拍拍拍拍拍拍拍 | 欧美在线日韩在线 | 国产精品亚洲а∨天堂免在线 | 亚洲欧美激情小说另类 | 日韩在线免费观看视频 | 日韩欧美亚洲精品 | 色综合中文 | av手机天堂网 | 午夜影院免费 | 老司机在线看片 | 亚洲国产av一区二区三区 | 青草成人免费视频 | 96福利视频| 美女又爽又黄免费视频 | 免费中文字幕日韩欧美 | 这里只有精品久久 | 国产国语性生话播放 | 丁香一区二区三区 | 玉蒲团在线 | 日本天堂一区 | 日韩欧美三级在线 | 国产人妻精品一区二区三区 | 永久精品网站 | jzzijzzij亚洲成熟少妇在线观看 久久久精品人妻一区二区三区 | 琪琪色在线观看 | 成人免费看片入口 | www.欧美com | 国产福利片在线 | 一级特黄aa大片免费播放 | 在线观看av黄色 | 欧美色涩在线第一页 | 欧美一区二区三区视频在线观看 | 国产欧美日韩精品区一区二污污污 | 免费草逼视频 | 综合色在线视频 | 精品二三区 | 亚洲天天干| aaa天堂 | 理论片一级| 国产免费看黄 | 在线中文字幕观看 | 69视频在线观看免费 | 久色成人| 波多野在线视频 | 亚洲国产专区 | 91成人免费网站 | 国产青青操| 国产精品videossex久久发布 | 日韩香蕉视频 | 99久久久无码国产精品性波多 | 99久久人妻精品免费二区 |