使用maven的profile区分本地环境和线上环境

使用maven的profile区分本地环境和线上环境

多环境开发,使用maven-profile,就可以在打包的时候通过参数的调整,最终打的包也不同。

以区分本地数据库和线上数据库为例
比如测试环境,用的是本地测试数据库;生产环境用的是线上生产库
针对不同库的url,userName,password,就可以配两套,通过profile区分,然后打包的时候就可以区分了

具体使用:

1.在pom.xml中,配置如下:

<project XXXXXXXX>......其他配置<dependencies></dependencies><profiles><profile><id>local</id><properties><profiles.active>local</profiles.active></properties></profile><profile><id>production</id><properties><profiles.active>production</profiles.active></properties></profile></profiles>
</project>

2.在配置加载properties文件的时候,做区分

    <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"><property name="locations"><list><value>classpath:application-${profiles.active}.properties</value></list></property></bean>

3. 新建两个properties文件,分别配置:

    application-local.properties(以后本地配置的信息都在这里)mysql.url=本地url;mysql.userName=admain;mysql.password=admain;application-production.properties(以后线上配置的信息都在这里)mysql.url=线上url;mysql.userName=线上用户名;mysql.password=线上密码;
这里的local和production与pom.xml中的profiles.active标签的值一一对应

4.配置dataSource

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="${mysql.url}" /><property name="username" value="${mysql.user}" /><property name="password" value="${mysql.password}" />	
</bean>		

5.打包

使用maven package -P local打包,那么最终数据源就会使用本地的
使用maven package -P production打包,那么最终数据源就会使用线上的
这里的local和production与pom.xml中的id标签的值一一对应

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查看函数库.a函数符号信息

一、概述 nm命令可以列出一个函数库文件中的符号表。它对于静态的函数库和共享的函数库都起作用。对于一个给定的函数库&#xff0c;nm命令可以列出函数库中定义的所有符号&#xff0c;包括每个符号的值和类型。还可以给出在原程序中这个函数&#xff08;符号&#xff09;是在多…

重构,体现一个工程师的基本素养和底蕴(细节篇)

重构小记&#xff08;重构&#xff0c;改善既有代码的设计读后总结&#xff09; 方法级别 提炼函数&#xff1a; 将一个大方法&#xff0c;拆成多个小方法&#xff0c;难点在于小方法的命名。 假如有早上上学的一个大方法&#xff0c; 那么就应该在里面有起床&#xff0c;穿衣…

MVPVM模式介绍

一、概述MVPVM即&#xff1a;Model-View-Presenter-ViewModel。此模式是MVVM和MVP模式的结合体。但是交互模式发生了比较大的变化。MVVM参考本博客文章&#xff1a;iOS-MVVM-模式介绍MVP参考本博客文章&#xff1a;MVP模式介绍 二、原理&#xff1a;Presenter同时持有View、Mod…

[线程池] ------ 形象的描述线程池,用一个特好记的例子来记忆

线程池 为了减少线程频繁的创建和销毁过程&#xff0c;引入池的概念。 将一些线程先创建好放在线程池中&#xff0c;每次来任务就用池中的线程执行&#xff0c;空闲时池中线程就等待&#xff0c;但不销毁。 原始线程池的创建&#xff1a; ThreadPoolExecutor executor1 new …

分组密码的工作模式

一、理论基础1.概述密码学中&#xff0c;块密码的工作模式允许使用同一个块密码密钥对多于一块的数据进行加密&#xff0c;并保证其安全性。块密码自身只能加密长度等于密码块长度的单块数据&#xff0c;若要加密变长数据&#xff0c;则数据必须先被划分为一些单独的密码块。通…

数据仓库基本认知

数据仓库概念&#xff1a; 数据仓库&#xff0c;英文名称Data Warehouse&#xff0c;简写为DW。 是一种面向分析的存储系统。 他是一个很大的数据存储集合&#xff0c;出于企业的分析性报告和决策支持目的而创建&#xff0c;对多样的业务数据进行筛选与整合。 它为企业提供一…

PBOC3.0中使用的国密SM2算法

一、知识准备 PBOC3.0规范就是《中国金融集成电路&#xff08;IC&#xff09;卡规范》3.0版本。SM2是国密局推出的一种他们自己说具有自主知识产权的非对称商用密码算法。本身是基于ECC椭圆曲线算法的&#xff0c;所以要讲SM2, 先要弄懂ECC。 完全理解ECC算法需要一定的数学功底…

