spring学习笔记 -- day05 spring整合Junit
来源:互联网 发布:unity3d 微信登录 ios 编辑:程序博客网 时间:2024/06/06 15:59
一、准备测试环境
1、创建项目,导入jar包
注意:要额外导入spring-test-4.2.4.RELEASE.jar
此jar包中的运行函数知道spring容器的存在。
2、整合所用的注解详解
@ContextConfiguration:用于指定spring配置文件的位置
@RunWith:用于替换Junit中的运行器
3、准备service层和dao层代码
package cn.itcast.service;/** * service层接口* @version V1.0 */public interface CustomerService {public void saveCust();public void deleteCust();public void updateCust();public void findCust();}
package cn.itcast.service.impl;import org.springframework.beans.factory.annotation.Autowired;import cn.itcast.dao.CustomerDao;import cn.itcast.service.CustomerService;/** * 业务层实现类 */public class CustomerServiceImpl implements CustomerService {private CustomerDao customerDao;public void setCustomerDao(CustomerDao customerDao) {this.customerDao = customerDao;}@Overridepublic void saveCust() {customerDao.saveCust();}@Overridepublic void deleteCust() {customerDao.deleteCust();}@Overridepublic void updateCust() {customerDao.updateCust();}@Overridepublic void findCust() {customerDao.findCust();}}
package cn.itcast.dao;/** * 持久层接口 * * @version V1.0 */public interface CustomerDao {public void saveCust();public void deleteCust();public void updateCust();public void findCust();}
package cn.itcast.dao.impl;import cn.itcast.dao.CustomerDao;public class CustomerDaoImpl implements CustomerDao {@Overridepublic void saveCust() {System.out.println("执行了保存的方法");}@Overridepublic void deleteCust() {System.out.println("执行了删除的方法");}@Overridepublic void updateCust() {System.out.println("执行了更新的方法");}@Overridepublic void findCust() {System.out.println("执行了查询的方法");}}
二、使用xml配置方式
1、编写配置文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- Service层 --> <bean id="custService" class="cn.itcast.service.impl.CustomerServiceImpl"> <property name="customerDao" ref="customerDao"></property> </bean> <!-- Dao层 --> <bean id="customerDao" class="cn.itcast.dao.impl.CustomerDaoImpl"></bean></beans>
2、编写测试类
package cn.itcast.test;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import cn.itcast.service.CustomerService;/** * 客户操作的测试类 * * @version V1.0 */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:beans.xml") // 指定spring配置文件位置public class CustTest {@Autowiredprivate CustomerService custService;@Testpublic void add() {custService.saveCust();}@Testpublic void del() {custService.deleteCust();}@Testpublic void upd() {custService.updateCust();}@Testpublic void fin() {custService.findCust();}}
三、使用纯注解配置方式
1、什么是纯注解
没有bean.xml配置的文件的方式
2、改造servcie层和dao层,使用注解配置
package cn.itcast.service.impl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import cn.itcast.dao.CustomerDao;import cn.itcast.service.CustomerService;/** * 业务层实现类 */@Service("custoemrService")public class CustomerServiceImpl implements CustomerService {@Autowiredprivate CustomerDao customerDao;@Overridepublic void saveCust() {customerDao.saveCust();}@Overridepublic void deleteCust() {customerDao.deleteCust();}@Overridepublic void updateCust() {customerDao.updateCust();}@Overridepublic void findCust() {customerDao.findCust();}}
package cn.itcast.dao.impl;import org.springframework.stereotype.Repository;import cn.itcast.dao.CustomerDao;@Repository("customerDao")public class CustomerDaoImpl implements CustomerDao {@Overridepublic void saveCust() {System.out.println("执行了保存的方法");}@Overridepublic void deleteCust() {System.out.println("执行了删除的方法");}@Overridepublic void updateCust() {System.out.println("执行了更新的方法");}@Overridepublic void findCust() {System.out.println("执行了查询的方法");}}
3、创建配置文件类
package cn.itcast.conf;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;/** * spring配置稳健类 * * @version V1.0 */@Configuration@ComponentScan(basePackages={"cn.itcast"})//配置扫描的包public class SpringConfig {}
4、编写测试类
package cn.itcast.test;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import cn.itcast.conf.SpringConfig;import cn.itcast.service.CustomerService;/** * 客户操作的测试类 * * @version V1.0 */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(classes=SpringConfig.class) // 指定spring配置文件位置public class CustTest {@Autowiredprivate CustomerService custService;@Testpublic void add() {custService.saveCust();}@Testpublic void del() {custService.deleteCust();}@Testpublic void upd() {custService.updateCust();}@Testpublic void fin() {custService.findCust();}}
四、为什么不能把注解类配置到xml中
1、配到XML中能不能用呢?
答案是肯定的,没问题,可以使用。
2、为什么不采用配置到xml中的方式呢?
这个原因是这样的:
第一:当我们在xml中配置了一个bean,spring加载配置文件创建容器时,就会创建对象。
第二:测试类只是我们在测试功能时使用,而在项目中它并不参与程序逻辑,也不会解决需求上的问题,所以创建完了,并没有使用。那么存在容器中就会造成资源的浪费。
所以,基于以上两点,我们不应该把测试配置到xml文件中。
阅读全文
0 0
- spring学习笔记 -- day05 spring整合Junit
- Spring学习笔记——整合junit
- Spring学习-15:Spring整合Junit
- 整合Spring+JPA的Junit测试笔记
- spring,Hibernate,Junit整合
- Spring整合Junit例子
- spring整合junit单元测试
- spring 整合 junit
- spring与JUnit整合
- Spring整合JUnit
- spring整合JUnit单元测试
- spring整合junit
- spring整合Junit
- Spring(十四)Spring整合junit
- spring+mybatis学习之路之错误笔记day05
- spring---整合Junit,整合web
- Spring 学习笔记--Spring 整合JDBC
- Spring学习笔记 - Spring 整合 JMS - ActiveMQ
- echarts 单独实现水波纹涟漪效果
- HDU6108 小C的倍数问题
- 【CTS】测试内容概况
- Android Application的使用及其生命周期
- mappingResources、mappingLocations、mappingDirectoryLocations、mappingJarLocations区别
- spring学习笔记 -- day05 spring整合Junit
- docker容器内存占用 之 系统cache
- 【百度之星初赛A】1002 数据分割(并查集+Set)
- 【ubuntu】U盘权限不足,只读文件系统
- 欢迎使用Markdown编辑器写博客
- 搭建tomcat环境
- with as的用法
- uva 11059 Maximum Product
- Xavier初始化方法