You are on page 1of 3

@Anotaciones

Spring proporciona dos anotaciones para la inyeccin de dependencias: @Autowired y @Qualifier. @Autowired funciona por tipo, y es que ella sola se encarga de buscar un bean de la clase correspondiente (inyectamos el DAO que vamos a probar sin necesidad de declararlo en el xml). En definitiva para lo que sirve es para crear los objetos por ejemplo si tu lo pones encima de un private LectorDao lectorDao no tendr que hacer el new LectorDao() Spring se encarga de hacerlo por ti. 1 @Autowired 2 private ExampleService exampleService; La gran limitacin de esta anotacin es que no es posible hacer inyeccin por nombre (qu pasa si tenemos varios beans del mismo tipo?), por lo que la solucin pasa por complementarla con @Qualifier: 1 @Autowired 2 @Qualifier("exampleService") 3 private ExampleService exampleService; Mientras no llega la versin 3.0 de Spring, una alternativa menos verbosa sera usar la anotacin @Resource (perteneciente al JSR-250): Common Annotations for the Java Platform. Esta anotacin slo se puede usar en atributos y en mtodos setter. 1 @Resource(name="exampleService") 2 private ExampleService exampleService; Si tuviramos mas de una implementacin, puede que Spring inyectara la que no queremos. En todo caso, si queremos estar 100% seguros, siempre podemos sustituir @Autowired por @Resource(name=PlayerDao) para indicar exactamente que componente queremos inyectar. @Component es el estereotipo principal, indica que la clase anotada es un component (o un Bean de Spring). @Repository, @Service y @Controller son especializaciones de @Component para casos concretos (persistencia, servicios y presentacin). Esto significa que puede usarse siempre @Component pero lo adecuado es usar estos estereotipos ya que algunas herramientas o futuras versiones de Spring pueden aadir semntica adicional. @Controller, que indica que dicha clase es un controller. @Controller es capaz de manejar peticiones web. Debido a que @Controller es una especializacin de la anotacin de estereotipo @Component , esta clase ser automticamente detectada por el contenedor de Spring como parte del proceso de escaneado de componentes del contenedor, creando una definicin de bean y permitiendo a la instancias a ser inyectadas con dependencia como si el bean hubiera sido definido en el XML de Spring. @Repository es una anotacin de Spring que indica que la presente clase es un DAO. Cuando usamos @Repository, el contenedor de Spring sabe cmo inyectar el EntityManager sin que tengamos que decirle nada explcitamente. Estamos indicando que esta es una clase relacionada con la capa de persistencia, y que debe ser un Singleton. @Service Anotacin de Spring que indica que la presente clase es un servicio de la clase de negocio.

@RequestMapping Mapea las peticiones. Las diferentes estrategias para mapear son: Simple

Relativo al nombre del controlador

Externalizado

Basado en convencin (recomendado)

@ Deprecated: esta anotacin indica que el elemento marcado es obsoleto y ya no debe ser utilizado. @ Override esta anotacin informa al compilador que el elemento est destinado a reemplazar un elemento declarado en una superclase (mtodos primordiales sern discutidos en la leccin el ttulo "Interfaces y Herencia"). @ SuppressWarnings Esta anotacin se utiliza para evitar un error en tiempo de compilacin al implementar la interfaz java.io. (rawtypes es para suprimir las advertencias relativas al uso de tipos de primas raw types) @ContextConfiguration permite decir dnde estn los ficheros de configuracin de Spring @Entity: indica que la clase en una entidad @Table: indica que tabla estamos mapeando en la clase @Id: indica la propiedad que acta como identificador @Column: indica contra que columna de la tabla se mapea una propiedad Las anotaciones que aparecern en cada una de las capas son: Presentacin: @ManagedBean y @SessionScoped Negocio: @Service, @Autowired y @Transactional DAO's: @Repository, @Autowired Pojos: @Entity, @Table, @Id, @Column

You might also like