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();
}
원본 주소:https://gitee.com/jackson_hou/RefreshDataSource.gitSpringBoot 통합 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에 따라 라이센스가 부여됩니다.