Searching...
Wednesday, November 8, 2017

AngularJS CRUD with Spring MVC REST Application

November 08, 2017





Spring MVC REST Application with Maven.


List of packages
java9r.controller.com

    ProductController.java


java9r.service.com

    ProductService.java

    ProductServiceImpl.java


java9r.dao.com

    ProductDAO.java
    ProductDAOImpl.java

java9r.entities.com

    Product.java


ProductController.java
package java9r.controller.com;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.util.UriComponentsBuilder;
import java9r.entities.com.Product;
import java9r.service.com.ProductService;

/**
* @author Ravi
*
*/

@RestController
@RequestMapping("product")
public class ProductController {
@Autowired
ProductService productService;

/**
*
* Retrieve All Products
*/
@RequestMapping(value = "/all/", method = RequestMethod.GET)
public ResponseEntity<List<Product>> listAllProducts() {
List<Product> product = productService.findAll();
if (product.isEmpty()) {
return new ResponseEntity<List<Product>>(HttpStatus.NO_CONTENT);
}
return new ResponseEntity<List<Product>>(product, HttpStatus.OK);
}

/**
*
* Retrieve Single Product
*/
@RequestMapping(value = "/findone/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Product> getProduct(@PathVariable("id") long id) {
System.out.println("Fetching Product with id " + id);
Product product = productService.findById(id);
if (product == null) {
System.out.println("Product with id " + id + " not found");
return new ResponseEntity<Product>(HttpStatus.NOT_FOUND);
}
return new ResponseEntity<Product>(product, HttpStatus.OK);
}

/**
*
* Retrieve Single Product By Name
*/
@RequestMapping(value = "/name/{name}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Product> getProduct(@PathVariable("name") String name) {
System.out.println("Fetching Product with id " + name);
Product product = productService.findByName(name);
if (product == null) {
System.out.println("Product with id " + name + " not found");
return new ResponseEntity<Product>(HttpStatus.NOT_FOUND);
}
return new ResponseEntity<Product>(product, HttpStatus.OK);
}

/**
*
* Create a Product
*/
@RequestMapping(value = "/create", method = RequestMethod.POST)
public ResponseEntity<Void> createProduct(@RequestBody Product product, UriComponentsBuilder ucBuilder) {
System.out.println("Creating Product " + product.getName());

if (productService.isProductExist(product)) {
System.out.println("A Product with name " + product.getName() + " already exist");
return new ResponseEntity<Void>(HttpStatus.CONFLICT);
}

productService.insertProduct(product);

HttpHeaders headers = new HttpHeaders();
headers.setLocation(ucBuilder.path("/all/{id}").buildAndExpand(product.getId()).toUri());
return new ResponseEntity<Void>(headers, HttpStatus.CREATED);
}

/**
*
* Update a Product
*/
@RequestMapping(value = "/update/", method = RequestMethod.POST)
public ResponseEntity<Product> updateProduct(@RequestBody Product product) {
System.out.println("Updating Product " + product.getId());

Product currentProduct = productService.findById(product.getId());

if (currentProduct == null) {
System.out.println("Product with id " + product.getId() + " not found");
return new ResponseEntity<Product>(HttpStatus.NOT_FOUND);
}

currentProduct.setName(product.getName());
currentProduct.setPrice(product.getPrice());
currentProduct.setQuantity(product.getQuantity());
currentProduct.setPhoto(product.getPhoto());
currentProduct.setDescription(product.getDescription());

productService.updateProduct(currentProduct);
return new ResponseEntity<Product>(currentProduct, HttpStatus.OK);
}

/**
*
* Delete a Product
*/
// @RequestMapping(value = "/delete/{id}", method = RequestMethod.DELETE)
@RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
public ResponseEntity<Product> deleteProduct(@PathVariable("id") long id) {
System.out.println("Fetching & Deleting Product with id " + id);

Product product = productService.findById(id);
if (product == null) {
System.out.println("Unable to delete. Product with id " + id + " not found");
return new ResponseEntity<Product>(HttpStatus.NOT_FOUND);
}

productService.deleteProductById(id);
;
return new ResponseEntity<Product>(HttpStatus.NO_CONTENT);
}

/**
*
* Delete All Product
*/
@RequestMapping(value = "/all/", method = RequestMethod.DELETE)
public ResponseEntity<Product> deleteAllProducts() {
System.out.println("Deleting All Products");

productService.deleteAllProducts();
return new ResponseEntity<Product>(HttpStatus.NO_CONTENT);
}

}


ProductService.java
package java9r.service.com;

import java.util.List;
import java9r.entities.com.Product;

/**
* @author Ravi
*
*/

