Java之Spring认证使用Profile配置运行环境讲解

Spring提供了@Profile注解来解决程序在不同运行环境时候的配置差别。

项目开发时候大多包含:开发、测试、上线运行几个过程,在每个过程中软件的工作环境一般多少有些差别,比如:在开发阶段利用本地数据库、测试阶段采用测试数据库、在上线运行阶段使用生产数据库。这些差别如果采用了手工维护就会存在各种问题:效率低下、容易发生人为因素意外错误。

利用Spring提供的@Profile注解就可以定义程序不同的运行场景配置,配置以后在启动程序时候给定不同的启动参数就可以灵活的切换运行场景,不再需要人工干预,这样就可以大大提升开发效率。

以配置开发环和生产境数据源为例子,具体说明使用步骤:

在Spring配置文件中利用@Profile声明开发环境和生产环境使用的数据源:

@Configuration
public class DataSourceConfig {
    @Bean(name="dataSource") //重写BeanID
    @Profile("dev") //配置开发环境使用的数据源
    public DataSource dataSourceForDev() {
        DruidDataSource dataSource = new DruidDataSource();
        ...
        return dataSource;
    }
    @Bean(name="dataSource")//重写BeanID
    @Profile("production")//配置生产环境使用的数据源
    public DataSource dataSourceForProd() {
        DruidDataSource dataSource = new DruidDataSource();
        ...
        return dataSource;
    }
}

其中“dev”表示开发环境,“production”表示生产环境,显然有两个BeanID是“dataSource”的数据源Bean对象,这两个对象不会同时初始化,Spring会根据激活的Profile属性初始化其中一个数据源Bean对象。
使用如下启动命令参数-Dspring.profiles.active=dev就可以设置当前激活的Profile是发环境“dev”,此时Spring会初始化属于开发环境的数据源Bean对象:

java -Dspring.profiles.active=dev -jar demo.jar

或者在SpringBoot的启动类中使用系统属性设置激活的Profile:

System.setProperty("spring.profiles.active" , "dev"); SpringApplication.run(AppConfig.class);

在测试时候可以使用 @ActiveProfiles注解设置当前激活的Profile。

