当前位置: 首页 > 知识库问答 >
问题:

将属性值注入@响应状态注释

满和安
2023-03-14

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

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

它工作得很好:当引发异常时,我的控制器返回指定的状态(404),但原因没有得到解决(错误消息是“${message.custom.notFound}”)。

您知道是否有方法将属性文件中的属性注入到此注释中吗?

提前感谢

共有1个答案

通博实
2023-03-14

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

@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);
    }

}
 类似资料:
  • 我试图向自定义注释中注入一个值,但Spring似乎没有进行评估。

  • 我有我的Jhipster配置/应用程序属性。java类设置和工作,但不清楚如何将属性值注入url的假客户端注释: 使用@Value在下面不起作用: 有什么想法吗?

  • 我正在使用spring boot开发REST API。我想在我的项目中使用git。在文件应用程序中。属性我有数据库Url、用户名和密码,我不想在git上推送它们。我不知道如何创建包含数据库配置的文件,以及如何将这些配置注入应用程序。属性。 应用属性

  • 我有以下课程: 我从控制器调用方法test(): 然而,spring并没有注入构建。版本值,即使类具有组件注释。 我在控制器中使用相同的属性,它工作正常。 我做错了什么?

  • 我们一直在使用Spring@Value注释来注入属性值。我们有一个约定来命名属性名称,以匹配它们注入的java字段。这带来了不必要的工作,即每个ConfigBean的java字段都需要用@Value注释。 我正在寻找一种方法,用新的注释注释java类(比如说ConfigBean),让一些后处理器读取这些bean的属性名称,并自动注入属性值。 我正在寻找一些关于如何在没有@Value注释的情况下实现

  • 我是Spring Security的新手。我看过很多关于如何通过外部属性文件的注释注入值的文章。我尝试了很多方法,但最终都是用java。lang.IllegalArgumentException:无法解析占位符“val.id”异常。 你能给我一些提示如何处理这个例外吗? 我的java类如下所示: 我的属性文件名为val.properties,位于WEB-INF下,其内容为val.id=xyz 我将