将属性值注入@ResponseStatus 注解

时间:2021-07-22 15:34:29

标签: java spring spring-boot rest spring-mvc

在我的微服务 Spring Boot 项目中,我用 @ResponseStatus 注释了这个自定义异常:

@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "${message.custom.notFound}")
public class MyCustomAnnotation extends RuntimeException

而且效果很好:当引发异常时,我的控制器返回指定的状态 (404),但原因未解决(错误消息为“${message.custom.notFound}”)。

你知道有没有办法将属性文件中的属性注入到这个注解中?

提前致谢

1 个答案:

答案 0 :(得分:0)

首先在构造函数中定义消息参数:

@ResponseStatus(HttpStatus.NOT_FOUND)
public class MyCustomAnnotation extends RuntimeException {
    public MyCustomAnnotation(String message) {
        super(message);
    }
}

然后像这样在控制器服务中使用:

@RestController
public class MainController {

 @Value($value.from.properties)
 private String value;

    @PostMapping("/api")
    public ResponseEntity send(@RequestBody requestBody) {
        throw new MyCustomAnnotation(value);
    }

}
相关问题