CDI 对象不能使用注入的构造函数进行代理
2022-09-03 14:46:18
当尝试将参数注入CDI bean(ApplicationScoped)的构造函数时,我遇到了以下问题:
Caused by: org.jboss.weld.exceptions.UnproxyableResolutionException: WELD-001435: Normal scoped bean class xx.Config is not proxyable because it has no no-args constructor - Managed Bean [class xx.Config] with qualifiers [@Default @Named @Any].
at org.jboss.weld.bean.proxy.DefaultProxyInstantiator.validateNoargConstructor(DefaultProxyInstantiator.java:50)
at org.jboss.weld.util.Proxies.getUnproxyableClassException(Proxies.java:217)
at org.jboss.weld.util.Proxies.getUnproxyableTypeException(Proxies.java:178)
但是,我在类上确实有一个可注入的构造函数:
@Inject
public Config(ConfigLocator configLocator) {
defaultConfigPath = configLocator.getPath();
doStuff();
}
使用默认构造函数,变量注入和后构造方法,这一切都可以正常工作,但在这种情况下,我更喜欢构造函数注入。
任何想法这里出了什么问题?