Académique Documents
Professionnel Documents
Culture Documents
Spring Boot
4 octobre 2016
Objectifs
Déploiement facilité
@SpringBootApplication
@RestController
public class HelloWorld {
@RequestMapping("/")
public String hello() {
return "Hello World!";
}
}
Technologies supportées
Complexité de DataSourceAutoConfiguration
Récupération de la DataSource par JNDI
Choix du pool de connexions : Tomcat, HikariCP, Commons DBCP 1 ou 2
Paramétrage de la connexion à la base de données
Configurationapplication.properties
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
Base de données embarquée par analyse des JAR dans le classpath
Support du XA
Exposition du pool via JMX
Configuration applicative
Centralisée dans
application.properties
ou application.yml
Complétion dans l’IDE
Configuration extensible et TypeSafe
@ConfigurationProperties
Possibilité de configuration spécifique à un environnement de déploiement
java -jar myapp,jar --spring.profiles.active=production
Charge application-production.properties
Des tests auto-configurés
@Autowired
private MockMvc mockMvc; Simulacre Mockito enregistré dans le
contexte applicatif Spring et mis à
@MockBean disposition par auto-wiring
private ClinicService clinicService;
@Test
public void testDisplayOwner() throws Exception {
Owner george = new Owner(1, "George", "Franklin");
given(this.clinicService.findOwnerById(1)).willReturn(george);
mockMvc.perform(get("/owners/{ownerId}", 1))
.andExpect(status().isOk())
.andExpect(model().attribute("owner", hasProperty("lastName", is("Franklin"))))
.andExpect(model().attribute("owner", hasProperty("firstName", is("George"))))
.andExpect(view().name("owners/ownerDetails"));
}
}
Live coding