Spring Boot

From My Limbic Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Scope

  • Big environment wich is use to help us develop applications.
  • if Spring MVC need configuration ? Spring Boot does it.
  • Other jars needed to develop web applications ? there are starters allowing to easily build application
  • Monitoring, and developer friendly tools
  • Good integration with embeded servers: No need to develop a WAR file always, it is possible to develop a JAR and directly run it cause the Tomcat server is directly inside the JAR.

Comparaison with Spring Boot and Spring https://www.springboottutorial.com/spring-boot-vs-spring-mvc-vs-spring

What's new

Come with:

  • Autoconfiguration
    • Previously (Spring_MVC) Bean, Resources, Servlet, View Resolver configuration
  • Starters (Spring boot starter web ...)
    • Bring all the dependencis required to build web applications

Mock - Dependency Injection

<source lang="java">

@Component
public class WelcomeService {
  //Bla Bla Bla
}

@RestController
public class WelcomeController {

  @Autowired
  private WelcomeService service;

  @RequestMapping("/welcome")
  public String welcome() {
    return service.retrieveWelcomeMessage();
  }
}

</source>

Spring Boot Starter Project Options

Dependencies to use in pom.xml available to start faster a spring boot project.

spring-boot-starter-*:

  • -web-services - SOAP Web Services
  • -web - Web & RESTful applications
  • -test - Unit testing and Integration Testing
  • -jdbc - Traditional JDBC
  • -hateoas - Add HATEOAS features to your services
  • -security - Authentication and Authorization using Spring Security
  • -data-jpa - Spring Data JPA with Hibernate
  • -cache - Enabling Spring Framework’s caching support
  • -data-rest - Expose Simple REST Services using Spring Data REST

Technical Stuff

spring-boot-starter-*:

  • -actuator - To use advanced features like monitoring & tracing to your application out of the box
  • -undertow, -jetty, -tomcat To pick your specific choice of Embedded Servlet Container
  • -logging - For Logging using logback
  • -log4j2 - Logging using Log4j2