springboot 中如何实现多环境配置
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,springboot 中如何实现多环境配置,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。目录功能描述具体配置及细节打包过滤功能描述有些时
千家信息网最后更新 2025年01月31日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安全错误
数据库的锁怎样保障安全
周村办公自动化oa软件开发
广州为知互联网科技面试
网络安全主要是采用什么技术
中职网络技术比赛
工业网络技术三层交换机论文
网络安全工程师生活方式
他趣软件开发
机智过人网络安全
linux查看是哪个数据库
网络安全教育教师国旗下讲话
沧州福州app软件开发
数据库 脏表
服务器电源英文简称
芯片服务器好不好
初中生的网络安全心得
netgear服务器
网络安全检查标题
谨记网络安全共创网络文明ppt
mysql附加源数据库
软件开发登记公示
企业管理系统 服务器
liunx安装pg数据库
云服务器管理破解版
如何做好数据库软件销售
索引是数据库物理范畴吗
大众点评签到数据库
深圳海付网络技术有限公司
上善若水软件开发
物联网设计大数据下数据库的构架
济南做软件开发的公司