Spring配置JNDI数据源

       

spring中配置JNDI

 

在spring中配置,这样就可以动态切换在本地,还是服务器上

applicationContext-databaseSource-jndi.xml   通过JNDI访问数据源

applicationContext-databaseSource-jdbc.xml   通过本地配置jDBC访问数据源

 

在applicationContext.xml中引入即可:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

	<!--数据库连接  -->
	<import resource="applicationContext-databaseSource-xxxx.xml" /> //xxxx指的是jndi或是jdbc
</beans>

 

 

applicationContext-databaseSource-jndi.xml 具体配置方式如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
	<bean id="activityToon_r" class="org.springframework.jndi.JndiObjectFactoryBean">
		<property name="jndiName" value="java:comp/env/jdbc/ActivityToon_r"/>
	</bean>
	
	<bean id="activityToon_w" class="org.springframework.jndi.JndiObjectFactoryBean">
		<property name="jndiName" value="java:comp/env/jdbc/ActivityToon_w"/>
	</bean>
</beans>

 

 

applicationContext-databaseSource-jdbc.xml具体配置方式如下

 

<bean id="UCenter_w" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
	<property name="url" value="jdbc:mysql://172.28.5.92:3306/xxxx?useUnicode=true&amp;characterEncoding=UTF-8&amp;allowMultiQueries=true"/>
	<property name="username" value="xxx"/>
	<property name="password" value="xxxx"/>
</bean>

 

 

要使用:JNDI数据源需要在tomcat中配置才能获取到 Tomcat6使用的是DBCP数据源,它的配置方式如下

具体配置信息请参考:http://blog.csdn.net/lwwgtm/article/details/8222521

 

1.它可以直接配置在Server.xml中Context元素下,这时数据源就只有他所属的应用能够访问。

2.如果需要所有的应用能够访问,可以配置在$TOMCAT/conf/context.xml中,直接配置下根元素下即可。这个文件在启动tomcat的时候,所有的应用都会加载。

3.如果需要节省资源,共享同一个数据源,可以配置在Server.xml的GlobalNamingResources 这是一个全局的

 

第三种全局数据源配置:

 

//
3.在Server.xml全局的数据源配置如下:
  <GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource name="jdbc/UCenter_r" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>	
	   
//在应用中可以通过别名访问,提供别名的方式是在应用所在的元素下添加如下的子元素:
<ResourceLink name="jdbc/UCenter_r" global="jdbc/UCenter_r" type="javax.sql.DataSource"/>

 

第二种所有的应用能够共享访问配置在$TOMCAT/conf/context.xml中配置在根元素<Context></Context>中

 

 

<Resource name="jdbc/ActivityToon_r" auth="Container" type="javax.sql.DataSource"
               maxActive="10" maxIdle="30" maxWait="10000"
               username="xxxx" password="xxxx" driverClassName="com.mysql.jdbc.Driver"
                           removeAbandoned="true"
                           removeAbandonedTimeout="60"
                           logAbandoned="true" validationQuery="select 1" 
               url="jdbc:mysql://172.28.5.91:3306/xxx_activityDemo?useUnicode=true&amp;characterEncoding=UTF-8&amp;allowMultiQueries=true"/>

 

 

第一种只限当前应用访问数据源在Server.xml配置:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
	<Context docBase="/home/webapp2/XXBusinessAPI.war" path="/" reloadable="true" source="org.eclipse.jst.jee.server:ActivityBusinessAPI">
		<Resource name="jdbc/ActivityToon_r" auth="Container" type="javax.sql.DataSource"
               maxActive="10" maxIdle="30" maxWait="10000"
               username="xxxx" password="xxxx" driverClassName="com.mysql.jdbc.Driver"
                           removeAbandoned="true"
                           removeAbandonedTimeout="60"
                           logAbandoned="true" validationQuery="select 1" 
               url="jdbc:mysql://172.28.5.91:3306/xxx_activityDemo?useUnicode=true&amp;characterEncoding=UTF-8&amp;allowMultiQueries=true"/>
		<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="route_access_" suffix=".txt" pattern="common" resolveHosts="false"/>
	</Context>
</Host>

 

更具体的配置信息请看 http://blog.csdn.net/lwwgtm/article/details/8222521 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值