springboot 中如何实现多环境配置
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,springboot 中如何实现多环境配置,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。目录功能描述具体配置及细节打包过滤功能描述有些时
千家信息网最后更新 2026年11月01日springboot 中如何实现多环境配置
springboot 中如何实现多环境配置,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
目录
功能描述
具体配置及细节
打包过滤
功能描述
有些时候,一个项目需要适配多种开发环境,如数据库不同(mysql、oracle、db2等)、如开发环境不同(dev、pro、test)等不同的环境需要指定不同的配置。这种情况下,我们就可以采用配置Profiles来控制。在启动的时候指定不同的配置组合,maven进行build时会自动选择指定配置。
具体配置及细节
首先配置在pom中配置Profiles配置
mysql mysql oracle oracle db2 db2 dev dev prd prd
springboot中application.yml 中可以引用pom中的变量properties属性,引用的方式 **@变量@**
mybatis: configuration: map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mapper-locations: [mybatis/**/**@spring.profiles.active@**/*Mapper.xml] type-aliases-package: com.*.*.domain.entity,com.*.*.system.entity
建立不同环境的配置文件,并以目录的形式区分(当然也可以以不同的开头命名区分)
以下是多环境配置的目录结构
以下是多数据库的配置,在每个环境application中配置
@Configurationpublic class DatasourceConfig{ @Resource Environment env; @Bean @Profile(value="mysql") public DataSource mysql(){ return dataSources("mysql"); } @Bean @Profile(value="oracle") public DataSource oracle(){ return dataSources("oracle"); } @Bean @Profile(value="db2") public DataSource db2(){ return dataSources("db2"); } /** * 获取数据源 * @param type (mysql,oracle,db2 ....) */ public DataSource dataSources(String type) { String driverClassName = env.getProperty("mydatasource."+type+".driver-class-name"); String url = env.getProperty("mydatasource."+type+".url"); String username = env.getProperty("mydatasource."+type+".username"); String password = env.getProperty("mydatasource."+type+".password"); DruidDataSource druidDataSource = new DruidDataSource(); druidDataSource.setName(type); druidDataSource.setDriverClassName(driverClassName); druidDataSource.setUrl(url); druidDataSource.setUsername(username); druidDataSource.setPassword(password); //TODO ..... return druidDataSource; }}打包过滤
资源过滤 pom.xml build标签下
src/main/resources true/false src/main/resources config/ mybatis/ src/main/resources/config/${package.environment} config.properties src/main/resources mybatis/**/${spring.profiles.active}/** org.apache.maven.plugins maven-jar-plugin com/yuyi/imap/ServletInitializer.class
配置profiles 多环境打包过滤
mysql mysql jar org.springframework.boot spring-boot-starter-quartz mysql mysql-connector-java 5.1.43 org.apache.maven.plugins maven-jar-plugin com/yuyi/imap/oracle/* com/yuyi/imap/db2/* oracle oracle war org.apache.maven.plugins maven-war-plugin WEB-INF/classes/com/yuyi/imap/mysql/, WEB-INF/classes/com/yuyi/imap/db2/ org.apache.maven.plugins maven-jar-plugin com/yuyi/imap/mysql/ com/yuyi/imap/db2/*
同一个接口,不同的实现可以通过重名和注解实现
同一个接口有两种实现,并且采用同一个命名,这样在启动的时候会报错(别名重复)所以需要将不用的目录给排除掉,不编译成class,这里采用idea
这么做只会影响springboot启动的时候,打包的时候不受此影响。
打包时指定profile 就可以将不同环境的资源文件和java代码以及jar排除掉,最小打包。
看完上述内容,你们掌握springboot 中如何实现多环境配置的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
配置
环境
不同
时候
目录
数据
内容
功能
变量
接口
数据库
文件
方法
更多
细节
资源
问题
开发
影响
最小
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网金融科技
互联网科技公司经营范围
盈实互联网科技
喔噻互联网科技
甘肃拓世互联网科技有限公司
北京三清互联网科技
深圳国际航运科技和互联网
欧洲十大科技互联网公司
互联网科技公司实习生
互联网科技革命什么开始
允成互联网科技有限公司融资
国大互联网教育科技有限公司薪资
锡山区互联网智能科技产品供应
领航科技大厦互联网公司
2021世界互联网领先科技成果发布
互联网科技接地气
普陀区互联网教育科技管理办法
求路客互联网科技电话
互联网科技和医药行业
宁波允成互联网科技有限公司
圆梦互联网科技
盈实互联网科技
北京互联网科技
美国互联网科技
上海卓越科技 互联网
中国科技互联网公司收入
互联网科技热点资讯
科技互联网的核心竞争力
玉溪新华互联网科技怎么选
盐城市攀科互联网科技有限公司