diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml new file mode 100644 index 0000000..1531e21 --- /dev/null +++ b/.github/workflows/maven.yml @@ -0,0 +1,25 @@ +# This workflow will build a Java project with Maven +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +name: Java CI with Maven + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + java-version: '11' + distribution: 'adopt' + - name: Build with Maven + run: mvn -B package --file pom.xml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e6c68a8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM adoptopenjdk/openjdk11:alpine-jre +ADD target/decadevs-docker.jar decadevs-docker.jar +ENTRYPOINT ["java", "-jar", "decadevs-docker.jar"] diff --git a/README.md b/README.md index 818b20e..d3e4cdc 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ For more detail, please visit: > [Spring Boot JPA + PostgreSQL - Building Rest CRUD API example](https://bezkoder.com/spring-boot-postgresql-example/) More Practice: +> [Spring Boot File upload example with Multipart File](https://bezkoder.com/spring-boot-file-upload/) + > [Spring Boot Pagination & Filter example | Spring JPA, Pageable](https://bezkoder.com/spring-boot-pagination-filter-jpa-pageable/) > [Spring Data JPA Sort/Order by multiple Columns | Spring Boot](https://bezkoder.com/spring-data-sort-multiple-columns/) @@ -32,6 +34,13 @@ Fullstack: > [React + Spring Boot + PostgreSQL example](https://bezkoder.com/spring-boot-react-postgresql/) +Run both Back-end & Front-end in one place: +> [Integrate Angular with Spring Boot Rest API](https://bezkoder.com/integrate-angular-spring-boot/) + +> [Integrate React.js with Spring Boot Rest API](https://bezkoder.com/integrate-reactjs-spring-boot/) + +> [Integrate Vue.js with Spring Boot Rest API](https://bezkoder.com/integrate-vue-spring-boot/) + ## Run Spring Boot application ``` mvn spring-boot:run diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..1623578 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,20 @@ +version: '3.3' +services: + decadevs_docker: + container_name: decadevs-docker-fabian + image: decadevs-docker-fabian + build: ./ + ports: + - "8532:8080" + depends_on: + - mysql + mysql: + image: mysql:5.7 + ports: + - "3340:3306" + restart: always + environment: + MYSQL_ROOT_PASSWORD: fabian + MYSQL_USER: fabian + MYSQL_DATABASE: testdb + MYSQL_PASSWORD: fabian \ No newline at end of file diff --git a/pom.xml b/pom.xml index a8d4b33..fbaa116 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,11 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.springframework.boot spring-boot-starter-parent - 2.2.1.RELEASE + 2.5.0 com.bezkoder @@ -15,7 +15,7 @@ Demo project for Spring Boot Apis CRUD using Spring Data JPA - 1.8 + 11 @@ -46,6 +46,16 @@ + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-actuator + 2.3.5.RELEASE + @@ -55,6 +65,7 @@ spring-boot-maven-plugin + decadevs-docker diff --git a/src/main/java/com/bezkoder/spring/datajpa/actuator/CustomHealthIndicator.java b/src/main/java/com/bezkoder/spring/datajpa/actuator/CustomHealthIndicator.java new file mode 100644 index 0000000..ed4dc41 --- /dev/null +++ b/src/main/java/com/bezkoder/spring/datajpa/actuator/CustomHealthIndicator.java @@ -0,0 +1,16 @@ +package com.bezkoder.spring.datajpa.actuator; + +import org.springframework.boot.actuate.health.AbstractHealthIndicator; +import org.springframework.boot.actuate.health.Health; +import org.springframework.stereotype.Component; + +@Component +public class CustomHealthIndicator extends AbstractHealthIndicator { + @Override + protected void doHealthCheck(Health.Builder builder) throws Exception { + builder + .up() + .withDetail("Service", "Everything Looks cool") + .withDetail("Error", "No wahala dey ground"); + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 9e7eaeb..835487b 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,6 +1,19 @@ -spring.datasource.url= jdbc:mysql://localhost:3306/testdb?useSSL=false -spring.datasource.username= root -spring.datasource.password= 123456 - +spring.datasource.url= jdbc:mysql://mysql:3306/testdb?useSSL=false +spring.datasource.username=fabian +spring.datasource.password=fabian spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQL5InnoDBDialect -spring.jpa.hibernate.ddl-auto= update \ No newline at end of file +spring.jpa.hibernate.ddl-auto= update + + +# ACTUATOR ENDPOINT CONFIGURATION +management.endpoint.shutdown.enabled=true +management.endpoints.web.exposure.include=* +management.endpoints.jmx.exposure.include=* +management.endpoint.health.show-details=always + +# INFO ENDPOINT CONFIGURATION +info.app.name=@project.name@ +info.app.description=@project.description@ +info.app.version=@project.version@ +info.app.encoding=@project.build.sourceEncoding@ +info.app.java.version=@java.version@ \ No newline at end of file diff --git a/src/test/java/com/bezkoder/spring/datajpa/SpringBootDataJpaApplicationTests.java b/src/test/java/com/bezkoder/spring/datajpa/SpringBootDataJpaApplicationTests.java index 3b8b6c3..e718f5f 100644 --- a/src/test/java/com/bezkoder/spring/datajpa/SpringBootDataJpaApplicationTests.java +++ b/src/test/java/com/bezkoder/spring/datajpa/SpringBootDataJpaApplicationTests.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; -@SpringBootTest +//@SpringBootTest class SpringBootDataJpaApplicationTests { @Test