봄 @ContextConfiguration 코멘트

원본 주소 : https://www.cnblogs.com/bihanghang/p/10023759.html

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

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

XML

의 노인에 대한 XML 방법을 살펴 보자 :

<? XML 버전 = "1.0"인코딩 = "UTF-8"?> 

<콩의 xmlns = "http://www.springframework.org/schema/beans" 
    의 xmlns :이 xsi = "http://www.w3.org / 2001 / 된 XMLSchema 인스턴스 "의 xmlns : p ="http://www.springframework.org/schema/p " 
    의 xmlns : 컨텍스트 ="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>
 
    <! -自动扫描该包->
    <배경 : 성분 스캔베이스 -패키지 = "COM"/> 
</ 콩>

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

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

일반 쓰기 :

@RunWith (. SpringJUnit4ClassRunner 클래스 ) 
@ContextConfiguration (위치 = { "클래스 경로 * / * XML." })
 공용  클래스 CDPlayerTest { 

}

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

classpath和classpath*区别:

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

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

자바

당신은 매우 간단합니다 자바 방법을 사용하는 경우, 우리는 위의이 클래스에 추가 할 필요가, 우리가 대신 XML 파일의 자바 클래스를 만들 수 있으므로 복잡한 XML 문서를 작성하지 않아도 @Configuration다음, 코멘트 추가 @ComponentScan열 주석을 자동 스캔, 음이 괄호 안에 물건을 작성하지 않은 경우, 같은 @ ComponentScan 기본 검색 구성 클래스 패키지.

@Configuration 
@ComponentScan 
공공  클래스 CDPlayConfig { 

}

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

@RunWith (SpringJUnit4ClassRunner. 등급 ) 
@ContextConfiguration (클래스 = CDPlayConfig. 등급 )
 공용  클래스 CDPlayerTest { 

}

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

봄 부팅 테스트에서

@RunWith (SpringJUnit4ClassRunner. 클래스 ) 
@SpringBootTest 
공용  클래스 테스트 { 
}

이 주석 @SpringBootTest SpringBoot가 모두 포함 된 메인 클래스 콩에 도입 것을 의미한다.

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

@SpringBootApplication 
@SpringBootConfiguration 
@ComponentScan (basePackages = { ". com.bihang *" })
 공용  클래스 CarOrderWebApplication는 확장 SpringBootServletInitializer { 
    @Override가 
    보호 SpringApplicationBuilder의 구성 (SpringApplicationBuilder 빌더) {
         반환 (. CarOrderWebApplication builder.sources 클래스 ); 
    } 

    공공  정적  무효 메인 (문자열 []에 args) { 
        SpringApplication.run (. CarOrderWebApplication 클래스 , 인수); 
    } 

}

 

추천

출처www.cnblogs.com/dyh004/p/11584129.html