{"id":26139787,"url":"https://github.com/leanstacks/spring-boot-fundamentals","last_synced_at":"2026-03-07T06:32:34.463Z","repository":{"id":46753208,"uuid":"43680224","full_name":"leanstacks/spring-boot-fundamentals","owner":"leanstacks","description":"A companion for the LeanStacks YouTube channel playlist entitled Spring Boot Fundamentals.","archived":false,"fork":false,"pushed_at":"2019-05-31T07:59:28.000Z","size":132,"stargazers_count":138,"open_issues_count":0,"forks_count":155,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-04-14T00:57:04.692Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.leanstacks.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leanstacks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-10-05T11:25:42.000Z","updated_at":"2025-02-10T00:49:31.000Z","dependencies_parsed_at":"2022-09-23T01:22:20.351Z","dependency_job_id":null,"html_url":"https://github.com/leanstacks/spring-boot-fundamentals","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/leanstacks/spring-boot-fundamentals","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leanstacks%2Fspring-boot-fundamentals","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leanstacks%2Fspring-boot-fundamentals/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leanstacks%2Fspring-boot-fundamentals/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leanstacks%2Fspring-boot-fundamentals/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leanstacks","download_url":"https://codeload.github.com/leanstacks/spring-boot-fundamentals/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leanstacks%2Fspring-boot-fundamentals/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30209086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T05:23:27.321Z","status":"ssl_error","status_checked_at":"2026-03-07T05:00:17.256Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-11T02:37:02.981Z","updated_at":"2026-03-07T06:32:34.438Z","avatar_url":"https://github.com/leanstacks.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spring Boot Fundamentals\n\n## Acknowledgements\n\nThis is a [LEAN**STACKS**](http://www.leanstacks.com) solution.\n\nFor more detailed information and instruction about constructing Spring Boot RESTful web services, see the book [Lean Application Engineering Featuring Backbone.Marionette and the Spring Framework](https://leanpub.com/leanstacks-marionette-spring).\n\nLEAN**STACKS** offers several technology instruction video series, publications, and starter projects.  For more information go to [LeanStacks.com](http://www.leanstacks.com/).\n\n## Repository\n\nThis repository is a companion for the LEAN**STACKS** YouTube channel playlist entitled [Spring Boot Fundamentals](https://www.youtube.com/playlist?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n### Repository Organization\n\nEach episode of the Spring Boot Fundamentals video series has a corresponding branch in this repository.  For example, all of the source code illustrated in the episode entitled [Bootstrapping a Spring Boot Application Project](https://youtu.be/XbknBOmMuPQ?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY) may be found on the repository branch named [bootstrap](https://github.com/mwarman/spring-boot-fundamentals/tree/bootstrap).\n\n### Branches\n\n#### bootstrap\n\nThe branch named `bootstrap` contains the source code illustrated in the episode [Bootstrapping a Spring Boot Application Project](https://youtu.be/XbknBOmMuPQ?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### restws-1\n\nThe branch named `restws-1` contains the source code illustrated in the episode [Creating RESTful Web Services with Spring Boot - Part 1](https://youtu.be/kbisNUfqVLM?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### restws-2\n\nThe branch named `restws-2` contains the source code illustrated in the episode [Creating RESTful Web Services with Spring Boot - Part 2](https://youtu.be/mrrHTJxppi8?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### service\n\nThe branch named `service` contains the source code illustrated in the episode [Creating Service Components with Spring Boot](https://youtu.be/qJnAM_ZZvWA?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### repository\n\nThe branch named `repository` contains the source code illustrated in the episode [Using Spring Data Repositories with Spring Boot](https://youtu.be/4bPT-0f-am4?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### transactional\n\nThe branch named `transactional` contains the source code illustrated in the episode [Declarative Transaction Management with Spring Boot](https://youtu.be/4bPT-0f-am4?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### cache\n\nThe branch named `cache` contains the source code illustrated in the episode [Declarative Cache Management with Spring Boot](https://youtu.be/g4h268Hx0AU?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### scheduled\n\nThe branch named `scheduled` contains the source code illustrated in the episode [Creating Scheduled Processes with Spring Boot](https://youtu.be/TEMsEcdAsbY?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### async\n\nThe branch named `async` contains the source code illustrated in the episode [Creating Asynchronous Processes with Spring Boot](https://youtu.be/106WWFvgNW0?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### configuration\n\nThe branch named `configuration` contains the source code illustrated in the episode [Using Profiles and Properties to Create Environment-Specific Runtime Configurations with Spring Boot](https://youtu.be/0zjQX7WwjrI?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### unit-test\n\nThe branch named `unit-test` contains the source code illustrated in the episode [Creating Unit Tests with Spring Boot](https://youtu.be/WKD9E8KsQME?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### unit-test-controller\n\nThe branch named `unit-test-controller` contains the source code illustrated in the episode [Creating Web Service Controller Unit Tests with Spring Boot](https://youtu.be/zjVobP0sonA?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### unit-test-mockito\n\nThe branch named `unit-test-mockito` contains the source code illustrated in the episode [Creating Web Service Controller Unit Tests with Mockito and Spring Boot](https://youtu.be/7TMuBxTy3GE?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### actuator\n\nThe branch named `actuator` contains the source code illustrated in the episode [Production Monitoring and Management with Spring Boot Actuator](https://youtu.be/7L5rBQUMiPI?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### security\n\nThe branch named `security` contains the source code illustrated in the episode [Protecting Application Assets with Spring Security - Out-of-the-Box Features](https://youtu.be/CQfp2ngwT5U?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### controller-hierarchy\n\nThe branch named `controller-hierarchy` contains the source code illustrated in the episode [Creating Meaningful RESTful Web Service Controller Hierarchies with Spring Boot](https://youtu.be/Dg8hb0HPMWA?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### gradle\n\nThe branch named `gradle` contains the source code illustrated in the episode [Using the Gradle Build System](https://youtu.be/wRHj2hUHQd0?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### gradle-build-dash\n\nThe branch named `gradle-build-dash` contains the source code illustrated in the episode [Introduction to Gradle Project and Build Reports](https://youtu.be/I_jnSDjN2eo?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### gradle-jacoco\n\nThe branch named `gradle-jacoco` contains the source code illustrated in the episode [Using the Gradle JaCoCo Plugin for Unit Test Code Coverage Reporting](https://youtu.be/ieYs0hkogVY?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### gradle-checkstyle\n\nThe branch named `gradle-checkstyle` contains the source code illustrated in the episode [Using the Gradle Checkstyle Plugin for Code Style Reporting](https://youtu.be/zo3zyyo7Vkw?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### gradle-pmd\n\nThe branch named `gradle-pmd` contains the source code illustrated in the episode [Using the Gradle PMD Plugin for Static Code Analysis](https://youtu.be/Eek-5VJV2Xk?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### gradle-defaulttasks\n\nThe branch named `gradle-defaulttasks` contains the source code illustrated in the episode [Configuring Gradle Default Tasks](https://youtu.be/6NrFSDzwcfg?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### upgrade-140\n\nThe branch named `upgrade-140` contains the source code illustrated in the episode [Upgrading to Spring Boot 1.4](https://youtu.be/oxhhYZNKXAM?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### executable\n\nThe branch named `executable` contains the source code illustrated in the episode [Installing a Spring Boot Application on a Server - Part One](https://youtu.be/eCalW4OBpV8?list=PLGDwUiT1wr6-Fn3N2oqJpTdhGjFHnIIKY).\n\n#### resttemplate\n\nThe branch named `resttemplate` contains the source code illustrated in the episode [Using RestTemplate and Spring Boot to Integrate with REST Services]().\n\n\n## Languages\n\nThis project is authored in Java.\n\n## Installation\n\n### Fork the Repository\n\nFork the [Spring Boot Fundamentals](https://github.com/mwarman/spring-boot-fundamentals) repository on GitHub.  Clone the project to your host machine.\n\n### Dependencies\n\nThe project requires the following dependencies be installed on the host machine:\n\n* Java Development Kit 7 or later\n\nand choose one of:\n* Apache Maven 3 or later\n* Gradle 2.12 or later\n\n## Running\n\nThe project supports [Maven](http://maven.apache.org/) and [Gradle](http://gradle.org/) for build, package, and test workflow automation.  \n\n### Maven\n\nThe following Maven goals are the most commonly used.\n\n#### spring-boot:run\n\nThe `spring-boot:run` Maven goal performs the following workflow steps:\n\n* compiles Java classes to the /target directory\n* copies all resources to the /target directory\n* starts an embedded Apache Tomcat server\n\nTo execute the `spring-boot:run` Maven goal, type the following command at a terminal prompt in the project base directory.\n\n```\nmvn spring-boot:run\n```\n\nType `ctrl-C` to halt the web server.\n\nThis goal is used for local machine development and functional testing.  Use the `package` goal for server deployment.\n\n#### test\n\nThe `test` Maven goal performs the following workflow steps:\n\n* compiles Java classes to the /target directory\n* copies all resources to the /target directory\n* executes the unit test suites\n* produces unit test reports\n\nThe `test` Maven goal is designed to allow engineers the means to run the unit test suites against the main source code.  This goal may also be used on continuous integration servers such as Jenkins, etc.\n\nTo execute the `test` Maven goal, type the following command at a terminal prompt in the project base directory.\n\n```\nmvn clean test\n```\n\n#### package\n\nThe `package` Maven goal performs the following workflow steps:\n\n* compiles Java classes to the /target directory\n* copies all resources to the /target directory\n* executes the unit test suites\n* produces unit test reports\n* prepares an executable JAR file in the /target directory\n\nThe `package` Maven goal is designed to prepare the application for distribution to server environments.  The application and all dependencies are packaged into a single, executable JAR file.\n\nTo execute the `package` goal, type the following command at a terminal prompt in the project base directory.\n\n```\nmvn clean package\n```\n\nThe application distribution artifact is placed in the /target directory and is named using the `artifactId` and `version` from the pom.xml file.  To run the JAR file use the following command:\n\n```\njava -jar example-1.0.0.jar\n```\n\nBy default, the batch and hsqldb profiles are active.  To run the application with a specific set of active profiles, supply the `--spring.profiles.active` command line argument.  For example, to start the project using MySQL instad of HSQLDB and enable the batch process:\n\n```\njava -jar example-1.0.0.jar --spring.profiles.active=mysql,batch\n```\n\n### Gradle\n\nThe following Gradle tasks are the most commonly used.\n\n#### bootRun\n\nThe `bootRun` Gradle task performs the following workflow steps:\n\n* compiles Java classes to the /build directory\n* copies all resources to the /build directory\n* starts an embedded Apache Tomcat server\n\nTo execute the `bootRun` Gradle task, type the following command at a terminal prompt in the project base directory.\n\n```\ngradle bootRun\n```\n\nType `ctrl-C` to halt the web server.\n\nThis task is used for local machine development and functional testing.  Use the `assemble` or `build` task for server deployment.\n\n#### assemble\n\nThe `assemble` Gradle task performs the following workflow steps:\n\n* compiles Java classes to the /build directory\n* copies all resources to the /build directory\n* prepares an executable JAR file in the /build/libs directory\n\nThe `assemble` Gradle task is designed to allow engineers the means to compile the project and produce an executable JAR file suitable for server environments without executing unit tests or producing other project reports.\n\nTo execute the `assemble` Gradle task, type the following command at a terminal prompt in the project base directory.\n\n```\ngradle clean assemble\n```\n\n#### build\n\nThe `build` Gradle task performs the following workflow steps:\n\n* compiles Java classes to the /build directory\n* copies all resources to the /build directory\n* executes the unit test suites\n* produces unit test reports\n* prepares an executable JAR file in the /build/libs directory\n\nThe `build` Gradle task is prepares the application for distribution to server environments. The application and all dependencies are packaged into a single, executable JAR file.\n\nThis task is ideal for use on continuous integration servers such as Jenkins, etc. because it produces unit test, code coverage, and static analysis reports.\n\nTo execute the `build` Gradle task, type the following command at a terminal prompt in the project base directory.\n\n```\ngradle clean build\n```\n\nThe application distribution artifact is placed in the /build/libs directory and is named using the project name and version from the `build.gradle` file.  To run the JAR file use the following command:\n\n```\njava -jar build/libs/example-1.0.0.jar\n```\n\nBy default, the batch and hsqldb profiles are active.  To run the application with a specific set of active profiles, supply the `--spring.profiles.active` command line argument.  For example, to start the project using MySQL instad of HSQLDB and enable the batch process:\n\n```\njava -jar build/libs/example-1.0.0.jar --spring.profiles.active=mysql,batch\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleanstacks%2Fspring-boot-fundamentals","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleanstacks%2Fspring-boot-fundamentals","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleanstacks%2Fspring-boot-fundamentals/lists"}