您的位置:首页 > 运维架构 > Tomcat

tomcat中配置jndi数据源以便spring获取

2016-06-13 16:39 253 查看
【0】README0)intro to jndi, plase visit intro to jndi1)本文译自 ConfiguringSpring MVC JdbcTemplate with JNDI Data Source in Tomcat;2)本文旨在分析如何通过springmvc 获取 JNDI 数据源 以连接到数据库;3)for jndi datasource for db conn pooling in tomcat, please visit  ConfiguringJNDI DataSource for Database Connection Pooling in Tomcat;【1】具体stepsstep1)数据库请自行创建;step2)在tomcat中配置jndi数据源:在tomcat_home/conf/context.xml 文件添加 Resource元素,代码如下:(请注意修改用户名和密码)
<Resource
name="jdbc/spring"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/usersDB"
username="root"
password="secret"
/>
step3)在spring mvc 中获取 jndi数据源step3.1)java config的方式获取
@Configuration
public class RepositoryConfig {

@Bean  // 引入jndi数据源
public JdbcTemplate getJdbcTemplate(DataSource ds) {
return new JdbcTemplate(ds);
}

/*@Bean // 使用数据源连接池 配置数据源
public BasicDataSource getDataSource() {
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost:3306/t_spring");
ds.setUsername("root");
ds.setPassword("root");
return ds;
}*/

@Bean  // 使用JNDI 配置数据源.
public DataSource dataSource() {
JndiTemplate jndiTemplate = new JndiTemplate();
DataSource dataSource = null;
try {
dataSource = (DataSource) jndiTemplate.lookup("java:comp/env/jdbc/spring");
} catch (NamingException e) {
e.printStackTrace();
}
return dataSource;
}
}
step3.2) XML 配置的方式获取
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/spring"/>
</bean>

<!-- 下面进行引用就可以了 -->
<bean id="userDao" class="net.codejava.spring.dao.UserDAOImpl">
<constructor-arg>
<ref bean="dataSource" />
</constructor-arg>
</bean>

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: