Java 按字符串调用引用
在我的代码中,我有一个HPContentModule:Java 按字符串调用引用,java,reference,Java,Reference,在我的代码中,我有一个HPContentModule: @Resource(name = "HPContentModule") private HPContentModule hpContentModule; 我想知道是否有可能得到一个字符串: String myString = "hpContentModule"; 这样我就可以使用myString调用hpContentModule,执行类似于myString.init()的操作,其中init()是HPContentMethod中的方法 或
@Resource(name = "HPContentModule")
private HPContentModule hpContentModule;
我想知道是否有可能得到一个字符串
:
String myString = "hpContentModule";
这样我就可以使用myString
调用hpContentModule
,执行类似于myString.init()的操作
,其中init()
是HPContentMethod
中的方法
或者
如果我有豆子:
<beans:bean id="myBean" class="com.app.search.HPContent" />
我可以在控制器中通过
String
调用这个bean吗?有很多方法可以做到这一点
其中最简单的一个是Spring的ApplicationContext
。您可以访问ApplicationContext
。一旦有了ApplicationContext
的副本,就可以调用getBean()
方法,如下所示:
HPContentModule hpContentModule = (HPContentModule) appContext.getBean( "myBean" );
我怀疑这取决于您的DI/IOC框架。您使用的是哪一个?您应该能够调用提供资源注释的任何容器来按名称查找资源,然后将myString作为参数传递(如果这是您所要求的),尽管这会破坏注入的目的。在注入值之后,您应该能够使用反射。我正在使用Spring并尝试动态加载模块。是什么阻止您获取bean上下文并基于字符串访问/转换bean?有趣的是,我最近发现的一件事是,您可以动态地分配
值。我的意思是,您可以加载一个资源文件,该文件提供您感兴趣加载的bean的名称(例如,
)。