一:多环境切换
创建配置文件:application-dev/application-pro/application-test
在application.properties配置文件中配置
spring.profiles.active=dev
springboot会加载使用application.properties和application-dev配置文件中的信息,我们可以通过修改application.properties配置文件切换环境
二:日志配置
spring boot 默认会加载 classpath下的logback-spring.xml 或者 logback-spring.groovy。
logback-spring.xml文件中配置如下:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 文件输出格式 --> <property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n" /> <!-- test文件路径 --> <property name="TEST_FILE_PATH" value="d:/test.log" /> <!-- pro文件路径 --> <property name="PRO_FILE_PATH" value="/opt/test/log" /> <!-- 开发环境 --> <springProfile name="dev"> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${PATTERN}</pattern> </encoder> </appender> <logger name="com.jean.springboot" level="debug" /> <root level="info"> <appender-ref ref="CONSOLE" /> </root> </springProfile> <!-- 测试环境 --> <springProfile name="test"> <!-- 每天产生一个文件 --> <appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 文件路径 --> <file>${TEST_FILE_PATH}</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 文件名称 --> <fileNamePattern>${TEST_FILE_PATH}/info.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 文件最大保存历史数量 --> <MaxHistory>100</MaxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>${PATTERN}</pattern> </layout> </appender> <root level="info"> <appender-ref ref="TEST-FILE" /> </root> </springProfile> <!-- 生产环境 --> <springProfile name="prod"> <appender name="PROD_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${PRO_FILE_PATH}</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${PRO_FILE_PATH}/warn.%d{yyyy-MM-dd}.log</fileNamePattern> <MaxHistory>100</MaxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>${PATTERN}</pattern> </layout> </appender> <root level="warn"> <appender-ref ref="PROD_FILE" /> </root> </springProfile> </configuration>
其中,springProfile 标签的 name 属性对应 application.properties 中的 spring.profiles.active 的配置。
即 spring.profiles.active 的值可以看作是日志配置文件中对应的 springProfile 是否生效的开关
添加相关依赖:
<!--配置日志--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
配置日志文件
spring boot 默认会加载 classpath:log4j2.xml 或者 classpath:log4j2-spring.xml。
如需要自定义文件名称,在 application.properties 中配置 logging.config 选项即可。
log4j2-spring.xml文件中配置如下:<?xml version="1.0" encoding="utf-8"?> <configuration> <properties> <!-- 文件输出格式 --> <property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n</property> </properties> <appenders> <Console name="CONSOLE" target="system_out"> <PatternLayout pattern="${PATTERN}" /> </Console> </appenders> <loggers> <logger name="com.jean.springboot" level="debug" /> <root level="info"> <appenderref ref="CONSOLE" /> </root> </loggers> </configuration>
log4j2 不能像 logback 那样在一个文件中设置多个环境的配置数据,只能命名 3 个不同名的日志文件,分别在 application-dev,application-test 和 application-pro 中配置 logging.config 选项
还可以在application.properties中配置相关参数
logging.config= # 日志配置文件路径,如 classpath:logback-spring.xml logging.exception-conversion-word= # 记录异常时使用的转换词 logging.file= # 记录日志的文件名称,如:test.log logging.level.* = # 日志映射,如:logging.level.root=WARN,logging.level.org.springframework.web=DEBUG logging.path= # 记录日志的文件路径,如:d:/ logging.pattern.console= # 向控制台输出的日志格式,只支持默认的 logback 设置。 logging.pattern.file= # 向记录日志文件输出的日志格式,只支持默认的 logback 设置。 logging.pattern.level= # 用于呈现日志级别的格式,只支持默认的 logback 设置。 logging.register-shutdown-hook= # 初始化时为日志系统注册一个关闭钩子
三:打包方式
1.默认情况下,是直接打成jar包的
2.打war包
SpringBootApplication继承SpringBootServletInitializer并重写configure方法
@org.springframework.boot.autoconfigure.SpringBootApplication public class SpringBootApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){ return builder.sources(SpringBootApplication.class); } publc static void main(String[] args) { SpringApplication.run(SpringBootApplication.class,args); } }
修改pom文件,把jar改成war
<packaging>war</packaging>
即可