Aunque no le tengo especial apego al trabajo en Java con Anotaciones, no deja de ser cierto, que en Spring, nos ahorra mucho trabajo, aunque tambien es mas delicado el no equivocarse.  De cualquier forma, y como sois vosotros los que debeis decidir si quereis o no trabajar con anotaciones, yo he preparado una pequeña lista, a modo de recordatorio.

Anotación Se aplica a  Descripcion y Ejemplos
 @Autowired Metodos (setters) Inyectar un Bean usando la autodetección de Spring buscando por tipos
Aunque Autowirted implica Required, se puede evitar indicando
@Autowired(requiered=false)
.
@Autowired
public void createTemplate(@Qualifier(«xDs») Datasource dataSource){
 @Bean Configuracion-Metodo Permite definir comportamientos enlos métodos definidospublic class Foo {
public void init() {
// initialization logic
}
public void cleanup() {
// destruction logic
}
}@Configuration
public class AppConfig {
@Bean(initMethod = «init», destroyMethod = «cleanup» )
public Foo foo() {
return new Foo();
}
}
 @Component Clase indica que la clase anotada es un component (o un Bean de Spring)@Component(«Entrada»)
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
Public Class Entrada extends ……
 @Configuration Configuracion Permite establecer ficheros java para configurar@Configuration
public class ConfigA {
@Bean
public A a() {
return new A();
}
}
 @Controller Clase Component  confuncion Controlador@Controller(«usuarioController»)
public class UsuarioController() { ….
 @Import Configuracion Permite importar datos desde otra clase de configuracion@Configuration
@Import(ConfigA.class)
public class ConfigB {
@Bean
public B a() {
return new A();
}
}
Despues, solo nos deberemos referir a la configuracion de B, aunque tendremos accesos a todas las definicionespublic static void main(String[] args) {
ApplicationContext ctx =
new AnnotationConfigApplicationContext(ConfigB.class);
// now both beans A and B will be available…
A a = ctx.getBean(A.class);
B b = ctx.getBean(B.class);
}
 @ModelAttribute Parametros de un método Mapea el formulario albin que lo representa
 @PathVariable Parametros de un método Mapea una variable de la URL con un parametro@RequestMapping(value=»/{codigo}», method = RequestMethod.DELETE, produces = «text/html»)
public String ProductoController.delete(@PathVariable(«codigo») String codigo){….
 @PreDestroy método Señala el metodo a ejecutar antes de que se destruya el bean

@PreDestroy
public String Finalizar(){….

 @PostConstruct método Señala el metodo a ejecutar al terminar de construir el bean

@PreConstruct
public String Inicializa(){….

 @Qualifier Concreta posibles confusiones de nombres en Autowired@Autowired
@Qualifier(«student1»)
private Student student;
 @Repository
 @RequestMapping Clase o Método Relaciona una URLcon unaclaseo método. Siempreha de indicar una URL@RequestMapping(«/clientes/*»)
@Controller
public class  ProductosClientesController() {….Puede establecer el metodo que lo genera, e indicar lo que devuelve
@RequestMapping(method = RequestMethod.POST, produces = «text/html»)
 @RequestParam Parametros de un método Mapea nombres recibidos con parametros, y se puede indicar si es «required» o nopublic String busqueda(@RequestParam(value=»nombre» String nombre, Model articulos){…
@Required Metodos (setters) Indica que el dato es necesario@Required
public void setAge(Integer age) {
this.age = age;
}
@Resources Metodos (setters) Semejante a Autowired, pero buscara la coincidencia por nombre
@Resources(name=»edad»)
public void setAge(Integer age) {
this.age = age;
}
@Service
 @Scope Bajo Bean El Scope por defecto es Singlenton, pero lo podemos modificar@Configuration
public class AppConfig {
@Bean
@Scope(«prototype»)
public Foo foo() {
return new Foo();
}
}

Un comentario sobre “Spring – Anotaciones”

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.