我有以下内容:
@Context
@EachProperty("some.property")
public class MyCfg {
public MyCfg(@Parameter String name) {
// ...
}
}
@Factory
public class MyFactory {
@Context
@EachBean(MyCfg.class)
public MyBean build(MyCfg cfg) {
// ...
}
}
我从文档中了解到MyBean
的实例应该继承@Named
的{{1}}名称,实际上我可以注入它们(例如,作为构造函数参数),{{ 1}}。
但是,如果我通过MyCfg
以编程方式检索了他们的@Named("somename") MyBean myBean
,则似乎无法访问实例名称。
例如:
BeanDefinition
打印BeanContext
,而我希望它可以打印@EventListener
void onShutdown(ShutdownEvent event) {
event.getsource().getBeanRegistrations(MyBean.class).forEach(br -> {
log.info("Shutting down {}",br.getBeanDefinition().stringValue(Named.class)));
br.getBean().close();
});
}
下Shutting down Optional.empty
中的任何名称。
你能帮忙吗?