精华内容
下载资源
问答
  • 在使用maven多module进行开发的时候,将api模块转成SpringBoot时候,发现application.yml中所配置的东西不起作用。 项目是能识别到application.yml这个配置文件的。但是里面的配置的东西比如端口什么的一起不起作用...

    在使用Maven多module进行开发的时候,将api模块转成SpringBoot时候,发现application.yml中所配置的东西不起作用。
    在这里插入图片描述
    项目是能识别到application.yml这个配置文件的。但是里面的配置的东西比如端口什么的一起不起作用,后来发现在api这个模块里面配置了 <packaging>pom</packaging>,去掉这个就好了。

    在这里插入图片描述

    展开全文
  • SpringBoot+Maven多环境动态切换yml配置

    千次阅读 2019-08-17 16:31:00
    SpringBoot+Maven多环境动态切换yml配置一、背景二、拆分yml文件三、配置pom.xml 一、背景 在实际开发中,经常会有多种环境配置,例如开发环境、测试环境、生产环境等。在不同的环境下,配置有可能是不一样的,...

    SpringBoot+Maven多环境动态切换yml配置

    一、背景

    在实际开发中,经常会有多种环境配置,例如开发环境、测试环境、生产环境等。在不同的环境下,配置有可能是不一样的,比如接口地址、数据库连接配置等。为了避免频繁的修改配置文件,我们可以通过配置实现动态切换。

    本文将讲解如果在SpringBoot项目中动态切换配置。

    二、拆分yml文件

    为更好维护各种环境的配置,这里将yml文件拆分。当然还有其它方式,这里不再赘述。好了,直接上图,上代码
    文件目录
    总
    application.yml文件

    spring:
      profiles:
        active: #spring.profiles.active#
    

    开发测试生产

    三、配置pom.xml

    1. 在pom.xml添加如下配置
    <profiles>
    		<!-- 开发环境 -->
    		<profile>
    			<id>dev</id>
    			<properties>
    				<spring.profiles.active>dev</spring.profiles.active>
    			</properties>
    			<activation>
    				<activeByDefault>true</activeByDefault> <!-- 默认dev -->
    			</activation>
    		</profile>
    
    		<!-- 测试环境 -->
    		<profile>
    			<id>test</id>
    			<properties>
    				<spring.profiles.active>test</spring.profiles.active>
    			</properties>
    		</profile>
    
    		<!-- 生产环境 -->
    		<profile>
    			<id>prod</id>
    			<properties>
    				<spring.profiles.active>prod</spring.profiles.active>
    			</properties>
    		</profile>
    	</profiles>;
    
    1. 在pom.xml的在< plugins/>里添加插件
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-resources-plugin</artifactId>
    				<version>3.1.0</version>
    				<executions>
    					<execution>
    						<id>default-resources</id>
    						<phase>validate</phase>
    						<goals>
    							<goal>copy-resources</goal>
    						</goals>
    						<configuration>
    							<outputDirectory>target/classes</outputDirectory>
    							<useDefaultDelimiters>false</useDefaultDelimiters>
    							<delimiters>
    								<delimiter>#</delimiter>
    							</delimiters>
    							<resources>
    								<resource>
    									<directory>src/main/resources/</directory>
    									<filtering>true</filtering>
    								</resource>
    								<resource>
    									<directory>src/main/resources.${spring.profiles.active}</directory>
    									<filtering>false</filtering>
    								</resource>
    							</resources>
    						</configuration>
    					</execution>
    				</executions>
    			</plugin>
    

    这里<delimiter>#</delimiter>用来增加一个占位符,Maven本身有占位符${xxx},但这个占位符被SpringBoot占用了,所以我们就再定义一个。<filtering>true</filtering>表示打开过滤器开关,这样application.yml文件中的#spring.profiles.active#部分就会替换为pom.xml里profiles中定义的spring.profiles.active变量值。

    这样,在用maven打包的时候,使用mvn package -P prod打包,最后打包后的文件中,application.yml中的spring.profiles.active的值就是prod。这样直接运行java -jar xxx.jar,就是生产环境的配置了。

    展开全文
  • 默认情况下,使用yml配置来简化MyBatis Generator使用的xml配置 支持方便地配置常用插件,例如注释生成,Lombok,招摇等。 介绍使用某些配置或插件的好处 尝试找到适合不同情况的最佳配置 内容 环境要求 确保已安装...
  • 一.引言 在实际的的开发中,对于一个工程,经常会有多种环境配置,例如开发环境、测试环境、生产环境等。在不同的环境下,配置有...本文就来讲解如果在SpringBoot项目中动态切换配置,以及用Maven控制配置的选择...

    一.引言

    在实际的的开发中,对于一个工程,经常会有多种环境配置,例如开发环境、测试环境、生产环境等。在不同的环境下,配置有可能是不一样的,比如接口地址、数据库连接配置等。为了避免频繁的修改配置文件,我们想要简便地切换各种环境配置。好在SpringBoot提供了这样的功能,可以很方便地切换不同场景下的配置。

    本文就来讲解如果在SpringBoot项目中动态切换配置,以及用Maven控制配置的选择。

    二.配置多环境yml

    1.配置多环境yml

    在SpringBoot工程的src/main/resource目录下,创建application.yml文件。(默认应该是有个application.properties文件,也可以配置多环境。但这里我们用yml格式的配置文件)。

    接下来,做一个对于数据的简单配置。yml配置如下。

    application.yml

    # 默认使用配置
    spring:
      profiles:
        active: dev
    
    # 公共配置
      jpa:
        database: MYSQL
      datasource:
        name: mysql
        type: com.alibaba.druid.pool.DruidDataSource
        #druid相关配置
        druid:
          #监控统计拦截的filters
          filters: stat
          driver-class-name: com.mysql.jdbc.Driver
          #配置初始化大小/最小/最大
          initial-size: 1
          min-idle: 1
          max-active: 20
          #获取连接等待超时时间
          max-wait: 60000
          #间隔多久进行一次检测,检测需要关闭的空闲连接
          time-between-eviction-runs-millis: 60000
          #一个连接在池中最小生存的时间
          min-evictable-idle-time-millis: 300000
          validation-query: SELECT 'x'
          test-while-idle: true
          test-on-borrow: false
          test-on-return: false
          #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false
          pool-prepared-statements: false
          max-pool-prepared-statement-per-connection-size: 20
    
    # 配置端口
    server:
      port: 8080
    
    ---
    
    # 开发配置
    spring:
      profiles: dev
    
      datasource:
        druid:
          url: jdbc:mysql://127.0.0.1:3306/dc_async_service?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
          username: root
          password: root
    
    ---
    # 生产配置
    spring:
      profiles: release
    
      datasource:
        druid:
          url: jdbc:mysql://xxxxxxx:3306/dc_async_service?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
          username: xxxxx
          password: xxxxx

    这里,我对开发配置和生产环境做了配置。上面的配置是公共配置,下面我们分别配置了开发和生产的配置。spring.profiles表示配置的名称,spring.profiles.active表示要激活的环境,值和要切换的spring.profiles名称一致。上面这个文件,默认激活的就是dev开发配置。

    如果spring.profiles.active没有指定值,那么只会加载通用的配置。

    2.启动配置选择

    工程打成jar包后,我们可以在运行的时候对配置进行选择,而不需要每次打包前都手动去修改spring.profiles.active的值。

    例如在生产环境,我们可以使用release配置执行jar包,命令如下:

    java -jar xxx.jar --spring.profiles.active=release

    三.将yml文件拆分

    为了更方便得维护各种环境的配置,我们可以将yml文件拆分。

    src/main/resource目录下,再创建yml配置文件,命名规则为application-{profiles}.yml,例如
    application-dev.yml
    application-release.yml

    然后,将原来application.yml中的dev、release配置分别移到这两个配置文件中,同时可以去掉spring.profiles属性,因为spring会自动按照命名规则寻找对应的配置文件。
    例如:
    application-dev.yml

    # 开发配置
    spring:
      datasource:
        druid:
          url: jdbc:mysql://127.0.0.1:3306/dc_async_service?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
          username: root
          password: root

    application-release.yml

    # 生产配置
    spring:
      datasource:
        druid:
          url: jdbc:mysql://xxxxxxx:3306/dc_async_service?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
          username: xxxxx
          password: xxxxx

    这样,我们的yml文件就拆分完成了。效果和之前是一样的。

    四.用Maven控制默认配置

    之前,我们将项目打成包后,在运行的时候需要指定配置,略嫌麻烦。能不能在打包的时候,自动改变spring.profiles.active的激活配置,这样直接通过java -jar xxx.jar即可运行项目。而且我司项目上线采用自研运维系统,默认是直接执行jar、war包的,不能在启动时选择配置,所以在打包时如果能自动将spring.profiles.active配置动态切换就显得尤为诱人了。

    那如何实现呢?这里我们需要使用maven-resources-plugin插件。

    在pom.xml添加如下配置

    <profiles>
        <!-- 开发环境 -->
        <profile>
            <id>dev</id>
            <properties>
                <spring.profiles.active>dev</spring.profiles.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <!-- 生产环境 -->
        <profile>
            <id>release</id>
            <properties>
                <spring.profiles.active>release</spring.profiles.active>
            </properties>
        </profile>
    </profiles>

    在< plugins/>里添加

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.7</version>
        <executions>
            <execution>
                <id>default-resources</id>
                <phase>validate</phase>
                <goals>
                    <goal>copy-resources</goal>
                </goals>
                <configuration>
                    <outputDirectory>target/classes</outputDirectory>
                    <useDefaultDelimiters>false</useDefaultDelimiters>
                    <delimiters>
                        <delimiter>#</delimiter>
                    </delimiters>
                    <resources>
                        <resource>
                            <directory>src/main/resources/</directory>
                            <filtering>true</filtering>
                        </resource>
                        <resource>
                            <directory>src/main/resources.${spring.profiles.active}</directory>
                            <filtering>false</filtering>
                        </resource>
                    </resources>
                </configuration>
            </execution>
        </executions>
    </plugin>

    这里<delimiter>#</delimiter>用来增加一个占位符,Maven本身有占位符${xxx},但这个占位符被SpringBoot占用了,所以我们就再定义一个。<filtering>true</filtering>表示打开过滤器开关,这样application.yml文件中的#spring.profiles.active#部分就会替换为pom.xml里profiles中定义的 spring.profiles.active变量值。

    最后,将application.yml的spring.profiles.active的值改为#spring.profiles.active#

    # 默认使用配置
    spring:
      profiles:
        active: #spring.profiles.active#

    这样,在用maven打包的时候,使用mvn package -P release打包,最后打包后的文件中,application.yml中的spring.profiles.active的值就是release。这样直接运行java -jar xxx.jar,就是生产环境的配置了。

    以上就是SpringBoot + Maven实现多环境动态切换yml配置及配置文件拆分。


    站在前人的肩膀上前行,感谢以下博客及文献的支持。
    Spring-Boot application.yml 文件拆分,实现 maven 多环境动态启用 Profiles

    展开全文
  • 如果是maven项目,标签下下就是配置这个的,现在我贴上我的配置,以后出现配置失效,记得看target目录下有有没有这个配置文件 &amp;lt;resources&amp;gt; &amp;lt;!--扫描到...

    个人博客:https://suveng.github.io/blog/​​​​​​​
    那些什么配置文件扫描不到,还有那些配置失效

    首先,确认你的编译过后的target里面的配置是在里面的,如果没有编译过去,还读取个鸡儿。

    怎么配置?

    编译确保这些文件被编译过去了。如果是maven项目,标签下下就是配置这个的,现在我贴上我的配置,以后出现配置失效,记得看target目录下有有没有这个配置文件

    <resources>
                <!--扫描到的mapper配置-->
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>false</filtering>
                </resource>
                <resource>
                    <directory>${basedir}/src/main/resources</directory>
                    <includes>
                        <!--<include>contexts/</include>-->
                        <!--<include>*.xml</include>-->
                        <include>*.yml</include>
                        <include>*.properties</include>
                        <include>*.xml</include>
                        <include>enc_pri</include>
                    </includes>
                </resource>
                <!--end-->
            </resources>
    

    这里写图片描述

    Q:不知道maven的标签的详细内容?
    A:https://www.cnblogs.com/sharpest/p/7738444.html,博客园某位大佬整理的拿去看

    展开全文
  • Spring boot maven项目配置文件覆盖问题

    千次阅读 2019-05-10 11:03:33
    遇到这样一个问题,就是我在引用一个有application.yml的公共maven项目的时候,新maven项目的application.yml会覆盖公共项目的配置文件,SpringBoot是由上向下扫描的文件的,那么总不能其它maven的application.yml都...
  • 0.前言 三种需求情况[场景]以及解决办法 ...Maven项目配置文件 不实时更新 3。非resource路径下的配置文件不生效 1.把Maven打包方式换成打jar包 pom.xml修改打包方式 <groupId>com.biturd</...
  • 1 IntelliJ IDEA 安装  下载地址:点击前往    注意:需要下载专业版本的,注册码在网上随便搜一个就... 2 MAVEN工具的安装 ... 到官网下载的maven是绿色版的,无需安装,解压即可 ... 2.3 修改maven配置  2...
  • 如果发现maven项目里面src/main/resources下的配置文件或src/main/java下的xml配置文件未能同步至target,首先,要确保src下的文件夹职能划分好,如下图,请注意java, resources, webapp这些目录的图标,如果不是这样,请...
  • 所有的一切配置的都没问题,查看导包,发现可以读取的项目其pom.xml中含有一个不属于这个项目的文件,原来是之前未更改的项目,没有删除完全,记得要在maven的properties文件夹中删除掉这个文件,在“D:\maven\...
  • 由于开发过程与生产环境发布过程的服务器环境配置不同,所以在项目搭建过程中,需要对项目的服务环境配置文件进行区分,以方便打包发版
  • Springboot项目配置文件、依赖分离打包(一)使用maven-assembly-plugin进行配置分离assembly.xml配置文件${name}tar.gzziptruesrc/main/resources/config0644application.yml*.xml*.properties${basedir}/src/binbin...
  • 在Spring boot开发中,需要在application.yml文件里配置数据库的连接信息,或者在启动时传入数据库密码,如果不加密,传明文,数据库就直接暴露了,相当于"裸奔"了,因此需要进行加密处理才行。使用@SpringBoot...
  • SpringBoot简介及国内关注度SpringBoot简介:它用来简化 Spring 应用程序的创建和...在以往我们采用 SpringMVC + Spring + MyBatis 框架进行开发的时候,搭建和整合三大框架,我们需要做很多工作,比如配置 web.xm...
  • springboot项目整合mybites和thymeleaf时修改配置文件,首先是数据库的配置无法读取,以为是配置路径错误,后改为项目内使用@Configure进行配置datasource,有效,后面修改端口,确定是application.yml没有加载,...
  • 导入Maven项目时有时会遇到无法自动配置Configrations和yml文件的情况,完了去配置里一看,Library是空的。maven导入jar包的时候应该出了问题。如图操作maven提示重新import change即可。
  • 针对springboot项目的打包,我们往往针对不同环境准备了多份配置文件,比如:application-dev.yml,application-prod.yml等。如果需要更加的灵活地在打包时针对不同的环境将对应的配置文件打包,甚至基于不同的环境...
  • 在使用 Gitlab CI 进行自动化构建部署的时候,需要新建一个 .gitlab-ci.yml配置文件,里面是我们自动化构建的具体步骤的脚本: image: maven:3-jdk-8 # 使用的 Docker 镜像 名称,非必填 stages: # 定义构建的阶段 ...
  • 由于项目需要,我们有时候会把一些动态的参数配置放置在yml文件里,然后对其进行访问。这个时候,就需要在SpringBoot2.0下读取YML文件的属性值 maven依赖 &amp;lt;!-- 支持 @ConfigurationProperties 注解 -...
  • 2018年11月13日我亲测有效的,很简单的,借鉴博客:https://blog.csdn.net/smilecall/article/details/56288972第一步:随便建一个maven类型的springboot...并没有连接数据库操作,所以application.yml配置很简单...
  • spring boot中bootstrap.yml配置端口没起作用 spring boot项目中如果需要使用bootstrap.yml,必须引入maven springcloud的上下文坐标,因为bootstrap.yml是针对应用级别的上下文才起作用。 <!-- ...
  • 在springboot+maven项目中,运用打包命令:mvn clean package -DskipTests,结果生成的war包文件中缺少配置文件。 正常的应该是将yml文件打包进WEB-INF/classes文件里: 现在的情况:缺少 application.yml 等...
  • Spring boot Maven 项目打包 使用Maven 实现多环境 test dev prod 打包 项目的结构 在下图中可用看出,我们打包时各个环境需要分开,采用 application-环境.yml 的方式命名 环境配置开始 首先我们需要在...
  • Spring boot Maven 项目打包 使用Maven 实现多环境 test dev prod 打包 项目的结构 在下图中可用看出,我们打包时各个环境需要分开,采用 application-环境.yml 的方式命名 环境配置开始 首先我们需要在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 649
精华内容 259
关键字:

maven项目yml配置