SpringBoot注解

SpringBoot 相关注解

  1. Controller
    @Controller表示这个一个控制器,像是一个容器,里面可以加入多个url映射,映射到指定的页面。一般习惯于一个页面对应一个Controller,里面写入那个页面所有的url映射。
@Controller  
public class IndexController {
    
}

如果确定这个Controller内返回的都是以json格式返回数据而不是页面的话,可以直接使用@RestController

  1. RequestMapping
    表示这是一个url映射,如果要映射多个url可以通过value属性设置。一个Controller里面可以写入多个mapping映射。
@Controller  
public class IndexController {

    @RequestMapping("/login")   //表示访问/login.html时会显示Login.html,后缀名是默认的,也可以在配置文件中去设置。
    public String login(){
        return "Login";
    }

     //多映射的写法
    @RequestMapping(value = {"login.html","Login.html"})
    public String login(){
        return "Login";
    }
}

@RequestMapping不限制请求的方式,如果需要通过相同的url不同的请求方式来区分的话可以这样写mapping注解:

@Controller  
public class IndexController {

    @GetMapping("/login")   //映射/login.html的get请求
    public String login(){
        return "Login";
    }

    @PostMapping("/login")   //映射/login.html的post请求
    public String login(){
        return "Login";
    }

}

除了post和get的外,还有@DeleteMapping@PutMapping

  1. RequestParam
@Controller  
public class IndexController {

    @GetMapping("/login")   //映射/login.html的get请求
    public String login(@RequestParam("username") String username){
        return "Login";
    }

    @PostMapping("/login")   //映射/login.html的post请求
    public String login2(String username){
        if(username == null){
            return "Error";
        }
        return "Login";
    }

}

@RequestParam用于指定请求要求的参数。两个Login方法虽然都有一个username的参数要求,但是加了@RequestParam注解的方法是强制要求的,如果没有username这个参数的话是会报错的;但是第二种方法则并不强制要求,如果没有username也会正常执行,不过如果后面要用他的值的话肯定还是会抛空指针异常的。

  1. Configuration
    @Configuration表示这是一个配置。
  2. Bean
    @Bean表示这是一个bean容器。
  3. Component
    @Component表示这是一个组件。
  4. JsonProperty
    @JsonProperty用来指定对象属性当做json返回时所对应的key的值。一般标注在get方法上面,例如:
class User {
 
   private int id;

   public User(int id){
      this.id = id;
   }

   @JsonProperty("userId")  //指定返回json数据时的key值
   publica int getId(){
     return id;
   }

}

@RestController  
public class IndexController {

    @GetMapping("/user")   
    public User login(){
        return new User(1);
    }

    //如果标注的Controller注解那么需要加上一个@ResponseBody注解
    @GetMapping("/user")   
    @ResponseBody
    public User login(){
        return new User(1);
    }

}

这样返回的结果将是{userId:1}

  1. 日期转换
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")//后台转前台
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")  //前台转后台(获取String转成Date)
private Date commentTime;

@JsonFormat后台(服务器端)转前台,即一个Date类型的数据需要返回出去,那么SpringBoot会自动转换成指定的格式的字符串然后返回回去。
@DateTimeFormat用于前台转后台(服务器端),例如一个请求参数需要是Date类型,但是请求时传的参数是字符串,这时SpringBoot会自动转换成Date类型。

  1. 屏蔽某些属性
    @JsonIgnore
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容