JavaWeb常用注解

SpringBoot-Web文件目录

application.properties配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 添加数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/nodaoli
spring.datasource.username=nodaoli
spring.datasource.password=nodaoli

# 添加MyBatis的日志,可以使用@Slf4j注解,log.info()静态方法输出日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

# 添加MyBatis的驼峰命名自动转换
mybatis.configuration.map-underscore-to-camel-case=true

# 配置单个文件的最大上传大小
spring.servlet.multipart.max-file-size=10MB
# 配置多个文件的最大上传大小
spring.servlet.multipart.max-request-size=100MB

Controller层注解

对于类的注解,@Controller@RestController的区别:

@Controller@RestController都是用于定义控制器的注解,它们的作用相同,都是用于定义控制器,但@RestController注解是@Controller@ResponseBody的组合注解,用于定义控制器,并返回JSON数据。

对于方法的注解,@RequestMapping以及@GetMapping@PostMapping@PutMapping@DeleteMapping的区别:

@RequestMapping用于定义请求映射,用于映射请求的URL和请求的方法。@GetMapping@PostMapping@PutMapping@DeleteMapping@RequestMapping的子注解,用于定义请求映射,并指定请求的方法。

当传入的参数是访问路径、可变参数的时候

1
2
3
4
5
6
7
8
@RequestMapping("/user/{id}")
public String getUser(@PathVariable("id") Integer id) {
return "id={}",id;
// 访问路径:/user/1
// 返回:id=1
// 访问路径:/user/2
// 返回:id=2
}

@PathVariable(“id”) 是把传入的参数取别名,并设置为可变参数
{}相当于一个占位符,可以替换为任意字符串

使用共同请求的路径

这样所有请求带有/user前缀都会被映射到UserController

1
2
3
@RequestMapping("/user")
public class UserController {
}

给参数添加默认值

1
2
3
4
5
6
@PostMapping("/user")
public String getUser(@RequestParam(defaultValue = "1") Integer id) {
return "id={}",id;
// 访问路径:/user/1
// 返回:id=1
}

@RequestParam(defaultValue = “1”) 是给参数设置一个默认值,如果没有传入参数,则使用默认值

Service层注解

在接口和实现类都添加@Service注解就好了

Mapper/Dao层注解

在类上添加@Mapper注解,在方法上添加@Select@Insert@Update@Delete注解

1
2
// 自动递增的主键id,在新增时才能获取到数据库生成的id,不然为空
@Options(keyProperty = "id",useGeneratedKeys = true)

Mybatis配置注解

在配置文件中添加

mybatis.configuration.map-underscore-to-camel-case=true

可以自动将数据库中的下划线转换为驼峰命名

在配置文件中添加

mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

可以打印MyBatis的日志

在类使用@Slf4j注解,可以自动注入一个日志对象,使用log.info()方法输出日志

自动装配

在类上添加@Component注解,在方法上添加@Autowired注解,就可以自动装配了

自动转换JSON对象忽略密码

在类上添加@JsonIgnoreProperties({"password"})注解,就可以自动转换JSON对象忽略密码了

或者在方法上添加@JsonIgnore注解,就可以自动转换JSON对象忽略密码了