栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot常用注解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot常用注解

一、Spring Bean相关

1.@Autowired:自动导入对象到类中,被注入进的类同样要被Spring容器管理如:Service类注入到Controller类
使用下面这些注解的类才能被@Autowired装配
2.@Component:通用注解,可标注任意类为Spring组件
3.@Repository:对应持久层即Dao层,主要用于数据库相关操作
4.@Service:对应服务层,主要涉及一些复杂逻辑,需要用到Dao层
5.@Controller:对应SpringMVC控制层,主要用于接受用户请求并调用Service层返回数据给前端页面
6.@RestController:@ResponseBody和Controller的组合,并且是将函数的返回值直接填入HTTP响应体中,返回JOSN或XML格式数据
7.@Scope:声明SprIng Bean的作用域
8.@Cofiguration:一般用来声明配置类,可用@Component代替

二、HTTP请求相关

1.@GetMapping(“users”):请求从服务器上获取特定资源
2.@PostMapping(“users”):在服务器上创建一个新的资源
3.@PutMapping("/users/{userId}"):更新服务器上的资源
4.@DeleteMapping("/users/{userId}"):从服务器上删除特定资源
5.@RequestMapping(""):以上都能使用该注解代替

三、前后端传值

1.@PathVariable(""):用于获取路径参数
2.@RequestParam(""):用于获取查询参数

@GetMapping("/class/{classId}/teachers")
public List getKlassRelatedTeachers(
      @PathVariable("classId") Long classId,
      @RequestParam(value = "type", required = false) String type ) {
           ...
}
如果请求的url是:/class/1/teachers?type=test
参数值就为 classId = 1,type = test

3.@RequestBody:用于读取Request请求(可能是POST,PUT,DELETE,GET)的body部分且Content-Type为json格式
接收到数据后,自动将数据绑定到Java对象上去
4.@ResponseBody:将java对象转为json格式的数据,表示该方法的返回结果直接写入 HTTP response body 中

四、读取配置信息(yml或者properties)

假如数据源application.yml内容如下

url: www.baidu.com
spring: 
    datasource: 
    	url: jdbc:mysql://127.0.0.1:8888/test
    	username: root
     	password: root

1.@Value("${url}"):读取比较简单的配置信息
2.@ConfigurationProperties(prefix=""):读取配置信息并与bean绑定

@Data
@ConfigurationProperties(prefix="spring.datasource")
public class DataSource{
private String url;
private String username;
private String password;
}
五、参数校验

1.@NotEmpty:用在集合类上面,String类、Collection、Map、数组是不能为null或长度为0的
2.@NotBlank:用在String上面
3.@NotNull:用在基本类型上面
4.@Null:被注释的元素必须为null
5.@AssertTrue:被注释的元素必须为true
6.@AssertFalse:被注释的元素必须为false
7.@Pattern(regex=,flag=):被注释的元素必须符合指定的正则表达式
8.@Email :被注释的元素必须是 Email 格式。
9.@Min(value):被注释的元素必须是一个数字,其值必须大于等于指定的最小值
10.@Max(value):被注释的元素必须是一个数字,其值必须小于等于指定的最大值
11.@DecimalMin(value):被注释的元素必须是一个数字,其值必须大于等于指定的最小值
12.@DecimalMax(value): 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
13.@Size(max=, min=):被注释的元素的大小必须在指定的范围内
14.@Digits(integer, fraction):被注释的元素必须是一个数字,其值必须在可接受的范围内
15.@Past:被注释的元素必须是一个过去的日期
16.@Future:被注释的元素必须是一个将来的日期
17.@Validated:提供分组功能,在入参验证时根据不同的分组采用不同的验证机制
可以用在类、方法和方法参数上。不能用在成员属性上
18.@Valid:验证对象中的属性是否符合要求,当不符合要求时会在方法中返回message的错误信息
可以用在方法、构造函数、方法参数和成员属性上

@RestController
@RequestMapping("/api")
 public class PersonController {
      @PostMapping("/person")
     public ResponseEntity getPerson(@Valid Person person) {
      return ResponseEntity.ok().body(person);
      }  
}
@Data
public class Person{
@NotNull(message = "姓名不能为空")
private String username;
@NotNull(message = "年龄不能为空")
private String age;
}
六、异常处理

1.@ControllerAdive:定义全局异常处理类
2.@ExceptionHandler:声明异常处理方法
查看具体文章

七、JPA

1.@Entity:声明一个类对应一个数据库实体
2.@Table:设置表名
3.@Id: 声明一个字段为主键
4.@GeneratedValue:指定主键生成策略,如自动递增
5.@Column:声明字段
6.@Transient:声明不需要持久化字段(不保存进数据库)

八、json

1.@JsonIgnoreProperties:作用在类上用于过滤掉特定字段不返回或者不解析
2.@JsonIgnore:一般用于类的属性上,作用也是过滤特定字段不返回或不解析
3.@JsonFormat:一般用来格式化json数据

九、事务

@Transactional:在要开启事务的类或方法上使用
一般都会在注解后面加上(rollbackFor=Exception.class)可以让是否在遇到非运行时异常也回滚
作用于类:表示所有该类的public方法都配置相同的事务属性信息
作用于方法:方法的事务会覆盖类的事务配置信息

十、测试

1.@Test:声明一个方法为测试方法
2.@WithMockUser:Spring Security提供的,用来模拟一真实用户,并且可以赋予权限
3.@ActiveProfiles:作用于测试类上,指定使用的配置文件
4.@Transactional:被声明的测试方法的数据会回滚,避免污染业务数据

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/325054.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号