springboot에서 yml 프로필을 사용하여 정적 변수에 값을 부여하는 강좌
3641 단어 springbootyml변수값을 매기다
이 요구 사항은 봉인된 clickhouseUtil 데이터 조회 엔진 연결 도구 클래스를 수정하는 것입니다.이런 방법 중의 방법은 모두 정태적인 방법이기 때문이다.연결 주소와 같은 매개 변수는 서로 다른 환경에 따라 바뀌어야 한다.예를 들어 개발 주소, 테스트 주소, 생산 주소 등 모든 설정 파일을 통해 서로 다른 환경에서의 설정 파라미터를 얻지만 사용하는 방법은 정적이다. 일반적인 상황에서 @value를 사용하여 변수에 직접 값을 부여할 수 없으며spring 속성의 set 방법으로 정적 변수에 값을 부여해야 한다. 그리고 정적 방법으로 정적 변수를 사용하면 된다
방법:
첫 번째 단계:yml 파일에 필요한 매개 변수를 설정합니다
clickhouse:
address: jdbc:clickhouse://172.20.xxx.xxx:8123
username: default
password: xxxxx
db: marketing
socketTimeout: 600000
2단계:클래스에 @Component 메모를 먼저 표시해야 합니다. 프로그램이 시작되면 자동으로 불러옵니다. 그렇지 않으면 정적 인자가 프로필의 값을 얻지 못합니다
정적 변수 생성하기
정적 변수 set 메서드에 @Value 추가 ()
@Value("${clickhouse.address}")
public void setClickhouseAddress(String address) {
ClickHouseUtil.clickhouseAddress = address;
}
마지막으로 정적 방법에서 사용하면 된다
@Component
public class ClickHouseUtil {
private static String clickhouseAddress;
private static String clickhouseUsername;
private static String clickhousePassword;
private static String clickhouseDB;
private static Integer clickhouseSocketTimeout;
@Value("${clickhouse.address}")
public void setClickhouseAddress(String address) {
ClickHouseUtil.clickhouseAddress = address;
}
@Value("${clickhouse.username}")
public void setClickhouseUsername(String username) {
ClickHouseUtil.clickhouseUsername = username;
}
@Value("${clickhouse.password}")
public void setClickhousePassword(String password) {
ClickHouseUtil.clickhousePassword = password;
}
@Value("${clickhouse.db}")
public void setClickhouseDB(String db) {
ClickHouseUtil.clickhouseDB = db;
}
@Value("${clickhouse.socketTimeout}")
public void setClickhouseSocketTimeout(Integer socketTimeout) {
ClickHouseUtil.clickhouseSocketTimeout = socketTimeout;
}
public static Connection getConn() {
ClickHouseConnection conn = null;
ClickHouseProperties properties = new ClickHouseProperties();
properties.setUser(clickhouseUsername);
properties.setPassword(clickhousePassword);
properties.setDatabase(clickhouseDB);
properties.setSocketTimeout(clickhouseSocketTimeout);
ClickHouseDataSource clickHouseDataSource = new ClickHouseDataSource(clickhouseAddress,properties);
try {
conn = clickHouseDataSource.getConnection();
return conn;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static List<JSONObject> exeSql(String sql){
log.info("cliockhouse sql:" + sql);
Connection connection = getConn();
try {
Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery(sql);
ResultSetMetaData rsmd = results.getMetaData();
List<JSONObject> list = new ArrayList();
while(results.next()){
JSONObject row = new JSONObject();
for(int i = 1;i<=rsmd.getColumnCount();i++){
row.put(rsmd.getColumnName(i),results.getString(rsmd.getColumnName(i)));
}
list.add(row);
}
return list;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}
이상의springboot은 yml 프로필을 사용하여 정적 변수에 값을 부여하는 강좌를 사용합니다. 이것은 여러분께 공유된 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin Springboot -- 파트 14 사용 사례 REST로 전환하여 POST로 JSON으로 전환前回 前回 前回 記事 の は は で で で で で で を 使っ 使っ 使っ て て て て て リクエスト を を 受け取り 、 reqeustbody で 、 その リクエスト の ボディ ボディ を を 受け取り 、 関数 内部 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.