大家都知道,註解只能配置常量,在一些構架的開發中,有時候我們需要給註解動態配置一些值,或者想從配置檔案中讀取配置。直接在註解上配置是無法實現的,但是我們可以在拿到註解的值之後,再對這些值進行另外的操作。比如在註解上面配置佔位符,在使用的時候,再對這些佔位符進行替換。在rocketmq的監聽配置中,就使用了這個技術,如下**所示:
@rocketmqmessagelistener(topic = "$", consumergroup = "gateway-message-consumer-group")
public class gatewaymessagereceiveservice implements rocketmqlistener
}
這裡面rocketmqmessagelistener註解配置的topic就是配置的佔位符,它會讀取yml配置檔案中的game.server.config.business-game-message-topic配置的值。那麼它是怎麼實現的呢?很簡單,spring boot已經替換我們實現了,只需要調一下方法就可以了,如下面**所示:
container.settopic(environment.resolveplaceholders(annotation.topic()));
比如,在伺服器啟動的時候,想在日誌上面列印一下註解中topic的真實值,如下所示:
@autowired
private environment environment;
@postconstruct
public void init() ,group:{}",topic,messagelistener.consumergroup());
}
另外,簡單了解一下在spring 佔們符以#和$開頭的不同:
1.使用者獲取外部檔案中指定key的值
2.可以在xml中配置,也可以出現在@value註解中
3.一般用於獲取資料庫配置內容資訊
1.spring中el表示式的格式
2.可以在xml中配置,也可以出現在@value註解中
3.可以任意表示式,支援運算子
SpringBoot的註解配置
springboot中基本捨棄了繁瑣的xml方式來進行配置轉而使用更加簡潔的註解來進行配置,有很多需要我們學習。雖然捨棄了xml配置,springboot給我們提供了很多註解來配置,比如 author komeijiyui configuration propertysource classpath...
SpringBoot中的註解
在spring boot中幾乎可以完全棄用xml配置檔案,本文的主題是分析常用的註解。spring最開始是為了解決ejb等大型企業框架對應用程式的侵入性,因此大量依靠配置檔案來 非侵入式 得給pojo增加功能,然而,從spring 3.x開始,spring被外界最為詬病的一點就是配置繁多,號稱 配置...
springboot中的註解
configuration和 bean 這兩個註解一般都是搭配使用,在springboot中,官方給我們配置了很多的啟動器,而我們配置的時候往往在配置檔案properties或者yml中配置相對應的引數即可,但是官方總有沒有自動化的引數,這時候我們就需要了這個註解。例如當我們ssm shiro的時候...