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

来源:互联网 发布:c%2b%2b编程入门 编辑:程序博客网 时间:2024/05/15 22:57
【0】README
0)intro to jndi, plase visit intro to jndi;
1)本文译自 Configuring Spring MVC JdbcTemplate with JNDI Data Source in Tomcat;
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的方式获取
@Configurationpublic 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 0
原创粉丝点击