1. pom.xml依赖文件配置:
- org.springframework
- commons-dbutils
- mysql
- c3p0
- junit
2. 编写IoC配置
- 创建账户实体类com.test.domain.Account
- 创建账户业务层接口com.test.service.IAccountService
- 创建业务层接口实现类com.test.service.impl.AccountServiceImpl
- 业务层需要调用持久层所以定义IAccountDao,并定义set方法使得spring可以提供注入
- 创建账户持久层接口com.test.dao.IAccountDao
- 在业务层接口实现类AccountServiceImpl中调用持久层dao中的方法
- 创建账户持久层实现类AccountDaoImpl实现接口方法并调用QueryRunner对象,同时创建set方法供spring提供注入
- 在账户持久层实现类AccountDaoImpl中调用QueryRunner中的query和update方法并书写对应的sql语句
3.编写bean.xml文件
- 从spring官网找到头文件
- 配置service,并注入dao对象
- 因此配置dao对象,并注入QueryRunner对象
- 因此配置QueryRunner对象,并注入数据源
- QueryRunner对象是单例对象,所以加上scope属性并设定值为prototype
- 因此配置数据源com.mchange.v2.c3p0.ComboPooledDataSource,并配置连接数据库的信息:driverClass、jdbcUrl、user、password
4.测试IoC配置
- 创建com.test.test.AccountServiceTest
- 创建方法并加上注解Test
- 第一步:获取容器使用获取bean.xml的方式来创建对象ac
- 第二步:得到业务层对象as,使用ac中的getBean方法
- 第三步:执行方法,创建List集合对象accounts并遍历
5.关于接口和实现类的理解
-
为什么要用Service接口?是让表示层不依赖于业务层的具体实现。为什么要用DAO接口?是让业务层不依赖于持久层的具体实现。举个例子,用DAO接口,那么持久层用Hibernate,还是用iBatis,还是 JDBC,随时可以替换,不用修改业务层Service类的代码。