springboot 常用配置之多环境配置(开发环境、测试环境、生产环境等)

在上一课中我们通过idea工具没有做任何配置就构建了一个springboot项目,并且已经成功启动了,但我们都很清楚这些都远远不能达到我们实际项目的需求,比如我们要引入我们自己的redis配置、mysql配置等,应该如何处理呢?在spring mvc中我们都是通过spring.xml相关文件配置,在springboot中这些都已经不存在了,我们应该怎样配置呢?别急,马上为大家揭晓谜底,跟着我一起来吧!

NO1.我们在做项目的时候是不是都会区分很多环境呢?比如开发环境、测试环境、生产环境等,那么第一步我将先带大家配置好各个环境;

1.首先打开我们项目的pom.xml文件加入以下内容:

<build>
		<finalName>${project.artifactId}-${project.version}</finalName>
		<plugins>

			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.3</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>utf8</encoding>
				</configuration>
			</plugin>

		</plugins>

		<filters>
			<filter>src/main/resources/application-${filter-resource-name}.properties</filter>
		</filters>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
				<excludes>
					<exclude>filters/*</exclude>
					<exclude>filters/*</exclude>
					<exclude>application-dev.properties</exclude>
					<exclude>application-test.properties</exclude>
					<exclude>application-prod.properties</exclude>
					<!--SpringBoot项目使用layui框架,图标不显示问题处理-->
					<exclude>static/css/**/*</exclude>
					<exclude>static/fonts/**/*</exclude>
					<exclude>static/ajax/libs/summernote/**/*</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>false</filtering>
				<includes>
					<include>application-${filter-resource-name}.properties</include>
					<!--SpringBoot项目使用了layui框架,图标不显示问题处理-->
					<include>static/css/**/*</include>
					<include>static/fonts/**/*</include>
					<include>static/ajax/libs/summernote/**/*</include>
				</includes>
			</resource>
		</resources>
	</build>

	<profiles>
		<profile>
			<id>dev</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<filter-resource-name>dev</filter-resource-name>
			</properties>
		</profile>
		<profile>
			<id>test</id>
			<properties>
				<filter-resource-name>test</filter-resource-name>
			</properties>
		</profile>
		<profile>
			<id>prod</id>
			<properties>
				<filter-resource-name>prod</filter-resource-name>
			</properties>
		</profile>
	</profiles>

这一段相信大家都很熟悉了吧,我就不多做解释了(有疑问的童鞋可以私信我哦);

2.然后打开application.properties文件,并在其中加入以下内容:

#表示激活的配置文件(dev|prod)
spring.profiles.active=@filter-resource-name@

整个项目变成了如下结构:

至此我们的springboot多环境配置已经完成

打包方式:

生产环境配置如下:

3.设置日志级别

#log level
logging.level.root=debug

4.设置自定义端口以及实例名

#端口
server.port=8888

#实例名
spring.application.name=demo-springboot

5.logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <include resource="org/springframework/boot/logging/logback/base.xml" />

   <appender name="demo" class="ch.qos.logback.core.rolling.RollingFileAppender">
      <file>demo/demo.log</file>
      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
         <!-- 按天回滚 daily -->
         <fileNamePattern>demo/demo.%d{yyyy-MM-dd}.log</fileNamePattern>
         <!-- 日志最大的历史 10天 -->
         <maxHistory>10</maxHistory>
      </rollingPolicy>
      <encoder charset="UTF-8">
         <pattern>${FILE_LOG_PATTERN}</pattern>
      </encoder>
   </appender>

   <logger name="com.example.demo" level="INFO" additivity="false">
      <appender-ref ref="demo"/>
   </logger>

   <logger name="com.example.demo.dao" level="DEBUG" />
   <logger name="com.example.demo.service" level="INFO" />

   <logger name="druid.sql.Statement" level="DEBUG" />
   <logger name="druid.sql.ResultSet" level="DEBUG" />
   <logger name="org.apache" level="INFO" />
   <logger name="org.mybatis.spring" level="ERROR" />
   <logger name="org.springframework" level="INFO"></logger>
   <logger name="springfox" level="ERROR"></logger>
   <root level="INFO">
      <appender-ref ref="demo" />
   </root>

