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

如何在以声明方式将对象绑定(绑定)到jndi?

鞠嘉志
2023-03-14
问题内容

我们有一个普通的独立spring应用程序,需要将jdbc数据源放在jndi中。(我们使用jboss treecache,它需要数据源位于jndi中)。

一些谷歌搜索人员发现了大多数使用Spring的jndi查找示例,其中已经在jndi中放置了一个对象(通过tomcat或应用服务器等),但是我们需要另外的方法:我有一个简单的数据源Spring bean,我将其注入到其他服务中,但我无法将其注入TreeCache,因为它仅需要jndi的支持。

Found org.springframework.jndi.JndiTemplate,可以声明为bean,例如:

<bean id="fsJndiTemplate" class="org.springframework.jndi.JndiTemplate">
    <property name="environment">
        <props>
            <prop key="java.naming.factory.initial">com.sun.jndi.fscontext.RefFSContextFactory</prop>
            <prop key="java.naming.provider.url">file:///c:\windows\temp</prop>
        </props>
    </property>
</bean>

但是除了Java代码外,没有找到如何与之绑定:fsJndiTemplate.bind(name, obj)来自其他bean的init-method。有什么办法声明性地做到这一点?


问题答案:

你可以创建一个使用JndiTemplate绑定名称的对象映射的JndiExporter:

<bean id="jndiExporter" class="org.xxx.JndiExporter">
    <property name="jndiTemplate" ref="jndiTemplate">
    <property name="objects">
          <map>
            <entry key="name1" value="bean1"/>
            <entry key="name2" value="bean2"/>
            <entry key="name3" value="bean3"/>
            <entry key="name4" value="bean4"/>
          </map>
    </property>
</bean>

你的JndiExporter必须实现BeanFactoryAware才能使用注入的BeanFactory检索spring bean。



 类似资料:
  • 问题内容: 我们有一个普通的独立spring应用程序,我们需要将jdbc数据源放在jndi中。(我们使用jboss treecache,它需要数据源位于jndi中)。 一些谷歌搜索人员发现了大多数使用Spring的jndi查找示例,其中已经在jndi中放置了一个对象(通过tomcat或应用程序服务器等),但是我们需要另外的方法:我有一个普通的数据源Spring bean,我将其注入到其他服务中,但

  • 我不希望GUI代码(即JavaFX类)出现在我的域对象中。 我需要编写一个适配器类来将我的域对象转换为JavaFX树吗?然后将侦听器添加到树中,并将更改映射回域对象?还是有更好的办法?

  • 我有以下代码: 生日属性的类型为java.time。LocalDate,并且属于类Person。因为我使用JPA,所以我不想使用JavaFX属性。上述代码无法编译。编译器的错误消息是: 我该如何解决这个问题? 更新:我的个人类具有以下代码: 控制器类:

  • 问题内容: 我是否可以使用标准方法将自己的自定义对象添加到Map,然后将其正确编组到MapMessage中?当前,我收到无效对象类型消息。我注意到WebSphere有解决方案,但是我正在寻找不受特定AS约束的东西,如果没有这种方法,也许JBoss支持的东西会起作用。 如何在WebSphere中进行操作:http : //publib.boulder.ibm.com/infocenter/dmndh

  • KnockoutJS中的声明性绑定提供了一种将数据连接到UI的强大方法。 了解绑定和Observable之间的关系非常重要。 从技术上讲,这两者是不同的。 您可以使用普通的JavaScript对象作为ViewModel,KnockoutJS可以正确处理View的绑定。 如果没有Observable,UI中的属性将仅首次处理。 在这种情况下,它无法根据基础数据更新自动更新。 要实现此目的,必须将绑定

  • 问题内容: 我在将表单回发到控制器时遇到很多困难,该表单应该仅包含用户可以编辑的对象的数组列表。 表单可以正确加载,但是在发布时,似乎从未实际发布过任何内容。 这是我的表格: 上面的工作正常,它可以正确加载列表。但是,当我POST时,它返回一个空对象(大小为0)。我相信这是由于缺少造成的,但是无论如何这里是控制器POST方法: 我尝试添加一个,但是无论我做什么,都会导致异常。 我试过了: 我无法访