@Value
@Value("${my.property}")
private String myProperty;
@Nullable 返回null 避免空指针异常
//1.@Nullable注解告诉编译器输入参数input可能为null。当调用process方法时,编译器会检查传递给input的参数是否为null,以避免潜在的NullPointerException
public void process(@Nullable String input) {
if (input != null) {
// 处理输入
} else {
// 处理空输入的情况
}
}
//2.findUserById方法使用@Nullable注解表明它有可能返回null。调用方需要在使用返回值之前检查是否为null,以避免出现NullPointerException
public @Nullable String findUserById(int userId) {
// 查找用户信息
if (user != null) {
return user.getName();
} else {
return null;
}
}
//3. User类中的name字段被标注为@Nullable,表示它可能为null。在访问或修改name字段的值时,开发人员需要进行null检查
public class User {
private @Nullable String name;
// 其他字段和方法
}
@JsonSerialize,在Json序列化的时候把Long自动转为String
/**
* 主键
*/
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@TableId
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
//关于这个注解的方法,可以自己定义class,作为using的值来使用
/** 订单创建时间 */
@JsonSerialize(using = DateToLongSerializer.class)
private Date createTime;
public class DateToLongSerializer extends JsonSerializer<Date> {
@Override
public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeNumber(date.getTime() / 1000);
}
}
@TableField(fill = FieldFill.INSERT_UPDATE)
mp常用来默认插入更新
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
//数据库对应timestamp类型
@Override
@Transactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = DuplicateUserException.class)
public void saveUser(User user) {
userRepository.save(user);
}
//如果saveUser()方法抛出DuplicateUserException异常,事务会回滚;其他异常不会触发事务回滚。这样我们就可以根据业务需求灵活地控制事务的行为
@ToString(callSuper = true)
//子类toString重写
@Data
@ToString(callSuper = true)
public class DemoVo extends Demo {
}
@ControllerAdvice
如果你在使用@ControllerAdvice时不指定basePackages属性,那么Spring会扫描所有已经配置的组件扫描包(@ComponentScan注解指定的包)以查找带有@ControllerAdvice注解的类。这通常是出于全局异常处理的考虑。