Run @Autowired's junit test on a normal jar project on the client side

 

 Reference URL: http://forum.spring.io/forum/spring-projects/container/104173-runwith-componentscan-does-not-work

 

import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.support.AnnotationConfigContextLoader;

@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes={AppConfig.class})
public abstract class BaseTestClass extends AbstractJUnit4SpringContextTests  {

}

 

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.web.client.RestTemplate;

@Configuration
@ComponentScan(basePackages = "com.accenture", excludeFilters = @Filter(type = FilterType.ANNOTATION, value = Configuration.class))
public class AppConfig {
	
	@Bean
	public RestTemplate restTemplate() {
	   return new RestTemplate();
	}
	
}

 

 

import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

import com.accenture.dataexchange.api.client.DataExchangeClientService;

public class AppTest extends BaseTestClass {
	
	@Autowired
	private DataExchangeClientService service;
	
	@Test
	public void test() {
		System.out.println("hello");
	}
	
}

 

 

 

If there is a database operation, please refer to the following configuration

@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes={AppConfig.class, DataSourceConfig.class})
@TransactionConfiguration(transactionManager = "txManager")
public abstract class BaseTestClass extends AbstractTransactionalJUnit4SpringContextTests {

}

 

import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.support.AnnotationConfigContextLoader;

@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes={AppConfig.class})
public abstract class BaseTestClass extends AbstractJUnit4SpringContextTests  {

}

 

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.web.client.RestTemplate;

@Configuration
@ComponentScan(basePackages = "com.accenture", excludeFilters = @Filter(type = FilterType.ANNOTATION, value = Configuration.class))
public class AppConfig {
	
	@Bean
	public RestTemplate restTemplate() {
	   return new RestTemplate();
	}
	
}

 

 

import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

import com.accenture.dataexchange.api.client.DataExchangeClientService;

public class AppTest extends BaseTestClass {
	
	@Autowired
	private DataExchangeClientService service;
	
	@Test
	public void test() {
		System.out.println("hello");
	}
	
}

 

 

 

如果有数据库操作  参照下面的 配置

@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes={AppConfig.class, DataSourceConfig.class})
@TransactionConfiguration(transactionManager = "txManager")
public abstract class BaseTestClass extends AbstractTransactionalJUnit4SpringContextTests {

}

 

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326562973&siteId=291194637