在Spring Boot中多個模塊使用對應的配置文件

我們使用Spring Boot編寫多個模塊開發時,我們希望各個模塊使用各自的配置文件,避免將整個項目的配置文件都寫在一起,從而降低各個模塊之間的耦合度。

這裏有兩種方法讓各個模塊讀取自己的配置文件:

先看看以下項目的目錄結構:有一個清晰的瞭解。

我們讓各個模塊讀取自己的配置文件信息:redis模塊讀取redis的配置文件。

第一種方法:(使用屬性配置文件,即properties結尾的配置文件)

我們使用屬性文件(.properties)後綴結尾的配置文件。

1.    我們在各個模塊的resource下創建我們的配置文件。例如我們在redis模塊下的resource放置一個redis.properties文件。

            

        這個文件的內容是:

                spring.redis.open=true
                spring.redis.port=6379
                spring.redis.database=0
                spring.redis.host=localhost
                spring.redis.password=
                spring.redis.timeout=6000
                spring.redis.jedis.pool.max-active=1000
                spring.redis.jedis.pool.max-wait=-1
                spring.redis.jedis.pool.max-idle=10
                spring.redis.jedis.pool.min-idle=5

2.    我們讀取相應的配置文件使用@PropertySource註解。

    使用@PropertySource(value = "classpath:redis.properties")註解,並配合@Value註解@Value("${spring.redis.open}"),完成參數的注入,一定要有@Configuration註解,不然不起作用。

注意:classpath:redis,properties中【冒號】之後沒有空格,不然找不到文件

注意:我們將資源文件放入到resource目錄下的話,就會在運行項目的放入到相應的classes目錄下,

注意:這種方法,我們不需要各個模塊之間的配合,可以很容易的將各個模塊去掉。而不影響其他各個模塊的運行

第二種方法:使用yml文件的配置文件(以yml後綴結尾)

現在我們經常使用yml文件作爲我們的配置文件。如何讓各個模塊使用自己的yml文件呢?

注意:@PropertySource註解只支持properties文件。而不支持yml文件。

我也是嘗試了好久,所以我們不能直接使用:@PropertySource(value="redis.yml")這樣我們會讀取不到數據,並報錯,說不能解析變量佔位符${spring.redis.open}。

1.    使用yml的配置文件,名稱一定以application-開頭,例如:application-dev.yml,application-pro.yml,application-redis.yml文件等你等。

        文件的內容:

            spring:
                redis:
                    database: 0
                    host: localhost
                    jedis:
                        pool:
                            max-active: 1000
                            max-idle: 10
                            max-wait: -1
                            min-idle: 5
                    open: true
                    password: ''
                    port: 6379

                    timeout: 1000

2.    在我們的主模塊的application.yml中加入下面的一句話:

            spring:
                  profiles:

                        active: dev,redis(這裏只寫application-之後的名稱。多個之間用逗號分隔)

就可以了。

注意:這個方法我們必須在主模塊的application.yml中加入一句話。纔可以。不然找不到這個文件。

本文來源:https://blog.csdn.net/cw_hello1/article/details/79639448


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章