首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Spring Boot 项目创建】003-启动日志优化、开发 Hello World 接口、使用 HTTP Client 测试接口

【Spring Boot 项目创建】003-启动日志优化、开发 Hello World 接口、使用 HTTP Client 测试接口

作者头像
訾博ZiBo
发布2025-01-06 18:35:13
发布2025-01-06 18:35:13
11900
代码可运行
举报
运行总次数:0
代码可运行

4、启动日志优化

4.1 启动日志
第一步: 在 resource 目录下添加 logback-spring.xml 文件
代码语言:javascript
代码运行次数:0
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 修改一下路径-->
    <property name="PATH" value="./log"/>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!--<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %blue(%-50logger{50}:%-4line) %thread %green(%-18X{LOG_ID}) %msg%n</Pattern>-->
            <Pattern>%d{ss.SSS} %highlight(%-5level) %blue(%-30logger{30}:%-4line) %thread %green(%-18X{LOG_ID}) %msg%n</Pattern>
        </encoder>
    </appender>

    <appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${PATH}/trace.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${PATH}/trace.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <layout>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %-50logger{50}:%-4line %green(%-18X{LOG_ID}) %msg%n</pattern>
        </layout>
    </appender>

    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${PATH}/error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${PATH}/error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <layout>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %-50logger{50}:%-4line %green(%-18X{LOG_ID}) %msg%n</pattern>
        </layout>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!--错误日志记录到文件-->
    <root level="ERROR">
        <appender-ref ref="ERROR_FILE" />
    </root>

    <!--记录到文件-->
    <root level="TRACE">
        <appender-ref ref="TRACE_FILE" />
    </root>

    <!--控制台打印-->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>
第二步:启动项目,查看效果
image-20210627122823775
image-20210627122823775
4.2 忽略 log 目录
第一步:在 .gitignore 中配置忽略
image-20210627123140939
image-20210627123140939
第二步:查看 commit
image-20210627123225769
image-20210627123225769
4.3 修改启动文案
第一步:修改启动类 WikiApplication

可以使用 IDEA 配置成这样的模板,但是别忘了在配置文件中显式配置端口号!

代码语言:javascript
代码运行次数:0
运行
复制
package com.zibo.wiki;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.env.Environment;

@SpringBootApplication
public class WikiApplication {

    // 日志
    private static final Logger LOG = LoggerFactory.getLogger(WikiApplication.class);

    public static void main(String[] args) {
        // 修改启动文案
        SpringApplication app = new SpringApplication(WikiApplication.class);
        Environment env = app.run(args).getEnvironment();
        LOG.info("启动成功");
        LOG.info("地址: \thttp://127.0.0.1:{}", env.getProperty("server.port"));
    }

}
第二步:修改 application.properties 配置文件
代码语言:javascript
代码运行次数:0
运行
复制
# 启动文案需要从这里获取端口号,即使默认是8080,也需要显式写出来才能拿到!
server.port=8080
第三步:启动项目
image-20210627125324947
image-20210627125324947

5、开发 Hello World 接口

第一步:创建一个 controller 包

第二步:创建 HelloController 类

代码语言:javascript
代码运行次数:0
运行
复制
package com.zibo.wiki.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @RequestMapping("hello")
    public String hello(){
        return "Hello World!";
    }

}

第三步:访问 http://127.0.0.1:8080/hello 查看效果(省略)

6、使用 HTTP Client 测试接口

6.1 使用 HTTP Client 测试接口

使用 IDEA 自带的 HTTP Client 插件!

第一步:在项目根目录下创建 http 目录,并创建文件 test.http

名字可以任意取,后缀名必须是 .http

image-20210627151314155
image-20210627151314155
第二步:test.http 文件内容
代码语言:javascript
代码运行次数:0
运行
复制
# 快捷键:gtr
GET http://localhost:8080/hello
Accept: application/json

###
第三步:测试 hello 接口
image-20210627152405050
image-20210627152405050
第四步:编写一个 post 带参数的接口
代码语言:javascript
代码运行次数:0
运行
复制
package com.zibo.wiki.controller;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @RequestMapping("hello")
    public String hello(){
        return "Hello World!";
    }

    @PostMapping("/helloPost")
    public String helloPost(String name){
        return "Hello World! " + name;
    }
}
第四步:在 test.http 编写测试代码
代码语言:javascript
代码运行次数:0
运行
复制
# 快捷键:gtr
GET http://localhost:8080/hello
Accept: application/json

###

# 快捷键:ptrp
POST http://localhost:8080/helloPost
Content-Type: application/x-www-form-urlencoded

name=zibo

###
第五步:测试 post 接口
image-20210627152459184
image-20210627152459184
6.2 结果验证
第一步:修改 test.http
代码语言:javascript
代码运行次数:0
运行
复制
# 快捷键:gtr
GET http://localhost:8080/hello
# 我们目前返回的是字符串而不是json,会报错,所以暂将其注释掉
# Accept: application/json

# 这个类似单元测试
# test-hello 是名字
# function() 里面类似可以写一些日志
> {%
client.test("test-hello", function() {
  client.log("测试/hello接口");
  client.log(response.body);
  client.log(JSON.stringify(response.body)); // 虽然idea没有提示JSON,但是可以用
  client.assert(response.status === 200, "返回码不是200");
  client.assert(response.body === "Hello World", "结果验证失败");
});
%}
###

# 快捷键:ptrp
POST http://localhost:8080/helloPost
Content-Type: application/x-www-form-urlencoded

name=zibo

###
第二步:修改 hello 接口返回的内容
代码语言:javascript
代码运行次数:0
运行
复制
@RequestMapping("hello")
public String hello(){
    return "Hello World!00000000";
}
第三步:运行测试
image-20210627153150145
image-20210627153150145
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4、启动日志优化
    • 4.1 启动日志
      • 第一步: 在 resource 目录下添加 logback-spring.xml 文件
      • 第二步:启动项目,查看效果
    • 4.2 忽略 log 目录
      • 第一步:在 .gitignore 中配置忽略
      • 第二步:查看 commit
    • 4.3 修改启动文案
      • 第一步:修改启动类 WikiApplication
      • 第二步:修改 application.properties 配置文件
      • 第三步:启动项目
  • 5、开发 Hello World 接口
  • 6、使用 HTTP Client 测试接口
    • 6.1 使用 HTTP Client 测试接口
      • 第一步:在项目根目录下创建 http 目录,并创建文件 test.http
      • 第二步:test.http 文件内容
      • 第三步:测试 hello 接口
      • 第四步:编写一个 post 带参数的接口
      • 第四步:在 test.http 编写测试代码
      • 第五步:测试 post 接口
    • 6.2 结果验证
      • 第一步:修改 test.http
      • 第二步:修改 hello 接口返回的内容
      • 第三步:运行测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档