Spring Bootで PostgreSQLをDOMAで動かす
内容
Spring BootでPostgreSQLをDOMAで動かす
環境
- OS : Windows10
- PostgreSQL : 9.2.18
(↑OS : CentOS 7.3) - Java : 1.8
- Spring Boot : 1.5.3.RELEASE
- DOMA(doma-spring-boot-starter) : 1.1.0
設定内容
pom.xml の設定内容
下記を追加
- doma-spring-boot-starter
- postgresql
pom.xml
<dependency> <groupId>org.seasar.doma.boot</groupId> <artifactId>doma-spring-boot-starter</artifactId> <version>1.1.0</version> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> </dependency>
注釈設定 & DOMAを外部JARに追加
- プロジェクトのプロパティーを開く
- 注釈処理でプロジェクトの固有の設定を可能に設定
- 再ビルドする
- ファクトリーパスも固有の設定を可能に設定し外部Jarを追加
- Domaのjarを選択
- Domaが追加されたのを確認しOK
- 再ビルドする
DBの接続情報設定
application.ymlにPostgreSQLの接続情報を追記
application.yml
spring:
datasource:
url: jdbc:postgresql://db.w-hippo.com/webhippodb
driverClassName: org.postgresql.Driver
username: webhippo
password: *****************
# Doma2 Reference URL <https://github.com/domaframework/doma-spring-boot>
doma:
dialect: postgres
ファイアウォールの設定
アプリを実行してみる
ファイアウォールの設定前に
試しにアプリを実行すると以下のエラーになった
org.postgresql.util.PSQLException: 接続試行は失敗しました。 at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:272) ~[postgresql-9.4.1212.jre7.jar:9.4.1212.jre7] ~
ファイアウォールの設定
- PostgreSQLのポートを許可
firewall-cmd --add-service=postgresql --zone=public --permanent
- ファイアウォール再起動
systemctl restart firewalld
PostgreSQL 側の設定
- ファイアウォールだけじゃなくPostgreSQL側の許可も必要
/var/lib/pgsql/data/postgresql.conf
許可する端末のIPを追加
(ローカル環境なのでとりあえずALL許可"*“)
listen_addresses = '*'
/var/lib/pgsql/data/pg_hba.conf
ローカルのネットワークをパスワード認証にする
# ADD host all all 192.168.0.0/24 md5
PostgreSQL再起動
systemctl restart postgresql
確認
上記設定後にSpring Bootを実行すると無事に起動
起動すればDB接続設定はOK(接続情報が間違っているとエラーになる)