spring junit测试jar包下载地址
测试方法:
测试时,会发现springConfig注入容器失败,为null值
解决方案:
修改测试类,新增 @RunWith 和 @ContextConfiguration 注解
/**
* @Author: Ron
* @Create: 2020 14:08
*/
@RunWith(SpringJUnit4ClassRunner.class)
//@ContextConfiguration(value = {"/setBean.xml"}) //用于xml文件配置
@ContextConfiguration(classes = {SpringConfig.class}) //用于config配置文件
public class TestSpring5 {
@Autowired
private SpringConfig springConfig;
@Test
public void testService1() {
System.out.println(springConfig+"对象注入成功。。。");
UserDaoImpl userDao = springConfig.test01();
System.out.println(userDao);
userDao.save();
}
}
基于config配置类 SpringConfig
/**
* @Author: Ron
* @Create: 2020 8:47
*/
@Configuration
@Component
@ComponentScan(basePackages = {"com.test.spring5"})
public class SpringConfig {
@Bean
public UserDaoImpl test01(){
System.out.println("bean对象创建成功");
return new UserDaoImpl();
}
}
基于XML配置文件 setBean.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" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 开启注解扫描,base-package:指定扫描的包,会扫描该包及其子子孙孙包下的所有类 -->
<context:component-scan base-package="com.test.spring5"></context:component-scan>
</beans>
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(value = {"/setBean.xml"})
注解说明:
@RunWith:用于指定junit运行环境,是junit提供给其他框架测试环境接口扩展,为了便于使用spring的依赖注入,spring提供了org.springframework.test.context.junit4.SpringJUnit4ClassRunner作为Junit测试环境。
@ContextConfiguration: 这里可以用classes来直接导入同包下写的配置类。或者导入配置文件。
测试成功: