Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hantsy/angularjs-springmvc-sample-boot
A RESTful sample using Spring Boot, Spring MVC, Spring Data and Angular/Bootstrap.
https://github.com/hantsy/angularjs-springmvc-sample-boot
angularjs bootstrap hibernate jpa lombok nodejs rest spring spring-boot spring-data spring-data-jpa spring-mvc swagger
Last synced: about 2 months ago
JSON representation
A RESTful sample using Spring Boot, Spring MVC, Spring Data and Angular/Bootstrap.
- Host: GitHub
- URL: https://github.com/hantsy/angularjs-springmvc-sample-boot
- Owner: hantsy
- License: apache-2.0
- Archived: true
- Created: 2015-08-05T08:39:08.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-01-31T08:12:06.000Z (10 months ago)
- Last Synced: 2024-09-19T12:06:56.759Z (about 2 months ago)
- Topics: angularjs, bootstrap, hibernate, jpa, lombok, nodejs, rest, spring, spring-boot, spring-data, spring-data-jpa, spring-mvc, swagger
- Language: Java
- Homepage: https://www.gitbook.com/book/hantsy/build-a-restful-app-with-spring-mvc-and-angularjs/details
- Size: 437 KB
- Stars: 315
- Watchers: 44
- Forks: 133
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
angularjs-springmvc-sample-boot
===============================An example application using AnguarJS/Bootstrap as frontend and Spring MVC as REST API producer.
**More details about the source codes, please read the online GitBook: [Building REST APIs with Spring MVC](https://www.gitbook.com/book/hantsy/build-a-restful-app-with-spring-mvc-and-angularjs/details).**
> NOTE: This project is under maintenance, no more new features added in future. If you are looking for the new Spring Boot 2 and Angular 5, check [angular-spring-reactive-sample](https://github.com/hantsy/angular-spring-reactive-sample).
Technology stack:
* Spring Boot
* Spring MVC
* Spring Data JPA
* JPA
* Hibernate 5.2
* Spring Security
* Swagger/Swagger2Markup/Spring Rest Docs
* Spring Test/JUnit/Mockito/JBehave/RestAssured
* Lombok
* ModelMapper
* AngularJS
* BootstrapThis version improved [the original version(without Spring Boot)](https://github.com/hantsy/angularjs-springmvc-sample), including:
* Introduction of Gulp build system to processing the static resources
* The frontend UI can be run standalone via NodeJS eco-system
* An option provided and allow you to package the static resources as part of final jar and run the application via `mvn spring-boot:run` directly## Requirements
* JDK 8
Oracle Java 8 is required, go to [Oracle Java website](http://java.oracle.com) to download it and install into your system.
Optionally, you can set **JAVA\_HOME** environment variable and add *<JDK installation dir>/bin* in your **PATH** environment variable.* Apache Maven
Download the latest Apache Maven from [http://maven.apache.org](http://maven.apache.org), and uncompress it into your local system.
Optionally, you can set **M2\_HOME** environment varible, and also do not forget to append *<Maven Installation dir>/bin* your **PATH** environment variable.
* NodeJS
NodeJS is required to build the frontend static resources.
Download [NodeJS](http://nodejs.org) and install it into your local system.
After it is installed, open terminal, and using `node -v` command to confirm.
```
node -v
>v4.2.2
```
`bower` is also requried to install the runtime dependencies, and `gulp` is chosen as our build tools for the statics resources.
```
npm install -g bower
npm install -g gulp
```
## Get the source codesGet a copy of the source codes into your local system.
```
git clone https://github.com/hantsy/angularjs-springmvc-sample-boot
```## Run the project
You can use one of the following approaches to run this project.
### Run frontend UI and backend respectively
1. Run the backend API server via Spring Boot.
```
mvn spring-boot:run
```The backend APIs will run on port 9000.
2. Run the frontend UI standalone.
```
npm install
bower install
gulp serve
```By default, gulp serves the frontend UI static resources on port 3000.
3. Go to [http://localhost:3000](http://localhost:3000) to test it.
### Run the project via Spring Boot maven plugin
1. Run the following command to resovle the dependencies of the frontend static resources.
```
npm install
bower install
```2. Run the backend API server with `spring-boot` command. The parameter `-Dstatic-ui` will copy the static resources and package into the jar archive.
```
mvn spring-boot:run -Dstatic-ui
```3. Go to [http://localhost:9000](http://localhost:9000) to test it.
If you want to explore the REST API docs online, there is a *Swagger UI* configured for visualizing the REST APIs, just go to [http://localhost:9000/swagger-ui.html](http://localhost:9000/swagger-ui.html).
### Generate static REST API reference documentationI have moved the REST docs generation configuration into a standalone Maven profile.
Execute the following command to generate HTML and PDF format files for your REST APIs from Swagger API description file and Spring test code snippets(as code samples).
```
mvn clean package -Drestdocs
```The detailed configuration is explained in [API documention](https://hantsy.gitbooks.io/build-a-restful-app-with-spring-mvc-and-angularjs/content/swagger.html) section.
When it is done, check the generated static docs in *target/asciidoc* folder, it includes a HTML 5 file(under html folder), and a PDF file(in pdf folder).
Open the pdf document in Adobe Reader, it looks like.
![pdf](https://github.com/hantsy/angularjs-springmvc-sample-boot/blob/master/restdocs.png)
### DockerYou can run the project in multistage Docker building development environment, check [Multistage Builds](https://github.com/hantsy/devops-sandbox/blob/master/multistage.md).