public interface ProductService {

public List<Product> findAll();

Product findById(long id);

Product findByName(String name);

void insertProduct(Product product);

public boolean isProductExist(Product product);

void updateProduct(Product product);

void deleteProductById(long id);

void deleteAllProducts();
}


ProductServiceImpl.java
package java9r.service.com;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.annotation.Propagation;

import java9r.dao.com.ProductDAO;
import java9r.entities.com.Product;

/**
* @author Ravi
*
*/

@Service("productService")
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public class ProductServiceImpl implements ProductService {
@Autowired
ProductDAO productDAO;

@Override
public List<Product> findAll() {

return productDAO.findAll();
}

@Override
public Product findById(long id) {
return productDAO.findById(id);
}

@Override
public Product findByName(String name) {

return productDAO.findByName(name);
}

@Override
public void insertProduct(Product product) {
productDAO.insertProduct(product);

}

@Override
public boolean isProductExist(Product product) {

return productDAO.isProductExist(product);
}

@Override
public void updateProduct(Product product) {
productDAO.updateProduct(product);

}

@Override
public void deleteProductById(long id) {
productDAO.deleteProductById(id);

}

@Override
public void deleteAllProducts() {
productDAO.deleteAllProducts();

}

}


ProductDAO.java
package java9r.dao.com;

import java.util.*;

import java9r.entities.com.Product;

/**
* @author Ravi
*
*/

public interface ProductDAO {

public List<Product> findAll();

Product findById(long id);

Product findByName(String name);

void insertProduct(Product product);

public boolean isProductExist(Product product);

void updateProduct(Product product);

void deleteProductById(long id);

void deleteAllProducts();

}


ProductDAOImpl.java
package java9r.dao.com;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.springframework.stereotype.*;

import java9r.entities.com.Product;

/**
* @author Ravi
*
*/

@Repository
public class ProductDAOImpl implements ProductDAO {

private static List<Product> products;

static {
products = productsData();
}

@Override
public List<Product> findAll() {

return products;
}

@Override
public Product findById(long id) {
for (Product product : products) {
if (product.getId() == id) {
return product;
}
}
return null;
}

@Override
public Product findByName(String name) {
for (Product product : products) {
if (product.getName().equalsIgnoreCase(name)) {
return product;
}
}
return null;
}

@Override
public void insertProduct(Product product) {

products.add(product);

}

@Override
public boolean isProductExist(Product product) {
return findByName(product.getName()) != null;
}

@Override
public void updateProduct(Product product) {
int index = products.indexOf(product);
products.set(index, product);

}

@Override
public void deleteProductById(long id) {
for (Iterator<Product> iterator = products.iterator(); iterator.hasNext();) {
Product product = iterator.next();
if (product.getId() == id) {
iterator.remove();
}
}

}

private static List<Product> productsData() {
List<Product> products = new ArrayList<Product>();
products.add(new Product(1, "product 1", 10, 10000, "product description 1", "product1.jpeg"));
products.add(new Product(2, "product 2", 20, 20000, "product description 2", "product2.jpeg"));
products.add(new Product(3, "product 3", 30, 30000, "product description 3", "product3.jpeg"));
products.add(new Product(4, "product 4", 40, 40000, "product description 4", "product4.jpeg"));
products.add(new Product(5, "product 5", 50, 50000, "product description 5", "product5.jpeg"));
products.add(new Product(6, "product 6", 60, 60000, "product description 6", "product6.jpeg"));
products.add(new Product(7, "product 7", 70, 70000, "product description 7", "product7.jpeg"));
products.add(new Product(8, "product 8", 80, 80000, "product description 8", "product8.jpeg"));

return products;
}

@Override
public void deleteAllProducts() {
products.clear();

}

}


Product.java
package java9r.entities.com;

/**
* @author Ravi
*
*/

