Java 如何在Spring中使用WebLogic提供的JNDI数据源?

Java 如何在Spring中使用WebLogic提供的JNDI数据源?,java,spring,weblogic,datasource,jndi,Java,Spring,Weblogic,Datasource,Jndi,SpringJavadoc关于DriverManager数据源类的文章中说,这个类非常简单,建议使用它 使用容器提供的JNDI数据源。这样的数据源可以通过JndiObjectFactoryBean在SpringApplicationContext中作为数据源bean公开 问题是:如何做到这一点 例如,如果我想让DataSourceBean访问我的custo oracle数据库,那么我需要什么?在上下文配置等中写入什么?要访问JNDI数据源,请执行以下操作: <bean id="dbData

SpringJavadoc关于DriverManager数据源类的文章中说,这个类非常简单,建议使用它

使用容器提供的JNDI数据源。这样的数据源可以通过JndiObjectFactoryBean在SpringApplicationContext中作为数据源bean公开

问题是:如何做到这一点


例如,如果我想让DataSourceBean访问我的custo oracle数据库,那么我需要什么?在上下文配置等中写入什么?

要访问JNDI数据源,请执行以下操作:

<bean id="dbDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="jdbc/MyDatabase"/>
</bean>

或者看看spring的“jee”模式

数据库连接的详细信息在WebLogic中配置,应用程序访问
通过jndi名称创建数据库

或使用基于Java的配置,并按如下方式执行:

@Bean(destroyMethod = "")
public DataSource dataSource() throws NamingException{
    Context context = new InitialContext();
    return (DataSource)context.lookup("jdbc.mydatasource");
}

还有另一种选择:

<jee:jndi-lookup id="dbDataSource" jndi-name="jdbc/MyLocalDB"
        expected-type="javax.sql.DataSource" />

您可以使用以下jndi配置

<beans:bean id="weblogicDataSource" class="org.springframework.remoting.rmi.JndiRmiProxyFactoryBean">
    <beans:property name="jndiName" value="ConnectionPoolJNDINameAsConfigured"></beans:property>
    <beans:property name="jndiEnvironment">
        <beans:props>
            <beans:prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</beans:prop>
            <beans:prop key="java.naming.provider.url">iiop://localhost:7001</beans:prop>
        </beans:props>
    </beans:property>
    <beans:property name="serviceInterface" value="javax.sql.DataSource"></beans:property>
</beans:bean>
举例说明 私有数据源

和相应的setter。现在,根据您的实现思想,您可以自由地使用JDBCTemplate或SimpleJDBCall等

  • 希望这会有所帮助
<beans:bean id="xxxx" class="xxxxxxxx">
    <beans:property name="wlDataSource"  ref="weblogicDataSource" />
</beans:bean>
import javax.sql.DataSource;