mapper注入失败,NoSuchBeanDefinitionException: No qualifying bean of type [com.xxx.XxxMapper] found for d

mapper注入失败: Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.xxx.XxxMapper] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependen…

战地体能训练模拟器

一、名称&#xff1a;战地体能训练模拟器二、整体介绍&#xff1a; 1.体验者身处一个封闭空间的正中央&#xff0c;空间内部表面全部附着显示器&#xff0c;包含地板(因为地板是平的&#xff0c;可以使用投影的方式实现)&#xff0c;经过视角上的设计&#xff0c;体验者就像身处…

java读文件写文件

使用了try-with-resource语法&#xff08;JDK1.7及以上&#xff09;&#xff0c;代码更加便捷 Junit测试样例&#xff0c;先写入文件&#xff0c;再读出来&#xff1a; RunWith(SpringJUnit4ClassRunner.class) ContextConfiguration(locations "classpath:spring-conf…

Markdown入门

Markdown 是一种轻量级的「标记语言」&#xff0c;它的优点很多&#xff0c;目前也被越来越多的写作爱好者&#xff0c;撰稿者广泛使用。看到这里请不要被「标记」、「语言」所迷惑&#xff0c;Markdown 的语法十分简单。常用的标记符号也不超过十个&#xff0c;这种相对于更为…

bean注入失败的几种情况和解决思路:NoSuchBeanDefinitionException: No qualifying bean of type

bean注入失败&#xff0c;无非是两种情况&#xff0c;要么注入的写法出错&#xff0c;要么被注入的Bean未定义。 1.Bean未定义 如果是直接在XML中配置bean标签的时候 检查id和class是否写对 如果是用注解形式申明Bean 先检查Controller、Service、Repository、 Component …

通过AVFoundation框架获取摄像头数据

一、概述 从iOS4开始&#xff0c;AVFoundation框架增加了几个类&#xff0c;AVCaptureDevice、AVCaptureSession等&#xff0c;可以获取摄像头的数据&#xff0c;而不会弹出类似于ImagePicker一样的界面&#xff0c;我们可以将数据转为一张张的图片&#xff0c;然后我们可以即时…

mysql数据库支持emoji表情的详解

mysql存储emoji表情的时候&#xff0c;就会报错&#xff0c;如下&#xff1a; Error updating database. Cause: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x98\x8A\xF0\x9F…’ for column ‘这是我表中的字段’ at row 1 初步定位是我的数据库是utf8编码…

CoreText使用介绍

一、概述 1.CoreText是苹果创建的一个用于文字排版的框架&#xff0c;可以实现文字排版、图文混排等复杂的界面效果。从iOS3.2启用。2.一个开源工具类-OHAttributedLabel&#xff0c;就是使用CoreText框架实现的&#xff0c;能够实现一个Label中有不同的文字大小、文字颜色、字…

编程规范:长函数的思考

在工作&#xff0c;我们应该都不想看到非常的长函数。对于一个运行5年左右的项目&#xff0c;极有可能出现这种情况。由于长函数的长、if/else嵌套&#xff0c;导致代码的可读性非常差&#xff0c;这对于项目的维护和开发带来了极大的困难。所以我们应该避免写长函数&#xff0…

用redis实现延迟队列

现在在用的redis实现延迟队列的主流程

iPhone各版本屏幕尺寸

设备宽高对角线逻辑分辨率(point)Scale Factor设备分辨率(pixel)PPI iPhoneWidthHeightDiagonal 3GS2.4 inches (62.1 mm)4.5 inches (115.5 mm)3.5-inch320x4801x320x480163 4(s)2.31 inches (58.6 mm)4.5 inches (115.2 mm)3.5-inch320x4802x640x960326 5c2.33 inches (59.2…

maven更新快照不起作用的解决方法

问题&#xff1a;maven的快照包更新后&#xff0c;调用方使用idea点下面这个地方更新maven&#xff0c;并没有拉到最新的快照 解决方法1 删除本地仓库的快照包&#xff0c;再重新拉一次 解决方法2 下图&#xff0c;这里点进去 下图&#xff0c;这个勾上就行了&#xff0c;再…

iOS中frame和Bounds之间的区别

frame frame是每个view必备的属性&#xff0c;代表的是当前视图的位置和大小&#xff0c;没有设置他&#xff0c;当前视图是看不到的。位置需要有参照物才能确定&#xff0c;数学中我们用坐标系来确定坐标系中的某个点的位置&#xff0c;iOS中有他特有的坐标系&#xff0c;如下…