1.profiles配置
开发,测试,生成环境所使用的配置通过指定profiles来区分,读取对应的配置文件。
1.1 在application.properties中设置profiles:
spring.profiles.active=dev
1.2 classpath下添加对应dev(开发环境),pro(生成环境)的配置文件:
application-dev.properties , application-pro.properties
注意:相同的参数配置,profiles文件配置的参数值会覆盖applicaton.properties中的值
2.日志实现
springboot默认使用logback,创建logback.xml,结合spring.profiles的配置
2.1 创建logback-spring.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<include resource="org/springframework/boot/logging/logback/base.xml" />
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<!--<property name="LOG_HOME" value="/home" />-->
<!-- 开发环境变量develop-->
<springProfile name="dev">
<property name="LOG_HOME" value="E:/SpDevLogs"/>
</springProfile>
<!-- 生成环境变量product-->
<springProfile name="pro">
<property name="LOG_HOME" value="/opt/springboottest/logs" />
</springProfile>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!-- 日志文件:按照每天生成 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件地址和名称-->
<FileNamePattern>${LOG_HOME}/SpringBootDemo_log_%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 日志输出级别 -->
<root level="INFO">
<!-- 日志输出地点,输出一个就行 -->
<!--<appender-ref ref="STDOUT"/>-->
<appender-ref ref="FILE" />
</root>
</configuration>
2.2 使用slf4j的Logger在java代码中打印业务日志
private org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(UserService.class);
@Autowired
UserMapper userMapper;
public Users findOne(Integer id) {
Users one = userMapper.findOne(id);
logger.info("查询用户:"+ JSONObject.toJSONString(one));
return one;
}
3. 集成mybatis
3.1 mybatis依赖引入及通用mapper使用:
<!-- mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- 通用mapper 单表简化操作-->
<dependency>
<groupId>com.github.abel533</groupId>
<artifactId>mapper</artifactId>
<version>3.0.0</version>
</dependency>
3.2 mapper接口及扫描,mapper映射文件
可以在接口上加注解@Mapper或者启动类上扫描mapper接口的package
application.properties中指定mapper映射文件
#mybatis config: entity scan package; ##mapper interface scan :use @Mapper in interface Or @MapperScan IN SpringBootApplication start #映射文件地址 mapperXml locations; mybatis.mapper-locations=classpath*:mapperXml/*Mapper.xml #配置文件引入 mybatis.config-location=classpath:mybatis-config.xml #别名mybatis.type-aliases-package=com.example.model |
3.3 mybatis 控制台sql输出
mybatis-config.xml 指定mybatis的日志实现:
http://www.mybatis.org/mybatis-3/zh/logging.html
<setting name="logImpl" value="STDOUT_LOGGING"/>
mybatis 的别名指定,配置文件里面可以指定多个包,所以放在配置文件里面指定
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="config/mapper.properties">
<!--<property name="recordStartIndex" value="0"/>-->
<!--<property name="pageSizeMax" value="10"/>-->
</properties>
<settings>
<setting name="cacheEnabled" value="true" />
<setting name="lazyLoadingEnabled" value="true" />
<!--<setting name="aggressiveLazyLoading" value="false"/>-->
<setting name="useGeneratedKeys" value="true" />
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<typeAliases>
<!-- one or more -->
<package name="com.example.model"/>
</typeAliases>
<plugins>
<!-- 使用通用mapper简化单表操作-->
<plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor">
<property name="IDENTITY" value="mysql"/>
<!-- 通用mapper接口-->
<property name="mappers" value="com.github.abel533.mapper.Mapper"/>
</plugin>
</plugins>
</configuration>
运行图:
我的学习实践代码:https://github.com/zfgod/SpringBootDemo,期待和大家共同学习分享。