到此这篇关于Java之Spring认证使用Profile配置运行环境讲解的文章就介绍到这了,更多相关Java之Spring认证使用Profile配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java随手笔记8之包、环境变量和访问控制及maven profile实现多环境打包

    一.java中的包 Java利用包来组织代码,一来使大型项目的代码结构清晰,二来包是一个命名空间的划分,即不同包中可以有相同名字的类,只需在在类名前加上包名即可区分它们. Package xxx 必须位于java文件除了注释以外的第一行,用来指明当前文件中的类属于哪一个包,如果没有package语句,则该文件中的类都属于默认包. Import xxx用来在当前java文件中导入不属于当前包中的类,从而可以在当前文件中使用它们. 二.java中的环境变量 1.path 环境变量其实就是一组变量(废

  • Java日常练习题,每天进步一点点(45)

    目录 1.下列说法哪个正确( ) 2.只有实现了()接口的类,其对象才能序列化. 3.在 java 中 , 一个类() 4. 5.要求匹配以下16进制颜色值,正则表达式可以为: #ffbbad #Fc01DF #FFF #ffE 6.下列语句哪一个是不正确的() 7.以下哪个不是Collection的子接口? 8.以下会产生信息丢失的类型转换是( ) 9.下列代码执行结果为() 10.Java多线程有几种实现方法? 答案汇总: 总结 1.下列说法哪个正确( ) 正确答案: C 不需要定义类,就能

  • idea插件篇之java内存分析工具(JProfiler)的使用

    前言 在运行java的时候有时候想测试云运行时占用内存情况,这时候就需要使用测试工具查看了.在eclipse里面有 Eclipse Memory Analyzer tool(MAT)插件可以测试,而在idea中也有这么一个插件,就是JProfilerl. 下载安装 打开idea,进入设置界面 安装之后重启即可. 安装成功后查看情况. 这是什么情况呢,这是这个插件启动需要依赖一个可执行的文件,就是源生的JAVA PROFILER 去官网下载 https://www.ej-technologies.

  • 深入了解Java核心类库--Date,Calendar,DateFormat类

    目录 一.Date 1.1 构造方法 1.1.1 Date() 1.1.2 Date(long date) 1.2 常用方法 1.3 其他方法 二.Calendar(抽象) 2.1 获取时间 get() 2.2 设置时间 2.3 时间计算 2.4 其它方法 三.DateFormat(抽象) 3.1 构造方法 总结 一.Date Date类表示特定的时刻,精度为毫秒 Date的两个附加功能:Calendar.DateFormat Calendar类应该用于在日期和时间字段之间进行转换 DateFo

  • Java使用路径通配符加载Resource与profiles配置使用详解

    序言 Spring提供了一种强大的Ant模式通配符匹配,能从一个路径匹配一批资源. Ant路径通配符 Ant路径通配符支持"?"."*"."**",注意通配符匹配不包括目录分隔符"/": "?":匹配一个字符,如"config?.xml"将匹配"config1.xml": "*":匹配零个或多个字符串,如"cn/*/config.xml&

  • Java使用Tessdata做OCR图片文字识别的详细思路

    说到文字识别,目前除了用一些现成的api,大概就是 tessdata.canvas或者 ocrad等. 1.百度接口用过(可以自己去百度开发者申请,免费的),识别率吧,还可以,但也不是百分百的,但是次数使用有限制,虽然也是够用,但是被限制总是害怕超过不让用. 2.canvas的话是需要对图片做具体的处理,涉及到图片的翻转.置灰.文字间隔的设定等等,成功率很高,但是公司产品验证码是各式各样的,没办法用这种方法处理,所以暂时放弃了. 3.ocrad这个目前用过其.js版本,识别率还是比较低的,具体使

  • Java之Spring认证使用Profile配置运行环境讲解

    Spring提供了@Profile注解来解决程序在不同运行环境时候的配置差别. 项目开发时候大多包含:开发.测试.上线运行几个过程,在每个过程中软件的工作环境一般多少有些差别,比如:在开发阶段利用本地数据库.测试阶段采用测试数据库.在上线运行阶段使用生产数据库.这些差别如果采用了手工维护就会存在各种问题:效率低下.容易发生人为因素意外错误. 利用Spring提供的@Profile注解就可以定义程序不同的运行场景配置,配置以后在启动程序时候给定不同的启动参数就可以灵活的切换运行场景,不再需要人工干

  • Spring Boot的Profile配置详解

    Profile 是Spring Boot用来针对不同的环境对不同的配置提供的支持,全局Profile配置使用application-{profile}.properties,如: application-dev.properties 可以表示为开发环境. 然后通过application.properties文件中的spring.profiles.active=dev来设置 在src/main/resources下面新建 application-dev.properties和application

  • Java学习基础之安装JDK/配置JDK环境&IEDA工具安装

    1. 安装JDK 解释: JDK是Java编写环境--开发环境注: 安装路径不可出现中文及标点符号.比如:D:\Java\jdk8 1.1 下载: 这个是官网网址:https://www.oracle.com/technetwork/java/javase 进入该网站 找到Java SE , 点进去 3. 找到你要下载的版本, 向下滑就可以了, 现有的版本都有 1.2 进行安装 点击下一步更改安装路径, 安装到D:\Java\jdk8目录下(禁止出现中文和标点符号)点击下一步开始安装(大约2~3

  • Spring Boot使用profile如何配置不同环境的配置文件

    在springboot的开发中,有时候我们会有不同的配置,例如日志打印,数据库连接等,开发,测试,生产每个环境可能配置都不一致,还好,springboot支持通过不同的profile来配置不同环境的配置,下面就大致介绍一下yml配置文件跟properties配置文件怎么使用profile配置不同环境的配置文件... 先介绍一下开发环境: jdk版本是1.8 springboot的版本是1.4.1 开发工具为 intellij idea 我们先来介绍,使用一个yml文件,通过不同的profile来

  • Intellij IDEA 2018配置Java运行环境的方法步骤

    个人觉得eclipse提示较少,所以今天就写了这篇文章.使用Intellij IDEA 2018实现Hello,World的时候我遇到了一些问题,解决了,所以希望能够帮到大家. 配置运行环境 前提是您一定是安装了JDK的!JDK配置的方法步骤:https://www.jb51.net/article/137386.htm 新建模块 把安装好的JDK加载进来. 输入名称后,选择你要保存的文件路径. 完成之后点击菜单上的File. 配置SDK,选择安装的JDK路径. 在com.demo的模块下的sr

  • GO语言运行环境下载、安装、配置图文教程

    一.Go语言下载 go语言官方下载地址:https://golang.org/dl/ 找到适合你系统的版本下载,本人下载的是windows版本.也可以下载Source自己更深层次研究go语言. 二.GO语言安装 下载完成之后,双击go1.6.windows-amd64.msi进行安装. 如果安装过程出现以下提示: 以管理员的身份运行cmd,找到go1.6.windows-amd64.msi所在的目录,并输入msiexec /i go1.6.windows-amd64.msi如下图(放在D盘根目录

  • 全面解读Spring Boot 中的Profile配置体系

    Pre 配置体系是基于 Spring Boot 框架开发应用程序的基础,而自动配置也是该框架的核心功能之一,梳理使用 Spring Boot 配置体系的系统方法. 接下来,我们为这个代码工程添加一些支持 RESTful 风格的 HTTP 端点,在这里我们同样创建一个 CustomerController 类,如下所示 @RestController @RequestMapping(value="customers") public class CustomerController {

  • 使用Spring boot 的profile功能实现多环境配置自动切换

    通常服务端应用开发需要经过以下几个流程: 开发 -> 测试 -> RC验证 -> 上线 这就涉及到四个不同的环境,开发环境.测试环境.RC环境以及生产环境,为了避免不同环境之间相互干扰,通常需要独立部署数据库.缓存服务器等,那么应用配置也要做相应的调整. 为了解决不同环境配置切换问题,很多人的做法是:把配置文件根据不同的环境,放到不同的目录或文件中,打包时通过gradle或maven,通过命令行参数指定要打哪个环境的包.这样就可以针对不同的环境生成不同的包.但这样的做法有以下几个问题:

  • spring boot 使用profile来分区配置的操作

    spring boot 使用profile来分区配置 很多时候,我们项目在开发环境和生成环境的环境配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据,这时候,我们可以利用profile在不同的环境下配置用不同的配置文件或者不同的配置 spring boot允许你通过命名约定按照一定的格式(application-{profile}.properties)来定义多个配置文件,然后通过在application.properyies通过spri

  • java实现Spring在XML配置java类的方法

    1. 创建自己的bean文件:beans.xml <?xml version="1.0" encoding="UTF-8"?> <busi-beans> <beans> <bean id="SysHelloImpl" type="com.cxm.test.SysHello"> <desc>test</desc> <impl-class>com.

随机推荐