我想使用 Spring 作为 JNDI 提供程序。这意味着我想在 Spring 上下文中配置一个 bean,可以通过 JNDI 访问该 bean。这看起来像这样:
<bean class="org.some.thing.here">
<property name="beans">
<map>
<entry key="w/t/f">
<bean class="some.thing.Else">
// rest ommitted
</bean>
</entry>
</map>
</property>
</bean>
然后,在我的应用程序(假设是控制器)中,我希望能够通过以下方式获取这个 bean:
Context ctx = new InitialContext();
some.thing.Else bar = (some.thing.Else) ctx.lookup("w/t/f");
我该怎么做呢?我研究过 XBean,但是该项目看起来已经过时了(我认为不适用于 Spring 3.0.X),并且文档很少。
还有其他选择吗?如果不太难的话,我还会考虑推出自己的 jndi 提供程序类。
EDIT:我应该补充一点,我没有使用 JNDI 的选项,我有一个必须使用的库,它需要通过 JNDI 加载某些组件。我想使用 Spring 作为提供者。
为什么要使用 JNDI?只需获取 Spring ApplicationContext 并从中获取 bean 即可。
假设您在 web 应用程序中使用 ContextLoaderListener 初始化了 Spring,您应该能够从 ServletContext 检索应用程序上下文。从那里你可以获得在 Spring 中声明的任何 bean。
ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext);
Object bean = context.getBean(some.thing.Else.class);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)