SpringBoot启动一个简单的处理请求的服务器

1. 基本结构

1.1 目录结构:

在这里插入图片描述

1.2 Application对象

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Gmall0105LoggerApplication {

    public static void main(String[] args) {
        SpringApplication.run(Gmall0105LoggerApplication.class, args);
    }
}

1.3 Controller对象

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

public class LoggerController {

    public String log(){
        System.out.println("123");
        return"abc";
    }
}

2. 以网页形式返回请求结果

访问方式
直接返回网页

localhost:8080/applog

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class LoggerController {

    @RequestMapping("/applog")
    public String log(){
        return"index.html";
    }
}

3. 以非网页形式返回请求结果

3.1 通过在每个方法上加注释控制返回请求的内容

访问方式
直接返回return后面的文本内容

localhost:8080/applog

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class LoggerController {

    @ResponseBody  // 控制返回非网页请求内容,但是每个方法上都需要加该注释
    @RequestMapping("/applog")
    public String log(){
        System.out.println("123");
        return"abc";
    }
}

3.2 通过在Controller对象上注释控制返回请求的内容形式

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

//@Controller
@RestController // @RestController = @Controller + @ResponseBody
public class LoggerController {
    //@ResponseBody 决定方法的返回是网页还是文本
    @RequestMapping("/applog")
    public String log(){
        System.out.println("123");
        return"abc";
    }
}

3.3 带参数的请求

加入log参数

发送请求方法:

http://localhost:8080/applog?log=jsonjson

返回log的值jsonjson

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

//@Controller
@RestController // @RestController = @Controller + @ResponseBody
public class LoggerController {

    @RequestMapping("/applog")
    public String log(@RequestParam String log) {
        System.out.println(log);
        return log;
    }
}

3.4 以请求体的形式发送

**注意:**该种方法是不是通过网页发送请求,而是通过代码发送请求

通过Slf4j以日志的形式返回请求结果,但是idea要安装lombok插件

3.4.1 在resources目录下新建lombok的配置文件logback.xml

在这里插入图片描述

3.4.2 配置logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--  日志输出的存储路径  -->
    <property name="LOG_HOME" value="E:/opt/applog/gmall2021" />

    <!--appender:追加器 描述如何写入文件中(写在哪,格式,文件的切分)-->
    <!--控制台追加器,日志输出到控制台-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!--日志格式:直接输出一条日之后换行,再输出下一条日志-->
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>

    <!--滚动文件追加器,依据某种方式在文件中追加内容-->
    <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/app.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--滚动文件的命名方式-->
            <fileNamePattern>${LOG_HOME}/app.%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <!--日志格式:直接输出一条日之后换行,再输出下一条日志-->
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>


    <!-- 将某一个包下日志单独打印日志 -->
    <!--管理日志的控制器-->
    <!--但独管理其中一个类的日志-->
    <logger name="com.xxxxxx.gmall0105.logger.controller.LoggerController"
            level="INFO" additivity="false">
        <!--false表示该管理器不由root管理器管,日志级别为INFO-->
        <!--日志级别 trace debug warn error fatal 级别逐渐高,info界别代表输出info即及info级别以上的日志-->
        <!--引用了上面定义的两个追加器,代表及回滚文件,又输出控制台-->
        <appender-ref ref="rollingFile" />
        <appender-ref ref="console" />
    </logger>

    <!--管理所有类日志的控制器-->
    <root level="error" additivity="false">
        <appender-ref ref="console" />

    </root>
</configuration>

3.4.3 日志处理

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

//@Controller
@RestController // @RestController = @Controller + @ResponseBody
@Slf4j  // 将请求返回结果转换成为日志
// @Slf4j 会帮忙不全补充Logger对象的声明和实现代码
// 但是前提是idea需要提前安装 lombok, 否则idea会编译报错
public class LoggerController {

    @RequestMapping("/applog")
    public String appLog(@RequestBody String logString) {
        System.out.println(logString);
        log.info(logString);
        return logString;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值