public class Product implements java.io.Serializable {

private static final long serialVersionUID = 6866588940548007313L;
private Integer id;
private String name;
private Integer price;
private Integer quantity;
private String description;
private String photo;

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Integer getPrice() {
return price;
}

public void setPrice(Integer price) {
this.price = price;
}

public Integer getQuantity() {
return quantity;
}

public void setQuantity(Integer quantity) {
this.quantity = quantity;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public String getPhoto() {
return photo;
}

public void setPhoto(String photo) {
this.photo = photo;
}

public static long getSerialversionuid() {
return serialVersionUID;
}

public Product(Integer id, String name, Integer price, Integer quantity, String description, String photo) {
super();
this.id = id;
this.name = name;
this.price = price;
this.quantity = quantity;
this.description = description;
this.photo = photo;
}

public Product() {
super();
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((description == null) ? 0 : description.hashCode());
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((photo == null) ? 0 : photo.hashCode());
result = prime * result + ((price == null) ? 0 : price.hashCode());
result = prime * result + ((quantity == null) ? 0 : quantity.hashCode());
return result;
}

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Product other = (Product) obj;
if (description == null) {
if (other.description != null)
return false;
} else if (!description.equals(other.description))
return false;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (photo == null) {
if (other.photo != null)
return false;
} else if (!photo.equals(other.photo))
return false;
if (price == null) {
if (other.price != null)
return false;
} else if (!price.equals(other.price))
return false;
if (quantity == null) {
if (other.quantity != null)
return false;
} else if (!quantity.equals(other.quantity))
return false;
return true;
}

@Override
public String toString() {
return "Product [id=" + id + ", name=" + name + ", price=" + price + ", quantity=" + quantity + ", description="
+ description + ", photo=" + photo + "]";
}

}


web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>SpringMVCRestfulAndAngularjs</display-name>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<servlet>
<servlet-name>java9r</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>java9r</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

</web-app>


java9r-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">


<context:component-scan base-package="java9r" />

<mvc:annotation-driven />
<mvc:default-servlet-handler />

</beans>

index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html ng-app="myapp">
<head>
<meta charset="UTF-8">
<title>Angular Js</title>

</head>
<body ng-controller="homeController">
<div align="center">
<a href="#/">Home</a> | <a href="#/productslist">Products List</a> | <a
href="#/addproduct">Add Product</a>

<div ng-view></div>

<h1>java9r.com</h1>

</div>
<script type="text/javascript" src="scripts/js/angular.min.js"></script>
<script type="text/javascript" src="scripts/js/angular-route.min.js"></script>
<script type="text/javascript" src="scripts/app.js"></script>
<script type="text/javascript"
src="scripts/controller/homeController.js"></script>
<script type="text/javascript"
src="scripts/controller/editproductcontroller.js"></script>
<script type="text/javascript"
src="scripts/controller/productdetailscontroller.js"></script>
<script type="text/javascript"
src="scripts/controller/productdeletecontroller.js"></script>

<script type="text/javascript"
src="scripts/controller/productlistController.js"></script>

<script type="text/javascript"
src="scripts/controller/addproductcontroller.js"></script>

<script type="text/javascript" src="scripts/services/productService.js"></script>
</body>
</html>


app.js
 var app = angular.module('myapp', [ 'ngRoute' ]);

app.config(function($routeProvider) {
$routeProvider.when('/', {
controller : 'homeController',
templateUrl : 'views/home.html'
});

$routeProvider.when('/productslist', {
controller : 'productlistController',
templateUrl : 'views/productslist.html'
});

$routeProvider.when('/addproduct', {
controller : 'addproductcontroller',
templateUrl : 'views/addproduct.html'
});

$routeProvider.when('/productedit/:id', {
controller : 'editproductcontroller',
templateUrl : 'views/editproduct.html'
});

$routeProvider.when('/productdetails/:id', {
controller : 'productdetailscontroller',
templateUrl : 'views/productdetails.html'
});

$routeProvider.when('/productdelete/:id', {
controller : 'productdeletecontroller',
templateUrl : 'views/productslist.html'

});

$routeProvider.otherwise({
redirectTo : '/'
});
});

homeController.js
app.controller('homeController', function($scope) {
$scope.message = 'Home Controller Message';
});

productlistController.js
 app.controller('productlistController', function($scope, $routeParams,
$interval, productService) {
var c = 0;
// $scope.allproductslist = productService.allProducts();

var timer = $interval(function() {
$scope.allproductsmessage = 'Products List ';

productService.allProducts().then(function(allproducts) {
$scope.allproductslist = allproducts;
});
c++;
if (c === 50) {
$scope.message = "Restarting the timer again :-)";
c = 0;
}
}, 1000);

});


productdetailscontroller.js
 app.controller('productdetailscontroller', function($route, $scope,
$routeParams, $http, productService) {
var id = $routeParams.id;
productService.oneProduct(id).then(function(oneproduct) {
$scope.productdetailsmessage = 'Product Details ';
$scope.product = oneproduct;
});

});

addproductcontroller.js
app.controller('addproductcontroller', function($scope, $routeParams,
productService) {
$scope.addproductsmessage = 'New Product ';
$scope.addProduct = function(product) {
productService.saveProsuct(product);
}

});

editproductcontroller.js
 app.controller('editproductcontroller', function($route, $scope, $routeParams,
$http, productService) {
var id = $routeParams.id;
productService.oneProduct(id).then(function(oneproduct) {
$scope.editproductsmessage = 'Edit Product';
$scope.product = oneproduct;
});

$scope.updateProduct = function(product) {
productService.productupdate(product);
}

});

productdeletecontroller.js
app.controller('productdeletecontroller', function($route, $scope,
$routeParams, $http, productService) {
var id = $routeParams.id;
productService.ProductDelete(id);

});

productService.js
app
.service(
'productService',
function($http) {
var promise;
this.allProducts = function() {

promise = $http
.get(
"http://localhost:8080/SpringMVCRestfulAndAngularjs/product/all/")
.then(function(response) {

return response.data;
});

return promise;

};

this.oneProduct = function(id) {

promise = $http.get(
"http://localhost:8080/SpringMVCRestfulAndAngularjs/product/findone/"
+ id).then(function(response) {
return response.data;
});

return promise;

};
this.ProductDelete = function(id) {

promise = $http
.post(
"http://localhost:8080/SpringMVCRestfulAndAngularjs/product/delete/"
+ id)
.then(
function(response) {
window.location.href = 'http://localhost:8080/SpringMVCRestfulAndAngularjs/index.html#/productslist';
});

};

this.productupdate = function(product) {

$http
.post(
'http://localhost:8080/SpringMVCRestfulAndAngularjs/product/update/',
product)
.then(
function(response) {

window.location.href = 'http://localhost:8080/SpringMVCRestfulAndAngularjs/index.html#/productslist';
});

};
this.saveProsuct = function(product) {
$http
.post(
'http://localhost:8080/SpringMVCRestfulAndAngularjs/product/create/',
product)
.then(
function(response) {

window.location.href = 'http://localhost:8080/SpringMVCRestfulAndAngularjs/index.html#/productslist';
});

};

});


angular.min.js
 angular.min.js 

angular-route.min.js
 angular-route.min.js 

home.html
<h3>Home Page</h3>
{{message}}

productslist.html
 <div align="center">
<h3>{{allproductsmessage}}</h3>
<br> Search option <select ng-model="search">
<option ng-repeat="product in allproductslist">{{
product.name }}</option>
</select> | Search <input type="text" ng-model="search"> {{message}}
<table border="2" align="center">

<tr>
<td>Product-ID</td>
<td>Product Name</td>
<td>Price</td>
<td>Quantity</td>
<td>Description</td>
<td>Options</td>

</tr>


<tr ng-repeat="product in allproductslist | filter:search">
<td>{{ product.id }}</td>
<td>{{ product.name }}</td>
<td>{{ product.price }}</td>
<td>{{ product.quantity }}</td>
<td>{{ product.description }}</td>



<td><a href="#/productdetails/{{product.id}}">Details</a> | <a
href="#/productedit/{{product.id}}">Edit</a> | <a
href="#/productdelete/{{product.id}}">Delete</a></td>
</tr>


</table>


</div>

addproduct.html
 <h3>{{addproductsmessage}}</h3>
<form ng-submit="addProduct(product)">

<table width="23%" align="center" border="2">
<tr>
<td>Photo</td>
<td><select ng-model="product.photo">
<option value="product1.jpeg">Product 1</option>
<option value="product2.jpeg">Product 2</option>
<option value="product3.jpeg">Product 3</option>
<option value="product4.jpeg">Product 4</option>
<option value="product5.jpeg">Product 5</option>
<option value="product6.jpeg">Product 6</option>
<option value="product7.jpeg">Product 7</option>
<option value="product8.jpeg">Product 8</option>
<option value="product9.jpeg">Product 9</option>
<option value="product10.jpeg">Product 10</option>


</select> <br> <img alt="" src="images/{{product.photo}}" height="200px"
width="200px"></td>
</tr>
<tr>
<td>Id</td>
<td><input type="number" ng-model="product.id"></td>
</tr>
<tr>
<td>Name</td>
<td><input type="text" ng-model="product.name"></td>
</tr>
<tr>
<td>Price</td>
<td><input type="number" ng-model="product.price"></td>
</tr>
<tr>
<td>Quantity</td>
<td><input type="number" ng-model="product.quantity"></td>
</tr>
<tr>
<td>Description</td>
<td><textarea rows="8" cols="20" ng-model="product.description"></textarea>
</td>
</tr>

<tr>
<td></td>
<td>
<button type="submit">Save</button>
</td>
</tr>


</table>



</form>


editproduct.html
<div align="center">
<h3>{{editproductsmessage}}</h3>
<form ng-submit="updateProduct(product)">

