This App is a Simple VueJS and Springboot 2 App which uses
- VueJS
- Vue Components
- HTTP Client using axios Library
- Basic Vue Routing
- Vue Bootstrap
- Communication between Vue Components and Views
- SpringBoot 2
- Springboot RestController
- Service, Repository(DAO) from Spring Framework
- Autowiring is used as well to inject the Dependencies
This Applications template can be copied and used to build other bigger applications.
The CSS used is very basic since the main aim of this project is to focus on Vue JS
The Application displays a list of customers, and on clicking on a customer it displays more details about the customer
Refer https://nodejs.org/en/ to install NodeJS
Install Vue Cli Node Package Globally using the following Command.
npm install -g @vue/cli
Install Maven and Ensure IDE is pointing to Right Maven folder
Also Ensure maven is set as a path variable to that maven commands can be run easily
Refer https://maven.apache.org/ for maven installation
Clone the repo into local
Open the client folder and install the npm packages using the following commands
cd client
npm install
Go Back to the Parent Project Folder and build the package using the following commands
cd ..
mvn clean package
Go to server folder and start the Application using the following commands
cd server
mvn spring-boot:run
The Application runs on localhost:8080 and the application runs in a embedded container in local
client : This has the Client Code implemented using Vue JS
server : This has the Springboot code
pom.xml : This is multimodule pom. This pom in turn executes the pom within the client and the server folders
Customers : This View Displays a list of customers and gets the data from SpringBoot REST Service
CustomerDetails : This View Displays the Details of a single customer and gets the data from SpringBoot Rest Service
Display : Display component displays the name of the selected customer in Customers View. Display is a child component of Customers View
axios library is used to make http calls
The Application has 2 endpoints
/customers : The ties to Customers View
/customerdetails : This ties to CustomerDetails View
The package com.example.demo
has the DemoApplication.java
file which ensures that the application runs in an embedded container and forms the starting point of the code
The package com.example.dao.impl
has the DAO ( Data Access Object ) Defined. The package com.example.dao
has the interfaces defined for the DAOs.
The DAO( Data Access Object ) connects to the DataBase and gets the necessary data
The package com.example.service.impl
has the Services Defined . The package com.example.service
has the interfaces defined for the Services.
The Service is where the business logic is run on the Data which comes from DAO
The package com.example.controller
has the Rest Controller defined. The controller has all the end points defined and mentions which function should be executed when an end point is called. The Controller also defines which Endpoint Calls which Service
The package com.example.models
has all the java models defined
The application.properties
file is used to define various properties such as the port in which the embedded container runs , the context path of the application etc
Import the postman collections from postman
folder into Postman.
This postman collection has all the REST endpoints which are implemented in springboot.
Springboot : Refer to https://spring.io/guides/gs/rest-service/ to build REST service using Springboot
VueJS : https://vuejs.org/v2/guide/
vue cli : https://cli.vuejs.org/guide/
axios : https://www.npmjs.com/package/axios
vue bootstrap : https://bootstrap-vue.js.org/docs
vue router : https://router.vuejs.org/guide/