`

spring针对junit4的扩展以及javaConfig的配置方式

 
阅读更多

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以后的版本中除了xmlannotation两种配置方式外,还新增了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>

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics