Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <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>com.boraji.tutorial.spring</groupId>
- <artifactId>spring-mvc-restfull-crud-example</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>war</packaging>
- <properties>
- <failOnMissingWebXml>false</failOnMissingWebXml>
- </properties>
- <dependencies>
- <!-- Spring MVC Dependency -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-webmvc</artifactId>
- <version>4.3.10.RELEASE</version>
- </dependency>
- <!-- Spring ORM -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-orm</artifactId>
- <version>4.3.10.RELEASE</version>
- </dependency>
- <!-- Hibernate ORM -->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>5.2.11.Final</version>
- </dependency>
- <!-- Hibernate-C3P0 Integration -->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-c3p0</artifactId>
- <version>5.2.11.Final</version>
- </dependency>
- <!-- c3p0 -->
- <dependency>
- <groupId>com.mchange</groupId>
- <artifactId>c3p0</artifactId>
- <version>0.9.5.2</version>
- </dependency>
- <!-- Mysql Connector -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>6.0.5</version>
- </dependency>
- <!-- Jackson API for JSON -->
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.8.7</version>
- </dependency>
- <!-- Servlet Dependency -->
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
- <version>3.1.0</version>
- <scope>provided</scope>
- </dependency>
- <!-- this is for integrating swagger -->
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-swagger2</artifactId>
- <version>2.6.1</version>
- </dependency>
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-swagger-ui</artifactId>
- <version>2.6.1</version>
- </dependency>
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-data-rest</artifactId>
- <version>2.6.1</version>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.5.1</version>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- </configuration>
- </plugin>
- <!-- Embedded Apache Tomcat required for testing web application -->
- <plugin>
- <groupId>org.apache.tomcat.maven</groupId>
- <artifactId>tomcat7-maven-plugin</artifactId>
- <version>2.2</version>
- <configuration>
- <path>/</path>
- </configuration>
- </plugin>
- </plugins>
- </build>
- package com.boraji.tutorial.spring.config;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.ComponentScan;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.web.servlet.config.annotation.CorsRegistry;
- import org.springframework.web.servlet.config.annotation.EnableWebMvc;
- import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
- import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
- import com.google.common.base.Predicates;
- import springfox.documentation.builders.RequestHandlerSelectors;
- import springfox.documentation.spi.DocumentationType;
- import springfox.documentation.spring.web.plugins.Docket;
- @Configuration
- @EnableWebMvc
- @ComponentScan(basePackages = { "com.boraji.tutorial.spring.controller" })
- public class WebConfig extends WebMvcConfigurerAdapter {
- @Override
- public void addCorsMappings(CorsRegistry registry) {
- registry.addMapping("/**");
- }
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
- registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
- }
- }
- package com.boraji.tutorial.spring.controller;
- import java.util.List;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.http.ResponseEntity;
- import org.springframework.web.bind.annotation.CrossOrigin;
- import org.springframework.web.bind.annotation.DeleteMapping;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.PutMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RestController;
- import com.boraji.tutorial.spring.model.Book;
- import com.boraji.tutorial.spring.service.BookService;
- import io.swagger.annotations.Api;
- @CrossOrigin(origins = "*")
- @RestController
- public class BookController {
- @Autowired
- private BookService bookService;
- /*---Add new book---*/
- @PostMapping("/book")
- public ResponseEntity<?> save(@RequestBody Book book) {
- long id = bookService.save(book);
- return ResponseEntity.ok().body("New Book has been saved with ID:" + id);
- }
- /*---Get a book by id---*/
- @GetMapping("/book/{id}")
- public ResponseEntity<Book> get(@PathVariable("id") long id) {
- Book book = bookService.get(id);
- return ResponseEntity.ok().body(book);
- }
- /*---get all books---*/
- @GetMapping("/book")
- public ResponseEntity<List<Book>> list() {
- List<Book> books = bookService.list();
- return ResponseEntity.ok().body(books);
- }
- /*---Update a book by id---*/
- @PutMapping("/book/{id}")
- public ResponseEntity<?> update(@PathVariable("id") long id, @RequestBody Book book) {
- bookService.update(id, book);
- return ResponseEntity.ok().body("Book has been updated successfully.");
- }
- /*---Delete a book by id---*/
- @DeleteMapping("/book/{id}")
- public ResponseEntity<?> delete(@PathVariable("id") long id) {
- bookService.delete(id);
- return ResponseEntity.ok().body("Book has been deleted successfully.");
- }
- }
- # MySQL properties
- mysql.driver=com.mysql.cj.jdbc.Driver
- mysql.url=jdbc:mysql://localhost:3306/bookdb
- mysql.user=root
- mysql.password=root
- # Hibernate properties
- hibernate.show_sql=true
- hibernate.hbm2ddl.auto=update
- #C3P0 properties
- hibernate.c3p0.min_size=5
- hibernate.c3p0.max_size=20
- hibernate.c3p0.acquire_increment=1
- hibernate.c3p0.timeout=1800
- hibernate.c3p0.max_statements=150
Add Comment
Please, Sign In to add comment