论坛首页 Java企业应用论坛

是否可以用jndi引用已有的 DataSource?

浏览 12761 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-03-31  
我的系统中现在有一个在spring中定义的 DataSource,代码如下:
<bean id="MyDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <!-- results in a setDriverClassName(String); call -->
        <property name="driverClassName">
            <value>com.mysql.jdbc.Driver</value>
        </property>
        <property name="url">
            <value>jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=gb2312</value>
        </property>
        <property name="username">
            <value>lyo</value>
        </property>
		<property name="password">
            <value>lyo</value>
        </property>
		
		<property name="defaultAutoCommit"> 
            <value>true</value> 
        </property>
		
    </bean>


有些情况,我不想用IOC使用数据源,例如在 jsp中,我希望直接通过JDNI的方式在查找这个数据源, 就像这样:

Context ctx=new InitialContext();;
DataSource ds=(DataSource);ctx.lookup("jdbc/mysql");;
...........................................................................

我不想在 Tomcat控制台中添加数据源,想通过修改spring配置文件达到这个目的, 比如:
<property name="jndi">
    <value>jdbc/mysql</value>
</property>

但发现不行,因为 dataSource没有 jndi这个属性.无法添加这个功能,应该怎样做呢?
   发表时间:2005-04-01  
tomcat中的jndi叫dbcp,在tomcat中的server。xml配置一个dbcp,就可以在spring。xml中通过你的方法得到。
0 请登录后投票
   发表时间:2005-04-01  
<bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
		<property name="jndiName"><value>jdbc/mysql</value></property>
	</bean>
0 请登录后投票
   发表时间:2005-04-01  
楼主是想自己实现一个jndi?jndi都是容器提供的服务,当然你自己也可以mock一个出来,可是不知道你这样做有什么意义?你还不如用一个locator来查找你的datasource。
0 请登录后投票
   发表时间:2005-04-06  
SuperRubbish 写道
<bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
		<property name="jndiName"><value>jdbc/mysql</value></property>
	</bean>


但是我得前提是server中没有配置过 Jndi,还能这样引用么,spring可以用这个JndiObjectFactoryBean 到容器注册一个 jndi么?然后我就可以在jsp中使用这个jdbc/mysql 了?
0 请登录后投票
   发表时间:2005-04-06  
rongsantang 写道
楼主是想自己实现一个jndi?jndi都是容器提供的服务,当然你自己也可以mock一个出来,可是不知道你这样做有什么意义?你还不如用一个locator来查找你的datasource。


现在问题是我得datasouce在 server中没有配置jndi,想用配置spring的方式来实现一个jndi,可以做到么
0 请登录后投票
   发表时间:2005-04-06  
lyo 写道
rongsantang 写道
楼主是想自己实现一个jndi?jndi都是容器提供的服务,当然你自己也可以mock一个出来,可是不知道你这样做有什么意义?你还不如用一个locator来查找你的datasource。


现在问题是我得datasouce在 server中没有配置jndi,想用配置spring的方式来实现一个jndi,可以做到么


不可以!
0 请登录后投票
   发表时间:2005-04-06  
pikachu 写道
lyo 写道
rongsantang 写道
楼主是想自己实现一个jndi?jndi都是容器提供的服务,当然你自己也可以mock一个出来,可是不知道你这样做有什么意义?你还不如用一个locator来查找你的datasource。


现在问题是我得datasouce在 server中没有配置jndi,想用配置spring的方式来实现一个jndi,可以做到么


不可以!

你的意思是说如果server 中事先没有定义过数据源的 jndi,spring是不能给他装配一个的. 多谢!
0 请登录后投票
   发表时间:2005-04-06  
lyo 写道

你的意思是说如果server 中事先没有定义过数据源的 jndi,spring是不能给他装配一个的. 多谢!


不能
0 请登录后投票
   发表时间:2005-04-06  
JNDI DataSource只能用于J2EE environments
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics