스프링 프로필

제 III : 고급 어셈블리의 1.bean

프로필 : 개발 환경 (DEV) QA 환경 (QA), 생산 (자극)

1. 구성 프로파일 콩 :

1.1 주석 계 형태 :

빈을 지정할 수 있습니다 주석이 프로필을 속 @profile, @profile은 Spring3.1 시간에 수업 시간에 메모를 추가, Spring3.2는 방법에 적용하기 시작했다
@Configuration
 공공  클래스 DataSourceConfig { 
  @Bean (destroyMethod = "종료" ) 
  @profile는 ( "DEV" )
   공공 데이터 소스 embeddedDataSource는 () {
     반환  ) EmbeddedDatabaseBuilder을 ( 
        .setType (EmbeddedDatabaseType.H2) 
        .addScript ( "클래스 경로 : schema.sql" ) 
        .addScript ( "클래스 경로 : 시험 data.sql" ) 
        .build (); 
  } 
  @Bean 
  @profile는 ( "찌르다"= 새로운 인 JndiObjectFactoryBean (); 
    jndiObjectFactoryBean.setJndiName ( "JDBC / MYDS" ); 
    jndiObjectFactoryBean.setResourceRef ( 사실 ); 
    jndiObjectFactoryBean.setProxyInterface (는 javax.sql.DataSource. 클래스 );
    반환 () (데이터 소스) jndiObjectFactoryBean.getObject 단계; 
  } 
}

 

1.2.xml 형태 :

<XML 버전 = "1.0" "UTF-8"인코딩 =?> 
<콩의 xmlns = "http://www.springframework.org/schema/beans" 
  에 xmlns :이 xsi = "http://www.w3.org / 2001 / 된 XMLSchema 인스턴스 "의 xmlns : JDBC ="http://www.springframework.org/schema/jdbc " 
  의 xmlns : JEE ="http://www.springframework.org/schema/jee "의 xmlns : p =" http://www.springframework.org/schema/p " 
  XSI :의 schemaLocation = "
     HTTP : // www.springframework.org/schema/jee 
    HTTP : // www.springframework.org/schema/jee/spring-jee. XSD 
    HTTP : // www.springframework.org/schema/jdbc 
    HTTP : // www.springframework.조직 / 스키마 / JDBC / 스프링 jdbc.xsd 
    HTTP :// www.springframework.org/schema/beans 
    HTTP : // www.springframework.org/schema/beans/spring-beans.xsd ">
 
  <콩 프로파일 ="dev에 "> 
    <JDBC : 임베디드 데이터베이스 ID ="는 dataSource "유형 ="H2 "> 
      <JDBC : 스크립트 위치 ="클래스 경로 : schema.sql "/는> 
      <JDBC : 스크립트 위치 ="클래스 경로 : 테스트 data.sql "/> 
    </ JDBC : 임베디드 데이터베이스> 
  </ 콩 > 
  
  <콩 프로필 = "자극"> 
    <JEE : JNDI 룩업 식 데이터 소스 "" 
      지연 -init = "true"를 
      JNDI -name = "JDBC / MYDATABASE" 
      자원 -ref = "참"
      프록시 - 인터페이스 = "는 javax.sql.DataSource"/> 
  </ 콩>

  <콩 프로필 = "품질"> 
    <콩 ID = "는 dataSource" 클래스 = "org.apache.commons.dbcp.BasicDataSource는" 
          파괴 -method = "가까운" 
          URL : P = "" 
          P : driverClassName = "" 
          P : 사용자 이름을 = "" 
    /> 
  </ 콩> 
</ 콩>
          

 

2. 어떻게 활성화?

두 속성 : spring.profiles.default 및 spring.profiles.active

다음 기본을 찾을 수없는 경우 활성 프로필이없는하지 않을 경우 먼저, 프로필의 활성 봄을 찾을 수 있습니다.

이 두 가지 속성을 설정하는 방법은 여러 가지가 있습니다 :

  • DispatcherServlet으로의 초기화 매개 변수;
  • 웹 애플리케이션 컨텍스트 매개 변수로;
  • JNDI 항목으로;
  • 환경 변수로;
  • JVM 시스템 특성으로;
  • 통합 테스트 클래스에서 @ActiveProfiles에게 주석 구성을 사용.

 

DispatcherServlet을 1로 초기화 파라미터 INIT-PARAM
<! -在上下文中设置프로필的默认值-> 
16 <상황 PARAM> 
17 <PARAM 이름> spring.profiles.default </ PARAM 이름> 
18 <PARAM 값> DEV </ PARAM 값 > 
19 </ 문맥 PARAM> 
21 <수신기> 
22 <리스너 클래스> 
23 org.springframework.web.context.ContextLoaderListener 
24 </ 리스너 클래스> 
25 </ 청취자> 
26    
27 <서블릿> 
28 <서블릿 이름 > appServlet </ 서블릿 이름> 
29 <서블릿 클래스> org.springframework.web.servlet.DispatcherServlet </ 서블릿 클래스> 
30 <! - 서블릿中设置在的默认值프로필 -> 
31 <INIT-PARAM > 
32 <PARAM 이름> spring.profiles.default </ PARAM 이름>


33 <PARAM 값> DEV </ PARAM 값> 34 </ INIT-PARAM> 35 <시작시로드> 1 </ 시작시로드> 36 </ 서블릿>

37 <서블릿 매핑> 38 <서블릿 이름> appServlet </ 서블릿 이름> 39 <URL 패턴> / </ URL 패턴> 40 </ 서블릿 매핑>

사용 프로필 테스트 :

@RunWith (SpringJUnit4ClassRunner. 클래스 ) 
@ContextConfiguration (클래스 = TestConfig. 클래스 ) 
@ActiveProfiles ( "DEV" )
 공개  수업 MagicExistsTest { 
........ 
}

추천

출처www.cnblogs.com/crazy-lc/p/12134073.html