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

【0】README
0)intro to jndi, plase visit intro to jndi
2)本文旨在分析如何通过springmvc 获取 JNDI 数据源 以连接到数据库;
3)for jndi datasource for db conn pooling in tomcat, please visit  Configuring JNDI DataSource for Database Connection Pooling in Tomcat

【1】具体steps
step1)数据库请自行创建;
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>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值