配置Tomcat JNDI数据源
来源:互联网 发布:java字节流写入文件 编辑:程序博客网 时间:2024/06/07 01:05
以下示例基于Spring:
1、在Mysql中建立Spring数据库,数据库中建立user表
2、在tomcat目录下conf\context.xml中的<Context>标签中加入
<Resource name="jndi" auth="Container" type="javax.sql.DataSource" password="mysql5" username="root" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/spring" maxActive="5" maxIdle="2" maxWait="3000" />
3、修改项目的web.xml文件,加入
<resource-ref> <res-ref-name>jndi</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth></resource-ref>
4、在spring配置文件中配置Datasource
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/jndi"/> </bean>
我们也可以采用下面的方式,但是要加入以下命名空间 :
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-2.5.xsd">
<!-- Spring 2.0为获取J2EE资源提供了一个jee命名空间,通过jee命名空间,可以有效地简化J2EE资源的引用。 --> <jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jndi"/>
具体sample如下所示:
User.java
package cn.nevo.model;import org.springframework.stereotype.Component;/** * Entity * @author Administrator * */@Component("user")public class User { private String username; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; }}
UserDao.java
package cn.nevo.dao;import cn.nevo.model.User;public interface UserDao { public void save(User user);}
UserDaoImpl.java
package cn.nevo.dao.impl;import java.sql.Connection;import java.sql.SQLException;import javax.annotation.Resource;import javax.sql.DataSource;import org.springframework.stereotype.Component;import cn.nevo.dao.UserDao;import cn.nevo.model.User;@Component("userDao")public class UserDaoImpl implements UserDao { private DataSource dataSource; public DataSource getDataSource() { return dataSource; } //默认是by name注入 @Resource public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; System.out.println(dataSource); } public void save(User user) { Connection conn = null; try { conn = dataSource.getConnection(); conn.createStatement().executeUpdate("insert into user values (null, '" +user.getUsername()+"')"); } catch (SQLException e) { e.printStackTrace(); } finally { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } System.out.println("user saved!"); }}
UserService.java
package cn.nevo.service;import javax.annotation.Resource;import org.springframework.stereotype.Component;import cn.nevo.dao.UserDao;import cn.nevo.model.User;@Component("userService")public class UserService { private UserDao userDao; public UserDao getUserDAO() { return userDao; } @Resource(name = "userDao") public void setUserDAO(UserDao userDao) { this.userDao = userDao; } public void add(User user) { userDao.save(user); }}
LoginServlet.java
package cn.nevo.servlet;import java.io.IOException;import javax.annotation.Resource;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.nevo.model.User;import cn.nevo.service.UserService;@SuppressWarnings("serial")public class LoginServlet extends HttpServlet { private User user; public User getUser() { return user; } @Resource public void setUser(User user) { this.user = user; } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { user.setUsername(request.getParameter("username")); ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml"); UserService userService = (UserService)ctx.getBean("userService"); userService.add(user); }}
bean.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:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:jee="http://www.springframework.org/schema/jee" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd"> <!-- 隐式注册 post-processors 包括了 AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor,PersistenceAnnotationBeanPostProcessor, 也包括了前面提到的 RequiredAnnotationBeanPostProcessor。处理我们配置的annotation --> <context:annotation-config /> <!-- 要检测这些类并注册相应的bean,需要在XML中包含以下元素,其中'basePackage'是类的公共父包 (或者可以用逗号分隔的列表来分别指定包含各个类的包)。 --> <context:component-scan base-package="cn.nevo" /> <!-- 从Tomcat配置的JNDI服务获取数据源--> <!-- <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/jndi"/> </bean> --> <!-- Spring 2.0为获取J2EE资源提供了一个jee命名空间,通过jee命名空间,可以有效地简化J2EE资源的引用。 --> <jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jndi"/></beans>
index.jsp
<body> <form action="loginServlet" method="post"> UserName:<input type="text" name="username"> <input type="submit" value="Login"> </form></body>
启动tomcat访问:
0 0
- tomcat JNDI数据源配置
- Tomcat 配置JNDI 数据源
- tomcat JNDI数据源配置
- Tomcat配置JNDI数据源
- tomcat JNDI配置数据源
- Tomcat配置JNDI数据源
- Tomcat配置JNDI数据源
- tomcat配置JNDI数据源
- Tomcat配置JNDI数据源
- Tomcat配置JNDI数据源
- tomcat配置jndi数据源
- Tomcat配置JNDI数据源
- Tomcat配置JNDI数据源
- Tomcat配置JNDI数据源
- tomcat 配置JNDI 数据源
- tomcat配置JNDI数据源
- 配置Tomcat JNDI数据源
- JNDI SRPING TOMCAT 配置数据源
- 分布式事务处理两阶段提交实例
- Ubuntu:dpkg: 处理软件包 runit (--configure)时出错
- 分布式事务处理两阶段提交实例2及注意
- nginx tomcat负载均衡环境下,session的管理问题
- jquery编写选项卡Tab页跳转功能
- 配置Tomcat JNDI数据源
- androidstudio 中删除git库
- EL表达式详解
- 分布式事物示例3
- xa分布式事物管理器示例4
- plsq乱码及导出
- include等效做法,ajax返回HTML
- RF switches for RFID HF 13.56Mhz
- 面试复习——Android工程师之Java基础