봄 学习 (二 十六) - @ ContextConfiguration, @ RunWith (SpringJUnit4ClassRunner.class), @ ComponentScan

@RunWith (SpringJUnit4ClassRunner.class), @ ContextConfiguration 的 意思

@ContextConfiguration이 주석은 일반적으로 @RunWith(SpringJUnit4ClassRunner.class)의 통합 사용을 테스트하는 데 사용

클래스가 주석을 추가 할 때 @Component, 그는 자동으로 구성되어있는 Spring 설정 파일을 표시 할 필요가 없습니다, 콩된다. 이 콩은 두 가지 방법으로, 자바와 XML 방식 방법으로 일반적으로 수집. 이러한 콩 수집 할 때 우리가 테스트 클래스에서 사용하고자하는 경우, @Autowired도입 콩 주석이를 수집 할 때, 단지 추가하려면이 테스트 클래스주고 @ContextConfiguration우리가 테스트 클래스의 일부를 가져올 빈을 표시하는 주석을.

XML

노인을위한 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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd > <!-- 自动扫描该包 --> <context:component-scan base-package="com" /> </beans>

의이 XML 파일 <context:component-scan base-package="com" />빈 가방 닷컴에서 레이블이 자동으로 모든 수신을 검색합니다.

여기에서 우리는 테스트를 할 수있을 것입니다.

일반 쓰기 :

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:/*.xml"})
public class CDPlayerTest { }

@ContextConfiguration브래킷 locations = {"classpath*:/*.xml"}, 모든 .xml 파일의 클래스 경로가 방금 만든 XML 파일이 포함됩니다, 그래서 자동으로 다음 수업 시간에 테스트 할 수 있습니다, 당신이 얻을 수있는 빈의 내부를 스캔 포함되어 있습니다 말한다 사용하는 @Autowired모든 콩을 얻을 수있는 주석 전에 패키지에서 자동 스캔을

classpath和classpath*区别:

  • 클래스 경로 : 만 파일을 찾을 수 클래스 경로를 찾습니다.

  • 클래스 경로 * :이 클래스 경로는, 또한 그것을 찾을 수있는 jar 파일 (클래스 패스)를 포함 포함뿐만 아닙니다.

@ComponentScan

당신은 매우 간단합니다 자바 방법을 사용하는 경우, 우리는 단지 위의이 클래스에 추가해야 우리가 대신 XML 파일의 자바 클래스를 생성 할 수 있습니다, 그래서 복잡 쓰기 XML 문서를하지 않아도 @Configuration, 다음 추가 코멘트 @ComponentScan개방에 주석을 노트 쓰기 물건을 괄호 안에하지 않았다 경우 자동 스캔, 같은 @ 스캔 구성 클래스 패키지를 기본 ComponentScan.

@Configuration
@ComponentScan
public class CDPlayConfig { }

당신이 그것을 테스트하려는 경우이 시점에서, 당신은 쓸 수 있습니다 :

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=CDPlayConfig.class)
public class CDPlayerTest { }

XML에 비해,이 방법의 공식 대변인 인 아주 멋진하지 않습니다.

봄 부팅 테스트에서

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class Test { }

주석 @SpringBootTest SpringBoot 메인 클래스 콩에 도입하는 것이이 수단이 모두 포함되어 있습니다.

이 때 SpringBoot 주요 클래스는 콜렉터 빈으로 사용된다. 위의 유사 CDPlayConfig.

@SpringBootApplication
@SpringBootConfiguration
@ComponentScan(basePackages = {"com.bihang.*"})
public class CarOrderWebApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(CarOrderWebApplication.class); } public static void main(String[] args) { SpringApplication.run(CarOrderWebApplication.class, args); } }

转自:https://www.cnblogs.com/bihanghang/p/10023759.html

추천

출처www.cnblogs.com/gllegolas/p/11817035.html