</configuration

至此,我们项目的基本环境配置已经搭建好,通过maven clean install以下选择dev|test|prod打入你指定的配置,然后run application运行,如果通过localhost:8888可以访问说明你的配置worked了;但是这还远远不够,我们项目开发总得操作数据库吧,哈哈 是的,接下来让我们进入springboot + mysql + mybatis的世界吧! 

完整代码下载地址如下:http://zyshare.cn/resource/detail/9

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SpringBoot中可以通过配置profile来实现多环境的配置文件,只需要在application.properties或application.yml中添加spring.profiles.active属性,指定当前激活的环境即可。例如,可以在application.properties中添加:spring.profiles.active=dev,这样SpringBoot就会激活dev环境,加载application-dev.properties等配置文件。 ### 回答2: SpringBoot配置多环境的配置文件可以通过以下步骤实现: 1. 创建配置文件:在项目的资源文件夹下创建多个不同环境的配置文件,通常以"application-"开头,并在文件名中添加环境标识,如"application-dev.properties"、"application-test.properties"等。 2. 配置文件内容:在各个配置文件中,根据不同环境的需求,设置不同的配置属性值。可以设置数据库连接、服务端口、日志级别等等。 3. 设置激活环境:在主配置文件(通常是"application.properties")中,通过设置"spring.profiles.active"属性来指定当前激活的环境。例如,设置为"dev"表示激活开发环境。 4. 使用配置属性:在代码中,可以使用"@Value"注解或者使用"Environment"对象来获取配置文件中的属性值。通过这种方式,可以根据不同环境的配置来动态改变应用程序的行为。 5. 多个配置文件的优先级:当存在多个配置文件时,SpringBoot将按照一定的优先级进行加载。其中,主配置文件具有最低优先级,而具体环境的配置文件具有更高的优先级。因此,如果某个配置属性在多个文件中都存在,那么后加载的配置文件会覆盖前面加载的配置。 通过以上步骤,我们就可以在SpringBoot项目中实现多环境的配置文件。这样,我们可以根据不同的环境需求,灵活地配置应用程序的各个属性,提高了适应不同环境变化的能力。 ### 回答3: Spring Boot配置多环境的配置文件可以通过使用不同的配置文件来实现。一种常用配置方式是通过在application.properties(或application.yml)文件中使用不同的profile来指定环境。 首先,在src/main/resources目录下创建application-{profile}.properties(或application-{profile}.yml)文件,其中{profile}代表环境名称,例如application-dev.properties(或application-dev.yml)代表开发环境配置文件,application-prod.properties(或application-prod.yml)代表生产环境配置文件。 然后,在application.properties(或application.yml)文件中,添加一个配置spring.profiles.active={profile}来指定使用哪个环境的配置文件。例如,如果想要使用开发环境配置文件,可以设置spring.profiles.active=dev。 接下来,在具体的配置文件中,可以根据不同的需要设置不同的配置项。例如,在开发环境配置文件中可以设置数据库连接的URL为本地环境的URL,而在生产环境配置文件中可以设置数据库连接的URL为线上环境的URL。 最后,在代码中通过注解@Value("${配置项名称}")来获取配置文件中的配置项的值。Spring Boot会根据当前使用的环境自动加载相应的配置文件,并将对应的配置项的值注入到相应的字段中。 通过这种方式,我们可以根据不同的环境使用不同的配置文件,方便地进行开发、测试和部署。同时,Spring Boot还支持其他灵活的配置方式,例如使用命令行参数或环境变量来指定使用哪个环境的配置文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值