Télécharger
JavaDoc
Documentation
Cette version comporte toute les fonctionnalités de la version Finale :
Spring Expression Language
Si vous connaissez les EL dans JSP ou JSF, alors cette nouvelle fonctionnalité sera parlante pour vous.
Utilisé dans le fichier XML de Spring, elle permet de simplifier la configuration de Bean, rendre l'injection plus dynamique, etc.
Par exemple :
Code xml : | Sélectionner tout |
1 2 3 4 5 6 | <bean id="fileNameGenerator" class="FileGenerator"/> <bean id="BeanB" class="monBeanB" scope="prototype"> <property name="fileName" value="#{fileNameGenerator.generate()}"/> </bean> |
A chaque récupération d'un BeanB, la valeur de la propriété fileName sera le retour de la méthode generate() du BeanB.
Mais le langage est plus complet que cela, il permet d'utiliser des conditions, d'accéder a divers objet implicite (variable système, attribut de scope request ou session, ...)
Par ailleurs, il est intéressant de savoir que cet API peut être utiliser dans un projet de manière standalone, sans avoir a embarqué Spring au complet
Support de REST - Serveur
Coté Serveur, Spring 3.0 apporte le support des URLs Restful dans le module @MVC.
Exemple :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 | @RequestMapping("/speaker/{id}/edit") public String setupFormEdit(@PathVariable("id") Integer speakerId, Model model) { model.addAttribute("speaker", repository.getById(speakerId)); return "speakerForm"; } |
Support de REST - Client
Le support coté client est réalisé par la classe RestTemplate.
Celle-ci propose des méthodes pour les différentes méthodes HTTP : GET, POST, PUT, DELETE, OPTION.
Exemple :
Code : | Sélectionner tout |
1 2 | URI uri = template.postForLocation("http://localhost:8080/spring-rest/speakers/new", speaker); |
Il est désormais possible d'utiliser la nouvelle spécification JSR 303 pour la validation dans Spring 3.0.
Avec une simple configuration, il est désormais possible d'effectuer automatiquement la validation d'un formulaire dans Spring MVC :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | @RequestMapping(value = "new", method = RequestMethod.POST) public String processEditNew(@ModelAttribute @Valid Speaker speaker, BindingResult result, SessionStatus status) { // La validation est réalisée automatiquement via le validateur de la JSR-303 // car le paramètre Speaker possède l'annotation @Valid if (result.hasErrors()) { return "speakerForm"; } else { repository.save(speaker); status.setComplete(); return "redirect:/speakers/" + speaker.getId(); } } |
Avec de lever la limitation des PropertyEditor qui ne permettait la conversion que d'un Object vers une String et réciproquement, Spring 3.0 propose une nouvelle API plus souple permettant la conversion d'un Object vers un autre Object.
Inclusion de JavaConfig
Afin de permettre une configuration Full Annotation, une partie des Annotation de JavaConfig sont intégrés dans Spring Framework directement
- @Configuration
- @Bean
- @DependsOn
- @Primary
- @Lazy
- @Import
- @Value
Inclusion de Spring OXM
Le module de Mapping Object <-> XML de Spring WS est lui aussi intégré dans Spring Framework.
Il est d'ailleurs utilisé avec les Vue XML de Spring MVC.