#35 springboot: external read - Environment
This commit is contained in:
@@ -1,9 +1,12 @@
|
|||||||
package hello;
|
package hello;
|
||||||
|
|
||||||
|
import hello.config.MyDataSourceEnvConfig;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
@SpringBootApplication
|
@Import(MyDataSourceEnvConfig.class)
|
||||||
|
@SpringBootApplication(scanBasePackages = "hello.datasource")
|
||||||
public class ExternalReadApplication {
|
public class ExternalReadApplication {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package hello.config;
|
||||||
|
|
||||||
|
import hello.datasource.MyDataSource;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.core.env.Environment;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Configuration
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class MyDataSourceEnvConfig {
|
||||||
|
|
||||||
|
private final Environment env;
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public MyDataSource myDataSource() {
|
||||||
|
String url = env.getProperty("my.datasource.url");
|
||||||
|
String username = env.getProperty("my.datasource.username");
|
||||||
|
String password = env.getProperty("my.datasource.password");
|
||||||
|
int maxConnection = env.getProperty("my.datasource.etc.max-connection", Integer.class);
|
||||||
|
Duration timeout = env.getProperty("my.datasource.etc.timeout", Duration.class);
|
||||||
|
List<String> options = env.getProperty("my.datasource.etc.options", List.class);
|
||||||
|
|
||||||
|
return new MyDataSource(url,username, password, maxConnection, timeout, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package hello.datasource;
|
||||||
|
|
||||||
|
import jakarta.annotation.PostConstruct;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class MyDataSource {
|
||||||
|
|
||||||
|
private String url;
|
||||||
|
private String username;
|
||||||
|
private String password;
|
||||||
|
private int maxConnection;
|
||||||
|
private Duration timeout;
|
||||||
|
private List<String> options;
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
public void init() {
|
||||||
|
log.info("url={}", url);
|
||||||
|
log.info("username={}", username);
|
||||||
|
log.info("password={}", password);
|
||||||
|
log.info("maxConnection={}", maxConnection);
|
||||||
|
log.info("timeout={}", timeout);
|
||||||
|
log.info("options={}", options);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1 +1,6 @@
|
|||||||
|
my.datasource.url=local.db.com
|
||||||
|
my.datasource.username=username
|
||||||
|
my.datasource.password=password
|
||||||
|
my.datasource.etc.max-connection=1
|
||||||
|
my.datasource.etc.timeout=3500ms
|
||||||
|
my.datasource.etc.options=CACHE,ADMIN
|
||||||
|
|||||||
Reference in New Issue
Block a user