springboot 中如何实现多环境配置
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,springboot 中如何实现多环境配置,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。目录功能描述具体配置及细节打包过滤功能描述有些时
千家信息网最后更新 2024年11月22日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安全错误
数据库的锁怎样保障安全
网络安全组织活动
数据库查询语句完整
linux服务器显示鉴定故障
服务器如何关闭目录遍历
计算机软件开发需要什么证书
小学网络安全知识教育计划
怎么把数据库数据加密
分布式数据库逻辑整体性名词解析
什么网络技术需求最大
守望先锋开发者自定义服务器
原神服务器人多对玩家有影响吗
数据库检索语言是什么意思
女生23岁能学软件开发
服务器的企业管理器
嘉定区信息软件开发服务要求
软件开发平台的前景
护苗.网络安全课心得
群辉云存储服务器不间断电源
一款软件如何清理服务器
xmeye服务器
sql数据库被修改密码
重庆顺宇德聚网络技术有限公司
政法软件数据库
数据库 bi
彩凡软件开发有限公司
四年级上册网络技术课本
起点app数据库失败
视频存储 数据库
软件开发第三方控件稳定性
导入sql数据库慢