• Springboot & Mybatis 构建restful 服务三


    Springboot & Mybatis 构建restful 服务三

    1 前置条件

    • 成功执行完Springboot & Mybatis 构建restful 服务二

    2 restful service 添加日志

    1)新建 logback.xml文件(配置生成的日志文件的格式)

    src/main/resources/logback.xml

     
     <?xml version="1.0" encoding="UTF-8"?>
       <!-- 设置根节点 
            scan为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
            scanPeriod,设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
            debug为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
     -->
        <configuration debug="false" scan="true" scanPeriod="1 seconds">
        <!--  设置记录info以及以上的等级的日志信息。设置文件名和文件内容特定格式-->
        <appender name="INFO_FILE"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>log/log.%d{yyyyMMddHH}</fileNamePattern>
            </rollingPolicy>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level- [%-10.10thread] %15.15logger: %msg%n
                </Pattern>
            </layout>
        </appender>
        <!--  设置只记录error等级的日志信息。设置文件名和文件内容特定格式-->
        <appender name="ERROR_FILE"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>ERROR</level>
            </filter>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>log/error.%d{yyyyMMddHH}
                </fileNamePattern>
            </rollingPolicy>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level- [%-10.10thread] %15.15logger: %msg%n
                </Pattern>
            </layout>
        </appender>
        <root level="info">
            <appender-ref ref="INFO_FILE" />
            <appender-ref ref="ERROR_FILE" />
        </root>
    </configuration>
     

    2)修改 application.properties文件

    src/main/application.properties

     
     
        #指定日志配置文件的位置
        logging.config=config/logback.xml
        #指定当前项目的映射路径
        server.context-path=/accountbalance
     

    3)修改SY:

    ​ src/main/java/com/serena/controller/SY.java

     
    package com.serena.controller;
    
    
    import java.util.List;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    import com.serena.entity.SettleAccount;
    import com.serena.service.ISY;
    @RestController
    public class SY {
        @Autowired
        private ISY iSY;
     //定义一个从 Logger 工厂获得的静态日志变量
        private static Logger logg = LoggerFactory.getLogger(SY.class);
    // 通过用户 id 来查找用户余额
    // 使用 get 请求传递参数
        @RequestMapping(value="/account/{accountCode}",method = RequestMethod.GET)
        public SettleAccount selectByAccountCode(@PathVariable("accountCode")String accountCode){
            // 向日志文件添加 logger的 info 的信息
            logg.info("select account by accountCode,accountCode = {}",accountCode); 
            SettleAccount settleAccount  = iSY.selectByAccountCode(accountCode);
            // 未查找到账户时,向日志文件添加logger的 warn 的信息
            if(settleAccount == null)
                logg.warn("not found account");
                return settleAccount;
        } 
      // 查找所有 account 的余额(SMSNum)
        @RequestMapping(value="/accounts",method = RequestMethod.GET)
        public List<SettleAccount> selectAccounts(){
            List<SettleAccount> list = null;
            // 向日志文件添加 logger的 info 的信息
            logg.info("select all accounts"); 
            list = iSY.selectAccounts();
            // 未查找到账户时,向日志文件添加logger的 warn 的信息
            if(list == null)
                logg.warn("not found accounts");
            return list;
        }
    }
     

    4)在终端输入如下测试指令:

     
    #cd 项目所在目录
    cd /Users/psj/Documents/pro/xm/AccountBalance
    mvn clean package
    cd target
    mkdir /Users/psj/Desktop/t/
    #将 tar 包复制到自己指定目录(/Users/psj/Desktop/t/)
    cp AccountBalance-0.0.1-SNAPSHOT.tar /Users/psj/Desktop/t/
    #cd 到上个操作指定的目录
    cd /Users/psj/Desktop/t
    #解压 tar 包
    tar -xvf AccountBalance-0.0.1-SNAPSHOT.tar
    #此时可查看目录结构如要求所示
    ll
    #运行 可执行jar,测试结果
    java -jar AccountBalance-0.0.1-SNAPSHOT.jar
    #
    #打开新的iterm 窗口(command+n)
    http localhost:8101/accounts
    http localhost:8101/account/U00001
    #
    #返回上个 iterm 窗口,control+c 结束服务
     

     

  • 相关阅读:
    什么是ORM
    ORM优缺点
    Azure 中快速搭建 FTPS 服务
    连接到 Azure 上的 SQL Server 虚拟机(经典部署)
    在 Azure 虚拟机中配置 Always On 可用性组(经典)
    SQL Server 2014 虚拟机的自动备份 (Resource Manager)
    Azure 虚拟机上的 SQL Server 常见问题
    排查在 Azure 中新建 Windows 虚拟机时遇到的经典部署问题
    上传通用化 VHD 并使用它在 Azure 中创建新 VM
    排查在 Azure 中新建 Windows VM 时遇到的部署问题
  • 原文地址:https://www.cnblogs.com/serena25/p/6515399.html
Copyright © 2020-2023  润新知