1.针对spring进行单元测试的时候,在测试类中直接可以注入spring配置文件,不需要通过ApplicationContext获取
UserServiceTest.java
package com.test.spring.dao;
import javax.annotation.Resource;
import org.junit.Test;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import com.test.spring.model.User;
import com.test.spring.service.UserService;
@ContextConfiguration("classpath:beans.xml")
public class UserServiceTest extends AbstractJUnit4SpringContextTests {
private UserService userService;
public UserService getUserService() {
return userService;
}
@Resource(name = "userService")
public void setUserService(UserService userService) {
this.userService = userService;
}
@Test
public void testAdd() {
this.userService.add(new User());
}
}
2.获取spring配置文件中的某个bean时,可以指定具体类型,不需要强制转换。
UserServiceTest2.java
package com.test.spring.dao;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.test.spring.model.User;
import com.test.spring.service.UserService;
public class UserServiceTest2 {
@Test
public void testAdd() {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
// UserService userService = (UserService) context.getBean("userService");
UserService userService = context.getBean("userService", UserService.class);
userService.add(new User());
}
}
3.spring3以后的版本中除了xml和annotation两种配置方式外,还新增了javaConfig配置方式
AppConfig.java
package com.test.spring.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.test.spring.dao.UserDAO;
import com.test.spring.dao.impl.UserDAOImpl;
import com.test.spring.service.UserService;
import com.test.spring.service.impl.UserServiceImpl;
@Configuration
public class AppConfig {
@Bean
public UserDAO userDAO() {
return new UserDAOImpl();
}
// 相当于xml中:<bean id = "userDAO" class="userDAO()"/>
@Bean
public UserService userService() {
UserServiceImpl service = new UserServiceImpl();
service.setUserDAO(userDAO());
return service;
}
// 相当于xml中:<bean id = "userService" class="userService()"/>
}
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"
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">
<context:component-scan base-package="com.test.spring.config"></context:component-scan>
</beans>
500

被折叠的 条评论
为什么被折叠?



