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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"
default-lazy-init="false">
<!-- data source -->
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"
value="java:comp/env/jdbc/MyTestProject" />
</bean>
<!-- 配置数据源 供测试用-->
<bean id="dataSourceDebug"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
</property>
<property name="url"
value="jdbc:sqlserver://192.168.0.1\SQLEXPRESS:1433;dataBaseName=Test;loginTimeout=3;">
</property>
<property name="username" value="sa"></property>
<property name="password" value="123"></property>
</bean>
<bean id="abstractDao" abstract="true">
<!--
<property name="dataSource" ref="dataSourceDebug"></property>
-->
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="firstDao" class="com.wcg.FirstDaoImpl"
parent="abstractDao">
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- Spring context loader --> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <servlet> <description>测试FirstDao</description> <display-name>FirstServlet</display-name> <servlet-name>FirstServlet</servlet-name> <servlet-class>com.servlet.FirstServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FirstServlet</servlet-name> <url-pattern>/servlet/FirstServlet</url-pattern> </servlet-mapping> <!-- jdbc resource --> <resource-ref> <res-ref-name>jdbc/MyTestProject</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app>
//FirstDao.java
package com.wcg;
public interface FirstDao {
public int Create(String name);
}
//FirstDaoImpl.java
package com.wcg;
import java.util.HashMap;
import java.util.Map;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
public class FirstDaoImpl extends SimpleJdbcDaoSupport implements FirstDao {
public int Create(String name) {
String sql = "insert into T (Name) values(:Name)";
Map<String, Object> param = new HashMap<String, Object>();
param.put("Name", name);
return this.getSimpleJdbcTemplate().update(sql, param);
}
}
//FirstServlet.java
//...
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
ServletContext sc = request.getSession().getServletContext();
WebApplicationContext ctx = (WebApplicationContext)sc.getAttribute("org.springframework.web.context.WebApplicationContext.ROOT");
String name = request.getParameter("name");
FirstDao fd = (FirstDao) ctx.getBean("firstDao");
fd.Create(name);
out.println("Done");
out.flush();
out.close();
}
//...
测试,web容器之外的测试类.
//Test.java
package com.wcg;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
//ApplicationContext ctx = new ClassPathXmlApplicationContext("..\\applicationContext.xml");
ApplicationContext ctx = new FileSystemXmlApplicationContext("D:\\proj_ja\\java\\TestWeb\\WebRoot\\WEB-INF\\applicationContext.xml");
FirstDao fd = (FirstDao) ctx.getBean("firstDao");
fd.Create("username");
System.out.println("done");
}
}