Lufer

  • 首页
  • 编程
  • 学习笔记
  • 日常折腾
Lufer
Code the World
  1. 首页
  2. 编程
  3. Java
  4. 正文

SpingBoot常见注解说明

2018年6月7日 671点热度 0人点赞 0条评论
  • Bean类
    • @Service
    • @Controller
    • @Repository
    • @Component
  • Response类
    • @RequestMapping
    • @ResponseBody
    • @RestController
    • @Component
  • Lombok类
    • @@Getter/@Setter
    • @Data
    • @Cleanup
    • @EqualsAndHashCode
    • @AllArgsConstructor
    • @NoArgsConstructor
    • @Builder
    • @NonNull
  • 异常处理类
    • @ControllerAdvice
    • @ExceptionHandler
    • @RestController
    • @Component
  • 其他
    • @Autowired

Bean类

@Service

注解在类上,表示这是一个业务层bean。

@Controller

注解在类上,表示这是一个控制层bean,可以解析返回的jsp,html页面,并且跳转到相应页面。

@Controller
public class TestController {
    @RequestMapping(value="/gouploadimg", method = RequestMethod.GET)
    public String goUploadImg() {
    //跳转到 templates 目录下的 uploadimg.html
    return "uploadimg";
}

@Repository

注解在类上,表示这是一个数据访问层bean。

@Component

注解在类上,表示通用bean。

Response类

@RequestMapping

用于进行路径映射。

//对test路径进行映射,其下方函数用于对路径test的请求进行处理
@RequestMapping("/test") 
//其默认参数为value,即不指定时,参数当做value处理,上一行等价于
@RequestMapping(value="/test")
//method:指定请求的method类型, GET、POST、PUT、DELETE等
@RequestMapping(value="/test", method=RequestMethod.GET)
//consumes:指定处理请求的提交内容类型(Content-Type),例如application/json,text/html
@RequestMapping(value = "/test", method=RequestMethod.POST,consumes="application/json")
//produces:指定返回的内容类型,但仅当请求头中的(Accept)类型也是该类型时才处理请求
@RequestMapping(value = "/test", method=RequestMethod.GET,produces="application/json")
//params:指定request中必须包含某些参数值时,才让该方法处理
//仅处理请求中包含了名为“myParam”,值为“myValue”的请求
 @RequestMapping(value = "/test", method = RequestMethod.GET, params="myParam=myValue")
//headers:指定request中必须包含某些指定的header值,才能让该方法处理请求
//仅处理request的header中包含了指定“Refer”请求头和对应值为“http://www.ifeng.com/”的请求;
@RequestMapping(value = "/test", method = RequestMethod.GET, headers="Referer=http://www.ifeng.com/")

@ResponseBody

加在controller函数的前面,可以将返回的对象自动转换为json字符串。

@RestController

相当于@ResponseBody和@Controller的结合。

Lombok类

lombok是一个注解种类,可以自动生成一些方法,从而减少开发复杂度。

@Getter/@Setter

可以用@Getter/@Setter注释任何字段(当然也可以注释到类上的),lombok会自动生成默认的getter/setter方法。

@Data

相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集。
可自动生成类的Get和Set等方法。

@Cleanup

可以加在IO变量声明之前,这样会在使用后自动释放IO变量。

@Cleanup InputStream in = new FileInputStream(path);

@EqualsAndHashCode

此注解会生成equals(Object other) 和 hashCode()方法。

@AllArgsConstructor

为类生成包含所有参数的构造函数。

@NoArgsConstructor

为类生成无参数的构造函数。

@Builder

建筑者模式,是现在比较推崇的一种构建值对象的方式。
会为类生成各种构造函数。

@NonNull

注解在参数上 如果该参数为null 会throw new NullPointerException(参数名)。

异常处理类

@ControllerAdvice

被ControllerAdvice注解的类会被认为是用来进行全局异常处理的类。

@ControllerAdvice
public class GlobalExceptionHandler {
}

@ExceptionHandler

用于确认被其注释的方法所要处理的异常类型。

@ControllerAdvice
public class GlobalExceptionHandler {
    //接管运行时异常,进行处理
    @ExceptionHandler(RuntimeException.class)
    @ResponseBody
    String handleException(){
        return "Exception Deal!";
    }
}

其他

@Autowired

自动填充,可以通过Autowired引入需要新建的对象,就无需每次调用时新建。

@Autowired
private  LocaleMessageSourceUtil localeMessageSourceUtil;

就相当于:

private  LocaleMessageSourceUtil localeMessageSourceUtil=new LocaleMessageSourceUtil();
标签: Java Spring Boot
最后更新:2023年7月10日

Lufer

新的一天开始啦

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

文章目录
  • Bean类
    • @Service
    • @Controller
    • @Repository
    • @Component
  • Response类
    • @RequestMapping
    • @ResponseBody
    • @RestController
  • Lombok类
    • @Getter/@Setter
    • @Data
    • @Cleanup
    • @EqualsAndHashCode
    • @AllArgsConstructor
    • @NoArgsConstructor
    • @Builder
    • @NonNull
  • 异常处理类
    • @ControllerAdvice
    • @ExceptionHandler
  • 其他
    • @Autowired

COPYRIGHT © 2022 lufer.cc.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021045819号