当前位置: 首页 > 面试题库 >

在CDI容器中手动注册类

姜嘉荣
2023-03-14
问题内容

我有一组通过反射实例化的类,因此这些类不是由CDI容器管理的,并且上下文也不进行注入。我的问题是,是否有任何方法可以在CDI上下文中注册这些类,所以这些类由上下文管理?

贝娄,是我如何创建类:

String clazz = "org.myorg.thisIsMyClass";
MyClass myClass = Class.forName(clazz).newInstance(); // myClass instance not managed by CDI

如何使实例myClass由CDI容器管理?


问题答案:

如果容器将您的类注册为bean,则可以使用编程查找来轻松获取它们。

@Inject
@Any
Instance<Object> myBeans;

public Object getMyBeanFromClassName(String className) throws Exception{    
    Class clazz = Class.forName(className);
    return myBeans.select(clazz).get();  
}

等等。



 类似资料:
  • 主要内容:部署注册表容器注册表是一个存储和内容交付系统,它存储他们的Docker(它是用于运行应用程序的预定义图像的数据库)。 部署注册表 可以使用以下命令部署注册表: 步骤(1): 首先,使用SSH(Secure Shell)登录到您的GitLab服务器。 步骤(2): 现在使用以下命令启动注册表容器: 将第一部分指定为主机端口,将第二部分指定为容器内的端口。 当Docker重新启动时,标志会自动重新启动注册表。

  • (https://github.com/confluentinc/schema-registry/blob/5af0ca3be1138fe483d0f90f4ccfd4f02f158334/core/src/main/java/io/confluent/kafka/schemaregistry/storage/kafkaschemaregistry.java#l211-l223) 因此,通告端口的

  • 注册中心参考手册 推荐使用 Zookeeper 注册中心

  • 你可以在应用程序的启动方法中向本地化文本注册表(local text registry)添加翻译。 这些翻译可来源自数据库表、xml 文件、嵌入的资源等。 void Application_Start() { // ... var registry = Dependency.Resolve<ILocalTextRegistry>(); registry.Add("es",

  • 在数据采集一节中我们介绍了常见的监控数据源。open-falcon作为一个监控框架,可以去采集任何系统的监控指标数据,只要将监控数据组织为open-falcon规范的格式就OK了。 docker container的数据采集可以通过micadvisor_open来做。 工作原理 micadvisor-open是基于open-falcon的docker容器资源监控插件,监控容器的cpu、内存、dis

  • 我们在ECS Fargate中部署了Spring Boot服务,包括Eureka注册服务、网关服务和一些业务服务。在Eureka注册表页面中,所有注册的客户端服务都显示相同的IP(可能是容器IP)。 请分享应该提供什么配置来注册ECS任务专用ip而不是容器ip。提前谢谢。 Eureka服务应用程序属性: server.port=8080 eureka.client.register with eu