@ConfigurationProperties 사용 봄 부팅

  프로젝트 개발, 우리는 때때로 프로필 정보를 원하고, 자동으로 다음과 같이 우리는 더 편리 코드를 사용, 패키지 엔티티 클래스를 읽고. 우리는 @ConfigurationProperties, 자동 포장에 사용되는 엔티티 클래스의 구성 정보를 사용할 수 있습니다. 상기 Nacos 예에 대한 구성 파일 또는 구성 센터의 구성 정보.

다음 정보 (중앙) 프로필 :

liaowenhui.datasource : 
  validationQuery : SELECT 1 
  JDBC : jdbcUrl를 mysql을 : // 192.168.xx.xx : 3306 / XXX useUnicode = TRUE & characterEncoding = UTF-8? 
  jdbcUserName : liaowenhui 
  jdbcUserPassword : liaowenhui

Entity 클래스는 DataSourceProperties.java에 부하 프로파일 정보를 정의

정보 검색 접두사 liaowenhui.datasource에서 // 구성 정보를 읽고 자동으로 엔티티 클래스의 캡슐화 
(접두사 = "liaowenhui.datasource") @ConfigurationProperties을 공개 클래스 DataSourceProperties {
개인 문자열 validationQuery; 개인 문자열 jdbcUrl; 개인 문자열 jdbcUserName; 개인 문자열 jdbcUserPassword; 공공 문자열 getValidationQuery () { 반환 validationQuery; } 공공 무효 setValidationQuery (문자열 validationQuery) { 다음은이 .validationQuery = validationQuery; } 공공 문자열 getJdbcUrl을 () { 반환 jdbcUrl을; } 공공 공극 setJdbcUrl (문자열 jdbcUrl) { .jdbcUrl = jdbcUrl; } 공공 문자열 getJdbcUserName는 () { 반환 jdbcUserName을; } 공공 공극 setJdbcUserName (문자열 jdbcUserName) { .jdbcUserName = jdbcUserName; } 공공 문자열 getJdbcUserPassword는 () { 반환 jdbcUserPassword을; } 공공 무효 setJdbcUserPassword (문자열 jdbcUserPassword) { .jdbcUserPassword =jdbcUserPassword; } }

사용 @EnableConfigurationProperties (xxx.class)는 명시 적으로 구성 정보를로드하는 데 사용되는 개체 클래스를 지정해야

@Configuration 
@EnableConfigurationProperties (DataSourceProperties.class {})
공용 클래스 DataSourceConfig { 개인 정적 최종 로거 로거 = LoggerFactory.getLogger (DataSourceConfig. 클래스 ); @Bean (destroyMethod = "닫기" ) @RefreshScope 공용 데이터 소스 dataSourcePgProduct ( DataSourceProperties의 dataSourceProperties가 ) 발생 되는 SQLException { logger.debug를 ( "数据库连接信息{}" , dataSourceProperties.getJdbcUrl ()); DruidDataSource은 dataSource = 새로운 DruidDataSource (); dataSource.setUrl ( dataSourceProperties.getJdbcUrl () ); dataSource.setUsername ( dataSourceProperties.getJdbcUserName () ); dataSource.setPassword ( dataSourceProperties.getJdbcUserPassword () ); dataSource.setValidationQuery ( dataSourceProperties.getValidationQuery () );      ...... dataSource.init (); 반환 데이터 소스; }

설명 : 사용 된 @ConfigurationProperties 클래스에 해당 @EnableConfigurationProperties는 주사를 실시하지만, 반드시 @EnableConfigurationProperties 직접 사용할 수 있으나 노트 @Autowired DataSourceProperties의 dataSourceProperties을 하지 @EnableConfigurationProperties는, 다음 엔티티 클래스 이외에 추가하는 경우, 주입 @ IOC의 행 ConfigurationProperties 플러스 @Component 구성 정보는 컨테이너에 주입.

참조 할 수 있습니다 : @EnableConfigurationProperties 소개 코멘트

추천

출처www.cnblogs.com/liaowenhui/p/11203296.html