代码之家  ›  专栏  ›  技术社区  ›  pvpkiran

Micronaut不会失败

  •  2
  • pvpkiran  · 技术社区  · 6 年前

    我在试着用我的手抓麦乐诺。我注意到的一件事是,Micronaut不会失败。

    例如,如果我的豆子里有这样的东西

    @Value("${my.url}")
    private String url;
    

    如果没有用key my.url定义属性,那么

    1. 使用Springboot,服务器将无法启动。
    2. 有了micronaut,服务器就会启动。但在尝试访问该变量时引发异常。

    我想最好是快速失败(如Springboot)。所以我想知道这在密克罗诺是否也可能。

    1 回复  |  直到 6 年前
        1
  •  2
  •   pvpkiran    6 年前

    你可以使用 @ConfigurationProperties 为了这个,确保它是 @Context 因为默认情况下,启动时不会创建Micronaut bean。通过制作它们 @语境 作用域应用程序启动时将创建bean。

    下列内容:

    import io.micronaut.context.annotation.*;
    import javax.validation.constraints.*;
    
    @ConfigurationProperties("my")
    @Context
    class MyConfig {
    
        private @NotNull String url;
    
        public String getUrl() {
            return url;
        }
    
        public void setUrl(String url) {
            this.url = url;
        }
    
    }
    

    结果在

    08:38:38.568 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Bean definition [fresh.java.MyConfig] could not be loaded: Error instantiating bean of type  [fresh.java.MyConfig]
    
    Message: Validation failed for bean definition [fresh.java.MyConfig]
    List of constraint violations:[
            url - must not be null
    ]
    
    

    当服务器启动时。

    确保添加此依赖项

    compile "io.micronaut.configuration:micronaut-hibernate-validator"
    
    推荐文章