依赖注入
@ConfigurationProperties 是 Spring Boot 中一个非常强大且常用的注解,它提供了一种类型安全的方式来将配置文件中的属性批量绑定到一个 Java Bean 上。可以说是@value的升级版
假设有一个名为 developer.yml(或 .properties) 的配置文件,内容如下:
下面属性将统一由 prefix = “developer” 的配置类绑定
developer:
name: "Alice"
github: "https://github.com/alice"
那么配置类可以这样写(配置类中需要提供setter方法):
@data注解自动生成 getter/setter 等方法
@Data
@Component
@ConfigurationProperties(prefix = "developer")
public class DeveloperProperties {
private String name;
private String github;
}
那么其他地方注入配置类的bean后就可以直接使用属性了。
其他注解
@build 可以快捷实现对象数据的分装,功能就和set方法差不多。
全局异常捕捉
我们定义一个针对该异常的处理类,当抛出异常后就会执行对应异常类的函数,如返回异常信息和日志。
处理类一般定义在service中handler包下。
模板
@ExceptionHandler
public Result exceptionHandler(异常类型 ex){
//处理方式
}
如向数据库中传入了有唯一约束字段的重复值的报错处理
展开
@ExceptionHandler
public Result exceptionHandler(SQLIntegrityConstraintViolationException ex){
//获取错误报告
String message = ex.getMessage();
if(message.contains("Duplicate entry")){
String[] spilt = message.split(" ");
String username = spilt[2];
String msg = username + MessageConstant.ALREADY_EXISTS;
return Result.error(msg);
}
else{
return Result.error(MessageConstant.UNKNOWN_ERROR);
}
}
方法
这是对象属性拷贝 能自动为两个类的对象中名字相同的属性赋值。1付给2
BeanUtils.copyProperties(对象1,对象2);
