我正在Micronaut中编写一个java库模块,它有一个http客户端。这个想法是我的微服务将使用这个库作为jar依赖项并使用http客户端。
问题陈述:我想在不使用 application.yml
的情况下配置我的 HttpClient。
为什么我不想用application.yml?-因为使用此库的微服务也将拥有自己的< code>application.yml,并且在构建jar时,需要合并两个< code>application.yml文件。虽然技术上可行,但我不想使用这种方法。
场景-在micronaut中有一个名为micronaut.http.client.exception的布尔配置属性,我需要将其设置为
false
。我可以在application.yml
中轻松地将其设置为micronaut.http.client.exception-on-erer-stat=false
,但由于上述原因,我想避免这种方法。我想在代码中设置这个。
我尝试了以下两种方法,但都不起作用。
方法1 -使用< code > @ configuration properties
我创建了以下< code > micronathttpclientconfiguration . Java 类,但未设置该属性。
import io.micronaut.context.annotation.ConfigurationProperties;
@ConfigurationProperties("micronaut.http.client")
public class MicronautHttpClientConfiguration {
private boolean exceptionOnErrorStatus;
public MicronautHttpClientConfiguration() {
this.exceptionOnErrorStatus = false;
}
public boolean isExceptionOnErrorStatus() {
return exceptionOnErrorStatus;
}
public void setExceptionOnErrorStatus(boolean exceptionOnErrorStatus) {
this.exceptionOnErrorStatus = exceptionOnErrorStatus;
}
}
方法2-使用BeanCreatedEventListener
我创建了以下 BeanCreatedEventListener
来尝试在创建时配置 HttpClient,但无法做到。
import io.micronaut.context.event.BeanCreatedEvent;
import io.micronaut.context.event.BeanCreatedEventListener;
import io.micronaut.http.client.HttpClient;
import javax.inject.Singleton;
@Singleton
public class HttpClientBeanCreationEvent implements BeanCreatedEventListener<HttpClient> {
@Override
public HttpClient onCreated(BeanCreatedEvent<HttpClient> event) {
HttpClient httpClient = event.getBean();
// I have a handle on the HttpClient here, but not really sure how to set that property
return httpClient;
}
}
这个问题适用于任何HttpClient配置(如read-timeout)或任何默认的micronaut配置。
更新 1 : 我正在寻找使用 @ConfigurationProperties
的解决方案,因为我意识到如果我使用 BeanCreationEvent 的方法 2,Micronaut 将永远不会遵循 application.yml
(对于此属性)中的任何配置,因为 BeanCreationEvent 覆盖了所有这些。这将使实现微服务难以覆盖此属性。
您应该创建一个向用户公开的声明性客户端,在@client
注释中,您可以指定一个配置类
我正在尝试使用thymeleaf读取属性,但无法使其工作。我有以下属性类别: 我正在尝试使用 但是,没有显示任何内容。 编辑:如果我设置。属性,它起作用了。但是为什么thymeleaf不选择默认值??
与Jquery Mobile自动初始化共同协作 Working with Jquery Mobile's Auto-initialization 不像其他的Jq项目,比如jq和jq ui,Jquery Mobile会在加载到增强特性时马上应用它(远早于document.ready事件发生时)。这些特性会基于Jquery Mobile的默认配置应用,是针对默认的情形设计的,他可能符合你的需求,也可能
我在spring-boot项目中有一个properties类。 现在,我想将的application.properties文件中的其他属性设置默认值。与下面的示例使用@value所做的类似
问题内容: 我正在尝试将我的应用程序升级到新版本的Firebase。我仔细阅读了设置指南,并编辑了所有代码以匹配新语法。但是,当我运行该应用程序时,出现了这两个错误。 我 在AppDelegate中,并将GoogleServices- Info.plist导入到我的项目中。plist也具有所有正确的信息。其他人遇到这个问题或知道如何解决? 问题答案: 这是您的问题的答案: 要配置Firebase,
22.2.2 默认DispatcherServlet配置 如上一节中所述,对每种特殊的bean,DispatcherServlet都会维护一个默认可用的实现的列表。此信息保存在包org.springframework.web.servlet中的文件DispatcherServlet.properties中。 所有的特殊bean都有一些合理的默认值,虽然迟早您将需要对这些bean提供的一个或多个属性
上一小节讲到,DispatcherServlet维护了一个列表,其中保存了其所依赖的所有bean的默认实现。这个列表保存在包org.springframework.web.servlet下的DispatcherServlet.properties文件中。 这些特殊的bean都有一些基本的默认行为。或早或晚,你可能需要对它们提供的一些默认配置进行定制。比如说,通常你需要配置InternalResou