[JAVA] Definieren Sie die Datenquelle im Code anstelle der Eigenschaft im Spring-Boot

Um eine Datenquelle mit Spring-Boot zu definieren, legen Sie sie normalerweise wie folgt mit Eigenschaften usw. fest. Sie können sie jedoch auch wie in der Vergangenheit mit `` @ Bean``` definieren.

spring.datasource.url=jdbc:postgresql://192.168.10.23:5432/testdb
spring.datasource.username=postgres
spring.datasource.password=xxxx

Quellcode

pom.xml


	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.3.RELEASE</version>
	</parent>

	<properties>
		<java.version>10.0</java.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.postgresql</groupId>
			<artifactId>postgresql</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

Wenn Sie eine @ Bean```-Definition erstellen, die DataSource``` zurückgibt, wie unten gezeigt, wird sie verwendet. Hier wird PostgreSQLs `` PGSimpleDataSource``` verwendet, um den Vorgang vorerst zu überprüfen.

import javax.sql.DataSource;

import org.postgresql.ds.PGSimpleDataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.core.JdbcTemplate;

@SpringBootApplication
public class App implements CommandLineRunner {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args).close();
    }

    @Autowired
    JdbcTemplate t;

    @Bean
    public DataSource dataSource() {
        PGSimpleDataSource p = new PGSimpleDataSource();
        p.setUrl("jdbc:postgresql://192.168.10.23:5432/testdb");
        p.setUser("postgres");
        p.setPassword("xxxx");
        return p;
    }

    @Override
    public void run(String... args) throws Exception {
        t.query("select * from users", (e) -> {
            System.out.println(e.getInt("user_id"));
        });
    }
}

Als Variation gibt es auch eine Methode zum Lesen von Eigenschaften aus einer Datei usw. mit `` @ ConfigurationProperties```.

my.datasource.postgres.url=jdbc:postgresql://192.168.10.23:5432/testdb
my.datasource.postgres.user=postgres
my.datasource.postgres.password=xxxx
    @ConfigurationProperties(prefix = "my.datasource.postgres")
    @Bean
    public DataSource ds() {
        return new PGSimpleDataSource();
    }

Referenz-URL

Recommended Posts

Definieren Sie die Datenquelle im Code anstelle der Eigenschaft im Spring-Boot
[Referenzbeispiel] Das Urheberrecht wird im Kommentar des Quellcodes beschrieben.
Grundstruktur des Java-Quellcodes
Code des Teils, in dem server.servlet.session.timeout in spring.session.timeout im spring-boot2-System festgelegt ist
Beispielquellcode zum Ermitteln des minimalen gemeinsamen Vielfachen mehrerer Werte in Java
[Bestellmethode] Legen Sie die Reihenfolge der Daten in Rails fest
Test Data Builder-Muster ~ Verbessert die Wartbarkeit des Testcodes
Beispielcode zum Zuweisen eines Werts in der Eigenschaftendatei zu einem Feld des erwarteten Typs