<table width="23%" align="center" border="2">
<tr>
<td>Photo</td>
<td><select ng-model="product.photo">
<option value="product1.jpeg">Product 1</option>
<option value="product2.jpeg">Product 2</option>
<option value="product3.jpeg">Product 3</option>
<option value="product4.jpeg">Product 4</option>
<option value="product5.jpeg">Product 5</option>
<option value="product6.jpeg">Product 6</option>
<option value="product7.jpeg">Product 7</option>
<option value="product8.jpeg">Product 8</option>
<option value="product9.jpeg">Product 9</option>
<option value="product10.jpeg">Product 10</option>


</select> <br> <img alt="" src="images/{{product.photo}}" height="200px"
width="200px"></td>
</tr>
<tr>
<td>Id</td>
<td><input type="number" ng-model="product.id" readonly></td>
</tr>
<tr>
<td>Name</td>
<td><input type="text" ng-model="product.name"></td>
</tr>
<tr>
<td>Price</td>
<td><input type="number" ng-model="product.price"></td>
</tr>
<tr>
<td>Quantity</td>
<td><input type="number" ng-model="product.quantity"></td>
</tr>
<tr>
<td>Description</td>
<td><textarea rows="8" cols="20" ng-model="product.description"></textarea>
</td>
</tr>

<tr>
<td></td>
<td>
<button type="submit">Save</button>
</td>
</tr>


</table>
</form>
</div>

productdetails.html
<div align="center">
<h3>{{productdetailsmessage}}</h3>
<table width="23%" align="center" border="2">
<tr>
<td>Photo</td>
<td><select ng-model="product.photo" readonly>
<option value="product1.jpeg">Product 1</option>
<option value="product2.jpeg">Product 2</option>
<option value="product3.jpeg">Product 3</option>
<option value="product4.jpeg">Product 4</option>
<option value="product5.jpeg">Product 5</option>
<option value="product6.jpeg">Product 6</option>
<option value="product7.jpeg">Product 7</option>
<option value="product8.jpeg">Product 8</option>
<option value="product9.jpeg">Product 9</option>
<option value="product10.jpeg">Product 10</option>


</select> <br>
<img alt="" src="images/{{product.photo}}" height="200px"
width="200px"></td>
</tr>
<tr>
<td>Id</td>
<td><input type="number" ng-model="product.id" readonly></td>
</tr>
<tr>
<td>Name</td>
<td><input type="text" ng-model="product.name" readonly></td>
</tr>
<tr>
<td>Price</td>
<td><input type="number" ng-model="product.price" readonly></td>
</tr>
<tr>
<td>Quantity</td>
<td><input type="number" ng-model="product.quantity" readonly></td>
</tr>
<tr>
<td>Description</td>
<td><textarea rows="8" cols="20" ng-model="product.description"
readonly></textarea></td>
</tr>



</table>
<a href="#/productslist"> Close</a>

</div>

pom.xml
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>java9r.com</groupId>
<artifactId>SpringMVCRestfulAndAngularjs</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<name>SpringMVCRestfulAndAngularjs</name>
<url>http://maven.apache.org</url>
<!-- Specifying the Versions of Spring, Hiberante, MySQL etc -->
<properties>
<spring.version>4.3.0.RELEASE</spring.version>
<hibernate.version>4.3.8.Final</hibernate.version>
<jackson.library>2.7.5</jackson.library>
<mysql.version>5.1.10</mysql.version>
<junit-version>4.11</junit-version>
<servlet-api-version>3.1.0</servlet-api-version>
<jsp-version>2.1</jsp-version>
<jstl-version>1.2</jstl-version>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>


<!-- Specifying the Dependencies -->
<dependencies>

<!-- Spring 4 dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>



<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>

<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>${jsp-version}</version>
<scope>provided</scope>
</dependency>


<!-- org.codehaus.jackson/jackson-mapper-asl -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.5.0</version>
</dependency>

<!-- javax.persistence/persistence-api -->
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0</version>
</dependency>


<!-- commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.2</version>
</dependency>


<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<!-- artifact/org.slf4j/log4j-over-slf4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>1.6.6</version>
<scope>runtime</scope>
</dependency>
<!-- /artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.6</version>

<scope>compile</scope>
</dependency>

<!-- artifact/org.slf4j/slf4j-log4j12 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.6</version>

<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.library}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.library}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.library}</version>
</dependency>

<!-- artifact/org.javassist/javassist -->
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.18.1-GA</version>
</dependency>


</dependencies>

<build>
<finalName>SpringMVCRestfulAndAngularjs</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<configuration>
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
</configuration>
</execution>
</executions>
</plugin>


</plugins>
</build>
</project>
                                                                       output






0 comments:

Post a Comment

ads2