programania
Spring 2.0 Annotations
Octubre 31st, 2006 - [Enlace local]
Hace tiempo que me he ausentado, pero ha sido en contra de mi voluntad , ya que otros menesteres me han retenido aunque al fin estoy de vuelta y con más fuerza que nunca.
Me ha dado tiempo a leer una noticia que ha hecho que la alegría perle mi faz, Spring tiene annotations para los retractores del XML y para usarlas sólo hace falta la JDK 1.5 y la librería spring.jar.
Sabéis que soy amante de demostrar el movimiento andando así que vamos directamente al grano:
@Bean(name = “test”)
public class TestObject {
public void printName() {
System.out.println(”No Name, just an example”);
}
}
Declaramos un bean en el contexto de Spring con la annotation @Bean.
@Bean(name=”main”)
public class Main {
private TestObject test;
/**
* this method should be called from spring to set the variable to the other bean in the context which has the name set to test
* @param test
*/
public void setTest(TestObject test) {
this.test = test;
}
public static void main(String[] args){
TOAnnotationXmlApplicationContext appctx = new TOAnnotationXmlApplicationContext(”classpath*:applicationContext.xml”);
Main m = (Main) appctx.getBean(”main”);
m.test.printName();
}
Esta parte es algo más compleja ya que a parte de declarar un bean en el contexto de Spring hacemos inyeccion de dependencias a través del nombre del bean, es decir, Spring detecta que existe en el bean Main una propiedad de una clase creada previamente (TestObject) llamada test (como el bean creado anteriormente) así que automáticamente lo inyecta. Bonito ¿verdad?
El XML quedaría así:
El XML se reduce a la mínima expresión. Lo único malo de las annotations es que ligan nuestra aplicación al container de Spring así que en mi caso no las recomiendo para la aplicación final pero si para desarrollar rápidamente un prototipo el XML ya se hará más tarde. También tengo que comentar que Spring 2.0 soprta annotations para crear Aspectos con AspectJ y para manejar transacciones de manera declarativa, osea, que el que lo desee puede decir adiós al XML.
Para los que quieran indagar más la Url es:
No Tags