/*jar包
C:/Program Files/Java/jdk1.6.0_14/jre/lib/resources.jar
C:/Program Files/Java/jdk1.6.0_14/jre/lib/rt.jar
C:/Program Files/Java/jdk1.6.0_14/jre/lib/jsse.jar
C:/Program Files/Java/jdk1.6.0_14/jre/lib/jce.jar
C:/Program Files/Java/jdk1.6.0_14/jre/lib/charsets.jar
C:/Program Files/Java/jdk1.6.0_14/jre/lib/ext/dnsns.jar
C:/Program Files/Java/jdk1.6.0_14/jre/lib/ext/localedata.jar
C:/Program Files/Java/jdk1.6.0_14/jre/lib/ext/sunjce_provider.jar
C:/Program Files/Java/jdk1.6.0_14/jre/lib/ext/sunmscapi.jar
C:/Program Files/Java/jdk1.6.0_14/jre/lib/ext/sunpkcs11.jar
D:/myeclise6.6/eclipse/plugins/org.junit4_4.3.1/junit.jar
D:/java5/spring/spring-framework-2.5.6-with-dependencies/spring-framework-2.5.6/dist/spring.jar
D:/java5/spring/spring-framework-2.5.6-with-dependencies/spring-framework-2.5.6/lib/jakarta-commons/commons-logging.jar
D:/java5/spring/spring-framework-2.5.6-with-dependencies/spring-framework-2.5.6/lib/jakarta-commons/commons-dbcp.jar
D:/java5/spring/spring-framework-2.5.6-with-dependencies/spring-framework-2.5.6/lib/jakarta-commons/commons-pool.jar
D:/java5/softjar/mysql-connector-java-3.1.13-bin.jar
com.bjsxt.dao.UserDAO.java
package com.bjsxt.dao;
import com.bjsxt.model.User;
public interface UserDAO {
public abstract void save(User user);
}
com.bjsxt.dao.impl.UserDAOImpl.java
package com.bjsxt.dao.impl;
import java.sql.Connection;
import java.sql.SQLException;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import javax.sql.DataSource;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;
@Component
@Scope("prototype")
public class UserDAOImpl implements UserDAO {
private DataSource dataSource;
@PostConstruct
public void init() {
System.out.println("init");
}
@PreDestroy
public void destroy() {
System.out.println("destroy");
}
public UserDAOImpl() {
}
public void save(User user) {
try {
Connection conn = dataSource.getConnection();
conn.createStatement().executeUpdate("insert into user values (null, 'a')");
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println("user saved!");
//throw new java.lang.RuntimeException("异常发生了!");
}
public DataSource getDataSource() {
return dataSource;
}
@Resource
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
}
com.bjsxt.model.User.java
package com.bjsxt.model;
public class User {
}
com.bjsxt.service.UserService.java
package com.bjsxt.service;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;
@Component
public class UserService {
private UserDAO userDAO;
public UserDAO getUserDAO() {
return userDAO;
}
@Resource
public void setUserDAO( UserDAO userDAO) {
System.out.println("set");
this.userDAO = userDAO;
}
public void add(User user) {
System.out.println(this.userDAO.getClass());
this.userDAO.save(user);
}
}
com.bjsxt.service.test.UserServiceTest.java
package com.bjsxt.service.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.bjsxt.model.User;
import com.bjsxt.service.UserService;
public class UserServiceTest {
@Test
public void testAdd() throws Exception {
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
UserService userService = (UserService)ctx.getBean("userService");
userService.add(new User());
ClassPathXmlApplicationContext context = (ClassPathXmlApplicationContext)ctx;
context.destroy();
}
}
beans.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"
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">
<context:annotation-config />
<context:component-scan base-package="com.bjsxt"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<!-- results in a setDriverClassName(String) call -->
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/spring</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>root</value>
</property>
</bean>
</beans>
创建数据库语句:
create database spring;
use spring;
create table user(id int primary key auto_increment,name varchar(20));