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代替
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 中
假如数据源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:声明异常处理方法
查看具体文章
1.@Entity:声明一个类对应一个数据库实体
2.@Table:设置表名
3.@Id: 声明一个字段为主键
4.@GeneratedValue:指定主键生成策略,如自动递增
5.@Column:声明字段
6.@Transient:声明不需要持久化字段(不保存进数据库)
…
1.@JsonIgnoreProperties:作用在类上用于过滤掉特定字段不返回或者不解析
2.@JsonIgnore:一般用于类的属性上,作用也是过滤特定字段不返回或不解析
3.@JsonFormat:一般用来格式化json数据
@Transactional:在要开启事务的类或方法上使用
一般都会在注解后面加上(rollbackFor=Exception.class)可以让是否在遇到非运行时异常也回滚
作用于类:表示所有该类的public方法都配置相同的事务属性信息
作用于方法:方法的事务会覆盖类的事务配置信息
1.@Test:声明一个方法为测试方法
2.@WithMockUser:Spring Security提供的,用来模拟一真实用户,并且可以赋予权限
3.@ActiveProfiles:作用于测试类上,指定使用的配置文件
4.@Transactional:被声明的测试方法的数据会回滚,避免污染业务数据



