【SpringMVC快速使用】1.@RestController @RequestMapping 2.logback的使用

背景:为何从这个最简单的 例子写起呢?

那是因为我们的管理后台之类的都是别人写的,我也听说了大家说:只用Post请求就足够了,但是却发现,在浏览器中测试时,默认是GET请求,如果直接写的@PostMapping,则提示此请求不支持。

有了SpringBoot,开发部署一个Web项目是非常加单的。对比ASP.Net Core 和go的繁琐(因为很多东西需要自己从头做),SpringBoot是做到了开箱即用,我们引入需要的starter,使用依赖注入即可引入我们需要的service类,结合dubbo,我们可以轻松的实现微服务(也就是这个接口的实现是别的服务做的)。不管是同步还是异步,都是非常的简单的。

1)我们的游戏服务器是从“平台”账号注册开始的,那么我们就从这里开始:

package com.example.springbootdemo.controller;

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

@Slf4j
@RestController
@RequestMapping("/account")
public class AccountController {

    /**
     * @param username
     * @param password
     */
    @RequestMapping("/register")
    public void register(String username, String password) {
        log.info("新用户注册,username={}, password={}", username, password);
    }
}

/*
2024-01-11T11:10:10.421+08:00  INFO 32040 --- [nio-8080-exec-5] c.e.s.controller.AccountController       : 新用户注册,username="xx", password="aa"
2024-01-11T11:10:10.647+08:00  INFO 32040 --- [nio-8080-exec-6] c.e.s.controller.AccountController       : 新用户注册,username="xx", password="aa"
2024-01-11T11:10:10.850+08:00  INFO 32040 --- [nio-8080-exec-7] c.e.s.controller.AccountController       : 新用户注册,username="xx", password="aa"
2024-01-11T11:10:11.014+08:00  INFO 32040 --- [nio-8080-exec-8] c.e.s.controller.AccountController       : 新用户注册,username="xx", password="aa"
2024-01-11T11:10:11.187+08:00  INFO 32040 --- [nio-8080-exec-2] c.e.s.controller.AccountController       : 新用户注册,username="xx", password="aa"
2024-01-11T11:10:11.362+08:00  INFO 32040 --- [io-8080-exec-10] c.e.s.controller.AccountController       : 新用户注册,username="xx", password="aa"
2024-01-11T11:10:13.562+08:00  INFO 32040 --- [nio-8080-exec-9] c.e.s.controller.AccountController       : 新用户注册,username="xx", password="aa"
2024-01-11T11:15:47.588+08:00  INFO 32040 --- [nio-8080-exec-5] c.e.s.controller.AccountController       : 新用户注册,username="xx", password="aa"
*/

2)日志肯定是少不了的

在pom.xml中引入下logback日志包 // 注意:不要带版本号,不然打包时就会提示logback版本号冲突了,我们使用继承过来的版本即可

    
    
      org.slf4j
      slf4j-api

    
    
      org.slf4j
      jcl-over-slf4j

    
    
      ch.qos.logback
      logback-classic

    
    
      ch.qos.logback
      logback-core

    

接着把zfoo的logback.xml粘贴过来放到resources下面即可:





  
  
  
  
  
    
      ${PATTERN_CONSOLE}
      UTF-8
    
  

  
  
    ${LOG_HOME}/debug.log
    
    false
    
      ${PATTERN_FILE}
      UTF-8
    
    
      debug
      ACCEPT
      DENY
    
  

  
  
  
    ${LOG_HOME}/info.log

    
      
      ${LOG_HOME}/info.%d{yyyy-MM-dd}.%i.log
      
      100MB
      30
      40GB
    

    
      ${PATTERN_FILE}
      UTF-8
    

    
      info
    
  

  
  
    
    0
    
    512
    
    
  

  
  
    ${LOG_HOME}/error.log

    
      ${LOG_HOME}/error.%d{yyyy-MM-dd}.%i.log
      100MB
      30
      20GB
    

    
      ${PATTERN_FILE}
      UTF-8
    

    
      error
      ACCEPT
      DENY
    
  

  
  
    
    
    
    
  

  
  
  

3)结合lombok的@Slf4j注解,我们可以很轻松打印的日志(想想go或者asp.net core的话,自己不是太熟悉,还是得折腾半天)

4)测试

浏览器中发起下请求: 

http://localhost:8080/account/register?username="xx"&password="aa"

注意从浏览器中粘贴下来可能不是这样子了,这是因为进行了编码

http://localhost:8080/account/register?username=%22xx%22&password=%22aa%22 

观察下idea下的日志,可以看出来这个日志是非常清楚的

时间,日志级别,线程,日志是从哪个类打印出的,跳转,信息等非常清楚

5)打包也很容易了开箱即用。 

-------------另外一个用到的-----------



  

  
    

      %d{yyyy-MM-dd HH:mm:ss} [%highlight(%-5level)] [%thread] %logger{30}.%M\(%F:%L\) - %msg%n
    
  

  

  
    ${LOG_DIR}/game.log
    
      ${LOG_DIR}/game.%d{yyyyMMdd}.log
      30
    
    
      [%-5level][%d{HH:mm:ss.SSS}][%thread][%logger][%L] - %msg%n
    
  


  
    ${LOG_DIR}/monitor.log
    
      ${LOG_DIR}/monitor.%d{yyyyMMdd}.log
      30
    
    
      [%-5level][%d{HH:mm:ss.SSS}][%thread][%logger][%L] - %msg%n
    
  


  
    ${LOG_DIR}/game-perf.log
    
      ${LOG_DIR}/game-perf.%d{yyyyMMdd}.log
      30
    
    
      %msg%n%ex
    
  
  
    
    60000
  


  
    
    1024
    3000
  

  
    
    1024
    3000
  

  
    
  

  
    
  

  
  
  
  
  
  
  
  

  
  
  
  
  
  
  


  
    
    
  

你可能感兴趣的:(#,springboot,java)