让 micronaut 使用我的“JacksonConfiguration”实例
Get micronaut to use my instance of `JacksonConfiguration`
我正在尝试让 micronaut (1.2.6) 使用我的代码来实例化 JacksonConfiguration
而不是默认机制。
我有这个:
@Factory
public class MyFactory {
@Singleton
public JacksonConfiguration jacksonConfiguration() {
JacksonConfiguration cfg = new JacksonConfiguration();
System.out.println("jacksonConfiguration() - hashcode is " + System.identityHashCode(cfg));
return cfg;
}
@Factory
public static class MyObjectMapperFactory extends ObjectMapperFactory {
@Override
@Singleton @Replaces(ObjectMapper.class)
public ObjectMapper objectMapper(@Nullable JacksonConfiguration jacksonConfiguration, @Nullable JsonFactory jsonFactory) {
System.out.println("objectMapper() - hashcode is " + System.identityHashCode(jacksonConfiguration));
return super.objectMapper(jacksonConfiguration, jsonFactory);
}
}
}
并且,当 ObjectMapper
工厂接收 JacksonConfiguration
的实例时,我的其他方法从未被调用。
我尝试将 @Replaces(JacksonConfiguration.class)
添加到我的 jacksonConfiguration()
方法,但这导致 ObjectMapper
工厂方法被调用 null
而不是 [=11 的实例=](不知道为什么)。
我应该怎么做才能替换默认值JacksonConfiguraion
?
PS:
我知道我可以忽略它并以我想要的任何方式实例化我的 ObjectMappers
(在我理解这个问题之前我会这样做)。
这里的重点是更多地了解 micronaut 的工作原理,而不是找到 solution/workaround 解决特定的实际问题。
使用您当前的代码,我希望抛出 NonUniqueBean 异常,因为会有多个 JacksonConfiguration bean。您应该将您的配置为 @Replaces(JacksonConfiguration.class)
.
请注意,在 1.3.0.M1 和最新的 1.2 中解决了与替换配置属性 bean 相关的错误。8.BUILD-SNAPSHOT 因此您需要使用其中一个版本
我正在尝试让 micronaut (1.2.6) 使用我的代码来实例化 JacksonConfiguration
而不是默认机制。
我有这个:
@Factory
public class MyFactory {
@Singleton
public JacksonConfiguration jacksonConfiguration() {
JacksonConfiguration cfg = new JacksonConfiguration();
System.out.println("jacksonConfiguration() - hashcode is " + System.identityHashCode(cfg));
return cfg;
}
@Factory
public static class MyObjectMapperFactory extends ObjectMapperFactory {
@Override
@Singleton @Replaces(ObjectMapper.class)
public ObjectMapper objectMapper(@Nullable JacksonConfiguration jacksonConfiguration, @Nullable JsonFactory jsonFactory) {
System.out.println("objectMapper() - hashcode is " + System.identityHashCode(jacksonConfiguration));
return super.objectMapper(jacksonConfiguration, jsonFactory);
}
}
}
并且,当 ObjectMapper
工厂接收 JacksonConfiguration
的实例时,我的其他方法从未被调用。
我尝试将 @Replaces(JacksonConfiguration.class)
添加到我的 jacksonConfiguration()
方法,但这导致 ObjectMapper
工厂方法被调用 null
而不是 [=11 的实例=](不知道为什么)。
我应该怎么做才能替换默认值JacksonConfiguraion
?
PS:
我知道我可以忽略它并以我想要的任何方式实例化我的 ObjectMappers
(在我理解这个问题之前我会这样做)。
这里的重点是更多地了解 micronaut 的工作原理,而不是找到 solution/workaround 解决特定的实际问题。
使用您当前的代码,我希望抛出 NonUniqueBean 异常,因为会有多个 JacksonConfiguration bean。您应该将您的配置为 @Replaces(JacksonConfiguration.class)
.
请注意,在 1.3.0.M1 和最新的 1.2 中解决了与替换配置属性 bean 相关的错误。8.BUILD-SNAPSHOT 因此您需要使用其中一个版本