This is a Spring Boot based microservice example backed by PostgreSQL database. This examples shows how to do the following:
- Use
DBCP datasource
with Java configuration. - Use
Custom Repository
to exposeentity manager
. - Insert
UUID
field in Postgres database and generateUUID
index. - Convert Java
Enum
to PostgresEnum
type. - Convert Java
Object
to PostgresJSONB
type. - Intercation with
named native queries
andnamed stored procedure
. - Custom
JsonType
to convert a JSON string returned from a native query to a Java bean. - Use
Dozer
Java Bean mapper.
- You have a PostgreSQL database server running on your
localhost
and in port5432
. - You have a database named
postgres
running on the server - The server has a user named
postgres
with passwordpostgres
. - If any of the assumptions doesn't hold true, change the
spring.datasource
properties in theapplication.yml
file.
Execute the create-db.sql
script under resources
directory on your PostgreSQL server either using PostgreSQL administration and management tools, pgAdmin,
or from the PostgreSQL interactive terminal program, called psql
.
Execute the following command from the parent directory:
mvn clean install
The main entry point jpa-postgres-jsonb
example is com.basaki.example.postgres.jsonb.boot.BookApplication
class.
You can start the application from an IDE by starting the BookApplication
class.
. ____ _ __ _ _
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.4.5.RELEASE)
...
2017-04-16 18:32:32.947 INFO 49104 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-04-16 18:32:32.952 INFO 49104 --- [ main] c.b.e.p.jsonb.boot.BookApplication : Started BookApplication in 7.879 seconds (JVM running for 8.309)
The application starts up at port 8080
.
On your browser, navigate to http://localhost:8080/
to view the Swagger.
Click the Show/Hide
link to view all the operations exposed by Book API.