springboot-profiles配置,日志配置,mybatis集成

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,期待和大家共同学习分享。

转载于:https://my.oschina.net/u/2471663/blog/812201

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值