Skip to content

criluc/spring-tutorial

Repository files navigation

Synopsis

Tutorial in Italiano su Spring Boot e Spring MVC con utilizzo di Java Persistent API (JPA) ed Hibernate.

Il progetto contiene:

  • le slide per un'esercitazione sull'utilizzo di Spring, disponibili nei formati:
  • revealjs dentro il file slide-esercizione.zip
  • asciidoctor nella file src/docs/spring-training.adoc e src/docs/jpa-training.adoc
  • il codice sorgente degli esempi mostrati nell'esercitazione
  • (Applicazione Spring Boot per la gestione di un blog)

Le esercitazioni sono suddivise in tre fasi, corrispondenti ai branch:

  • first
  • second
  • third

Fare il checkout del branch desiderato in funzione del punto da cui si desidera partire.

Gli esempi sono basati sull'utilizzo di Java 8, Maven per la risoluzione delle dipendenze e h2 come database e Spring Boot 1.3.

Le slide dell'esercitazione sono scritte con asciidoctor + revealjs.

Code Example

La teoria e gli esercizi pratici guidano fino alla scrittura di una piccola applicazione per la gestione di un Blog. Sono presenti esempi di Controller, Entity JPA, DAO e viste realizzate con Freemarker e Twitter Bootstrap per il template html/css.

  //Controller Articles.java
  //...
  @RequestMapping("/")
  public String list(Model model, @RequestParam("surname") Optional<String> surname,
      @RequestParam("tagName") Optional<String> tagName) {
    final Page<Article> articles;

    if (surname.isPresent()) {
      articles = articleDao.findByAuthorSurname(surname.get(), new PageRequest(0, PER_PAGE));
    } else if (tagName.isPresent()) {
      articles = articleDao.findByTagName(tagName.get(), new PageRequest(0, PER_PAGE));
    } else {
      articles = articleDao.findAll(new PageRequest(0, PER_PAGE));
    }

    model.addAttribute("articles", articles);
    return "index";
  }
  
  ...
  
  public interface ArticleDao extends PagingAndSortingRepository<Article, Integer> {

  /**
   * @param surname il cognome dell'autore da ricercare
   * @return la lista degli articoli il cui autore ha un determinato cognome
   */
  @Query("SELECT a FROM Article a WHERE a.author.surname = ?1")
  Page<Article> findByAuthorSurname(String surname, Pageable page);
  

Installation

Per la parte dei sorgenti Java è possibile utilizzare questo progetto come progetto Maven ed importarlo nel proprio editor preferito.

Le slide delle esercitazioni sono in ascidoctor + revealjs per produrle seguire le istruzioni in src/docs/README.txt.

Contributors

Marco Andreini [email protected]

Cristian Lucchesi [email protected], @criluc

License

GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007

About

Spring Boot Tutorial in Italiano

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •