zoukankan      html  css  js  c++  java
  • 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 结束服务
     

     

  • 相关阅读:
    常吃二十种降血脂食物,三高不再缠身
    员工能力要从“人海战术”转向“精兵强将”
    企业家必备的4项核心能力
    优秀管理者在哪些方面超乎常人
    高血压 降压方法
    教育视频
    吉他和弦 学习
    spoj 375 QTREE
    hihocoder #1260 : String Problem I
    codeforces 282E. Sausage Maximization Trie
  • 原文地址:https://www.cnblogs.com/serena25/p/6515399.html
Copyright © 2011-2022 走看看