在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://download.csdn.net/download/cw_hello1/10301673


更多精彩内容:请关注公众号:

模块Spring Boot项目打包是指将多个Spring Boot项目打包成一个单独的包或安装包,以便在其他计算机上运行和使用。这可以通过以下步骤实现: 1. 创建项目结构:在项目创建一个主模块和一个或多个模块。主模块通常包含入口点应用程序和公共依赖项,而子模块包含特定的业务逻辑或功能。 2. 配置主模块:在主模块的pom.xml文件,添加必要的依赖项和插件来支持打包。这些插件包括Maven Surefire插件和Maven Assembly插件。 3. 配置子模块:在子模块的pom.xml文件,添加必要的依赖项和插件来引用主模块。 4. 构建项目:在命令行运行mvn clean install命令,以构建整个项目。这将生成一个或多个可执行的JAR文件,每个文件对应一个模块。 5. 打包所有模块:可以使用Maven Assembly插件将所有模块打包成一个单独的包。该插件可以将不同的模块组合在一起,并创建单个可执行文件或安装包。 6. 发布到央仓库:如果需要将项目发布到央仓库或其他源代码管理库,可以使用Maven的发布插件(如Maven Deploy插件)将打包后的文件上传到仓库。 需要注意的是,多模块Spring Boot项目的打包过程可能会因项目的复杂性而有所不同。因此,建议仔细阅读相关文档和教程,以确保正确地执行打包过程。此外,还可以使用一些工具和库来简化打包过程,如Maven Shade插件和Gradle插件等。这些工具和库可以帮助您更轻松地管理依赖关系和打包过程。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值