SpringBoot 통합 nacos 동적 리 셋 데이터 원본 의 실현 예시
                                            
 3683 단어  SpringBootnacos동적 새로 고침
                    
프로젝트 가 필요 하기 때문에 프로젝트 운영 과정 에서 데이터 원본(즉,데이터 원본 의 열 업데이트)을 동적 으로 수정 할 수 있어 야 합 니 다.여 기 는 com.alibaba.druid.pool.druidDataSource 데이터 원본 을 예 로 들 면
STEP 1:DruidAbstractDataSource 클래스 재 작성
이 종 류 를 다시 쓰 는 이유:DruidDataSource 데이터 원본 이 초기 화 되면 데이터베이스 의 url 과 userName 을 다시 설정 할 수 없 기 때 문 입 니 다.
public void setUrl(String jdbcUrl) {
    if (StringUtils.equals(this.jdbcUrl, jdbcUrl)) {
      return;
    }
    //      ,          ,     
    // if (inited) {
    //   throw new UnsupportedOperationException();
    // }
    if (jdbcUrl != null) {
      jdbcUrl = jdbcUrl.trim();
    }
    this.jdbcUrl = jdbcUrl;
    // if (jdbcUrl.startsWith(ConfigFilter.URL_PREFIX)) {
    // this.filters.add(new ConfigFilter());
    // }
  }
  
  public void setUsername(String username) {
    if (StringUtils.equals(this.username, username)) {
      return;
    }
		//      ,          ,     
    // if (inited) {
    //   throw new UnsupportedOperationException();
    // }
    this.username = username;
  } 
 두 번 째 단계:동적 설정 으로 nacos 설정 정보 가 져 오기
package com.mp.demo.config;
import com.alibaba.druid.pool.DruidDataSource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Slf4j
@Configuration
@RefreshScope
@Data
public class DruidConfiguration
{
  @Value("${spring.datasource.url}")
  private String dbUrl;
  @Value("${spring.datasource.username}")
  private String username;
  @Value("${spring.datasource.password}")
  private String password;
  @Value("${spring.datasource.driver-class-name}")
  private String driverClassName;
  @Bean
  @RefreshScope
  public DruidDataSource dataSource()
  {
    DruidDataSource datasource = new DruidDataSource();
    datasource.setUrl(this.dbUrl);
    datasource.setUsername(username);
    datasource.setPassword(password);
    datasource.setDriverClassName(driverClassName);
    return datasource;
  }
}STEP 3:데이터 원본 수 동 새로 고침
 @GetMapping("/refresh")
  public String refresh() throws SQLException
  {
    DruidDataSource master = SpringUtils.getBean("dataSource");
    master.setUrl(druidConfiguration.getDbUrl());
    master.setUsername(druidConfiguration.getUsername());
    master.setPassword(druidConfiguration.getPassword());
    master.setDriverClassName(druidConfiguration.getDriverClassName());
    master.restart();
    return userName + "<>" + jdbcUrl+"----------"+druidConfiguration.getDbUrl();
  }SpringBoot 통합 nacos 동적 리 셋 데이터 원본 의 실현 예시 에 관 한 이 글 은 여기까지 소개 합 니 다.더 많은 SpringBoot nacos 동적 리 셋 데이터 원본 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.