제 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 { ........ }