spring-boot
Spring Boot-Hibernate-REST Integration
Ricerca…
Aggiungi supporto Hibernate
- Aggiungi dipendenza spring-boot-starter-data-jpa a pom.xml. È possibile saltare il tag della versione , se si utilizza il genitore spring-boot-starter- gen come padre del proprio pom.xml . La dipendenza sotto porta Hibernate e tutto ciò che riguarda JPA al tuo progetto ( riferimento ).
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
Aggiungi il driver del database a pom.xml . Questo sotto è per il database H2 ( riferimento ).
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency>
Abilita la registrazione di debug per Hibernate in application.properties
logging.level.org.hibernate.SQL = debug
o in application.yml
logging:
level:
org.hibernate.SQL: debug
Aggiungi classe entità al pacchetto desiderato in $ {project.home} / src / main / java / , ad esempio in com.example.myproject.domain ( reference ):
package com.example.myproject.domain; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import java.io.Serializable; @Entity public class City implements Serializable { @Id @GeneratedValue public Long id; @Column(nullable = false) public String name; }
Aggiungi import.sql a $ {project.home} / src / main / resources / . Inserisci le istruzioni INSERT nel file. Questo file verrà utilizzato per la popolazione dello schema del database ad ogni avvio dell'app ( riferimento ):
insert into city(name) values ('Brisbane'); insert into city(name) values ('Melbourne');
Aggiungi classe Repository al pacchetto desiderato in $ {project.home} / src / main / java / , ad esempio in com.example.myproject.service ( riferimento ):
package com.example.myproject.service; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import java.io.Serializable; import com.example.myproject.domain.City; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.repository.Repository; interface CityRepository extends Repository<City, Long> { Page<City> findAll(Pageable pageable); Page<City> findByName(String name); }
Fondamentalmente è tutto! A questo punto è già possibile accedere al database utilizzando i metodi di com.example.myproject.service.CityRepository .
Aggiungi il supporto REST
- Aggiungi la dipendenza da spring-boot-starter-web a pom.xml. È possibile saltare il tag della versione , se si utilizza spring-boot-starter- gen come padre del proprio pom.xml ( riferimento ).
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Aggiungi il controller REST al pacchetto desiderato, ad esempio a com.example.myproject.web.rest ( riferimento ):
package com.example.myproject.web.rest; import java.util.Map; import java.util.HashMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; @RestController public class VersionController { @RequestMapping("/api/version") public ResponseEntity get() { final Map<String, String> responseParams = new HashMap(); responseParams.put("requestStatus", "OK"); responseParams.put("version", "0.1-SNAPSHOT"); return ResponseEntity.ok().body(responseParams.build()); } }
Avvia l'applicazione Spring Boot ( riferimento ).
Il controller è accessibile all'indirizzo http: // localhost: 8080 / api / versione .