国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

SpringBoot自定義注解屬性支持占位符$「x」

開發 前端
本文教你如何在SpringBoot環境下使得自定義的注解能夠使用${xxx}表達式。

[[382427]]

 環境:SpringBoot2.3.8.RELEASE + JDK1.8

本文教你如何在SpringBoot環境下使得自定義的注解能夠使用${xxx}表達式。

相關依賴

  1. <dependency> 
  2.             <groupId>org.aspectj</groupId> 
  3.             <artifactId>aspectjrt</artifactId> 
  4. </dependency> 
  5. <dependency> 
  6.             <groupId>org.aspectj</groupId> 
  7.             <artifactId>aspectjweaver</artifactId> 
  8.             <scope>runtime</scope> 
  9. </dependency> 

 自定義注解

  1. @Retention(RetentionPolicy.RUNTIME) 
  2. @Target(ElementType.METHOD) 
  3. @Documented 
  4. public @interface Manufactur { 
  5.     String value() default "" ; // 廠商編號 

 AOP

需要AOP在方法執行器對方法上的注解進行解析處理,獲取占位符對應的值

  1. @Component 
  2. @Aspect 
  3. public class ManufacturAspect implements EnvironmentAware { 
  4.      
  5.     private static final Logger logger = LoggerFactory.getLogger(ManufacturAspect.class) ; 
  6.      
  7.     private Environment environment; 
  8.      
  9.     @Pointcut("@annotation(com.pack.annotation.Manufactur)"
  10.     private void info() {} 
  11.      
  12.     @Before("info()"
  13.     public void execBefore(JoinPoint jp) { 
  14.         MethodSignature sign = (MethodSignature) jp.getSignature() ; 
  15.         Method method = sign.getMethod() ; 
  16.         Manufactur manu = method.getAnnotation(Manufactur.class) ; 
  17.         String value = manu.value() ; 
  18.         logger.info("獲取到注解值:{}", value) ; 
  19.         BusinessService.code.set(this.environment.resolvePlaceholders(value)) ; 
  20.     } 
  21.  
  22.     @Override 
  23.     public void setEnvironment(Environment environment) { 
  24.         this.environment = environment ; 
  25.     } 
  26.      

 該類實現了EnvironmentAware 用于獲取Environment對象,該對象能夠獲取當前環境下的所有相關配置信息。同時通過該類的resolvePlaceholders方法能夠解析占位符對應的內容值。

Service中使用

  1. @Service 
  2. public class BusinessService { 
  3.      
  4.     public static ThreadLocal<String> code = new ThreadLocal<String>() ; 
  5.      
  6.     private static Logger logger = LoggerFactory.getLogger(BusinessService.class) ; 
  7.      
  8.     @Manufactur("${manufactur.code}-#{1 + 3}"
  9.     public String invoke(String id) { 
  10.         String sno = code.get() ; 
  11.         logger.info("自定義注解動態獲取屬性值:{}", sno) ; 
  12.         // todo 
  13.         return sno ; 
  14.     } 
  15.      

 在AOP中將解析后的值已經存入到了ThreadLocal中。

測試

  1. @RestController 
  2. @RequestMapping("/business"
  3. public class BusinessController { 
  4.      
  5.     @Resource 
  6.     private BusinessService bs ; 
  7.      
  8.     @GetMapping("/{id}"
  9.     public Object home(@PathVariable String id) { 
  10.         return bs.invoke(id) ; 
  11.     } 
  12.      

 

到此一個自定義注解中支持占位符就完成了,還是非常簡單的。

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2023-10-11 07:57:23

springboot微服務

2024-07-02 11:42:53

SpringRedis自定義

2024-10-09 10:46:41

springboot緩存redis

2023-10-09 07:37:01

2013-04-01 14:35:10

Android開發Android自定義x

2024-10-14 17:18:27

2022-09-21 14:42:03

JSProps屬性

2023-10-24 13:48:50

自定義注解舉值驗證

2017-03-27 16:50:26

windowsedge微軟

2024-12-27 15:37:23

2021-12-30 12:30:01

Java注解編譯器

2022-09-13 09:02:19

SpringBootStarter機制

2011-03-17 09:45:01

Spring

2009-08-04 13:35:16

ASP.NET自定義樣

2009-08-06 17:13:56

ASP.NET自定義控

2011-08-09 17:16:56

CoreAnimati動畫

2020-11-25 11:20:44

Spring注解Java

2022-11-01 11:15:56

接口策略模式

2022-02-17 07:10:39

Nest自定義注解

2017-08-03 17:00:54

Springmvc任務執行器
點贊
收藏

51CTO技術棧公眾號

免费观看中文字幕| 99精品视频网站| 国产伦久视频在线观看| 亚洲一级二级三级在线免费观看| 亚洲欧洲精品一区| 韩国自拍一区| 国产男人精品视频| 日韩欧美黄色| 欧美裸体男粗大视频在线观看| 不卡一本毛片| 日韩丝袜情趣美女图片| 国产网站在线播放| 亚洲成人高清在线| 国产激情二区| 国产欧美一区二区三区在线看蜜臀 | 福利一区二区免费视频| 日韩欧美黄色影院| 精精国产xxxx视频在线| 色婷婷激情综合| 欧美日韩激情视频一区二区三区| 亚洲精品乱码久久久久久 | 男人的天堂在线免费视频| 亚洲精品免费在线| 性网站在线免费观看| 中文字幕免费不卡在线| 成人免费视频网站在线看| 国产目拍亚洲精品99久久精品| 免费观看日韩毛片| 国产人成亚洲第一网站在线播放| 99sesese| 欧美日韩精品国产| 黄色网址在线免费观看| 日韩精品中文字幕在线播放| 影视一区二区三区| 欧美精品18videos性欧| 国产99精品| 国产美女91呻吟求| 午夜视频一区| 亚洲成人午夜在线| 亚洲第一页中文字幕| 黄色大片在线看| 91九色国产视频| 国产大片一区| 99电影在线观看| 亚洲黄色在线| 亚洲免费久久| 久久婷婷成人综合色| 羞羞免费视频网站| 欧美性高潮床叫视频| 黄网站视频在线观看| 精品国产亚洲一区二区三区在线观看| 中文字幕在线看片| 久久久免费在线观看| 国产精品二区不卡| 欧美中文娱乐网| 国产成人一区二区精品非洲| 丁香色欲久久久久久综合网| 国产精品久久久久久亚洲毛片| 在线播放免费| 亚洲第一精品夜夜躁人人爽| 91午夜精品| 国产一区免费观看| 成人av电影在线网| 四虎在线免费观看| 中文字幕亚洲二区| 97久久视频| 女女百合国产免费网站| 亚洲一级二级三级| 美女网站视频在线| 欧美激情久久久久久| 亚洲精品影视| 成熟老妇女视频| 日韩欧美中文在线| 国产精品毛片无码| 成人一区二区三区四区| 白白色 亚洲乱淫| 又黄又爽的视频在线观看| 日韩成人在线播放| 国内精品久久久久久久影视简单 | 免费在线观看精品| 污污网站免费看| 欧美不卡视频一区| 2020最新国产精品| 日本成人三级| 国产精品视频第一区| 国产精品va在线观看视色| 国内精品一区二区三区| 日日夜夜一区二区| 人成网站免费观看| 在线观看国产欧美| 亚洲激情另类| 美女av电影| 国产亚洲精品久久久久动| 欧美成人精品一区二区三区在线看| www.av91| 宅男噜噜噜66一区二区66| 偷拍自拍亚洲色图| www.日本在线播放| 91精品免费观看| 免费短视频成人日韩| www.浪潮av.com| 亚洲黄色www网站| 在线精品在线| 天堂资源在线观看| 亚洲伦理一区二区| 日本精品免费| 欧美专区日韩专区| 中国字幕a在线看韩国电影| 亚洲aaaaaa| 欧美这里只有精品| 日韩午夜精品电影| 天天综合一区| 欧美日韩在线电影| 色播一区二区| 欧美 国产 精品| 欧美一区二区三区四区视频| blacked蜜桃精品一区| 麻豆三级在线观看| 欧美精品在线网站| 国产在线视频一区二区| 综合久久2o19| 激情久久av| 国产精品多人| 欧美全黄视频| 能在线看的av| 亚洲三级免费看| 日日夜夜免费精品视频| 国产无套粉嫩白浆在线2022年| 日韩av高清不卡| 亚洲男人天堂一区| 亚洲+变态+欧美+另类+精品| 一本色道久久亚洲综合精品蜜桃| 久久久精品国产一区二区| 成人av免费在线| 亚洲欧美日韩精品久久| 久久av在线播放| 国产免费内射又粗又爽密桃视频| av电影院在线看| 日韩经典中文字幕一区| 色婷婷精品久久二区二区蜜臀av| 黑人精品欧美一区二区蜜桃| 欧美变态网站| 羞羞视频在线观看不卡| 亚在线播放中文视频| 91av俱乐部| 青娱乐一区二区| 俺也去精品视频在线观看| 国产女主播视频一区二区| 久久uomeier| 欧日韩免费视频| 亚洲人成啪啪网站| 亚洲国产精品天堂| 91蜜桃在线观看| 97蜜桃久久| 日本一区二区免费看| 伊人久久久久久久久久久| 久久日韩精品一区二区五区| 美女视频亚洲色图| 日本福利视频在线| 中文字幕精品国产| 在线天堂资源www在线污| 视频一区二区在线| 久久手机精品视频| 欧美综合久久久| 久99久精品视频免费观看| 动漫av一区| 国产三级电影在线| 成人免费网站入口| 亚洲男人第一网站| 色中色综合网| 九色在线网站| 国产精品免费一区二区三区在线观看 | 狠狠做六月爱婷婷综合aⅴ| 影院免费视频| 亚洲精品中文字幕乱码三区不卡| 日韩欧美一区在线观看| 国产自产v一区二区三区c| 亚洲人成网77777色在线播放| 3p在线观看| av中文天堂在线| 国产特级嫩嫩嫩bbb| **三级三级97片毛片| 国产精品视频一二三四区| 日韩情涩欧美日韩视频| 日韩欧美一区二区三区| 尤物99国产成人精品视频 | 国产欧美一区二区三区精品酒店| 黄色片视频在线播放| 全球成人中文在线| 欧美日韩一区二区三区在线免费观看 | 国产一区美女| 日韩三区在线| 久久91麻豆精品一区| 免费成人在线网站| 欧美日韩中文在线观看| 亚洲一区二区三区在线免费观看| 亚洲欧美自拍另类日韩| av有码在线观看| 久久成人精品无人区| 久久久精品在线观看|