SpringSource annonce la sortie de la première Release Candidate du Framework Spring 3.0.

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 - Visualiser dans une fenêtre à part
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 - Visualiser dans une fenêtre à part
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";
	}
Par ailleur, des nouvelles vues sont leur apparitions : JSON, XML, RSS, ATOM.

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 - Visualiser dans une fenêtre à part
1
2
 
URI uri = template.postForLocation("http://localhost:8080/spring-rest/speakers/new", speaker);
Support de Bean Validation
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 - Visualiser dans une fenêtre à part
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();
		}
 
	}
Nouvelle API de Conversion
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.