Anotando beans no Spring 2.5

Java EE, Spring Add comments

Uma das mudanças principais do Spring 2.5 foi a inclusão de anotações. Mas como anotar um bean no Spring 2.5? Como ele será automaticamente adicionado no contexto Spring? Estas são algumas perguntas que venho recebendo com freqüência por e-mails e vendo em listas de discursão.

Bom para anotar um bean basicamente há 3 anotações: @Service, @Repository e @Controller. Você pode ou não especificar um nome para seu bean. Caso você não especifique ele irá considerar o nome da classe sendo o nome do seu bean. Veja um exemplo:


@Service("mycarService")
public classe CarService {
// algum código aqui
}

Você pode está ser perguntando, mas qual a diferença e qual anotação usar para anotar meus beans? Bom segundo a documentação do Spring Framework é aconselhável que use a anotação @Repository para beans de acesso a dados (DAO), @Service para lógica de negócio e @Controller para beans que fazer o controle web.

Ainda falta responder a uma pergunta:  Como ele será automaticamente adicionado no contexto Spring? São exigidos dois passos no arquivo de configuração, o primeiro é habilitar o uso de anotações e o outro é dizer em quais pacotes estão os beans anotatos, veja um exemplo:


<!-- Faz a indentificação dos beans anotados com @Service, @Repository e @Controller -->
<context:component-scan base-package="com.marcossousa.myblog"/>
<!-- Habilita a configuração de beans via anotações -->
<context:annotation-config/>

Com isto todos os beans antotados no pacote com.marcossousa.myblog serão adicionados automaticamente no contexto do spring. Fácil não?

3 comentarios: “Anotando beans no Spring 2.5”

  1. Ciro Macedo:

    ..fala Marcos, blz ?? ..cara, como é que ficaria uma injeção de dependencia do tipo SETTER com a estrutura de anotação ????

    seria algo como:

    @Service(”propriedade”)
    public void setDependencia(Dependencia propriedade){
    this.propriedade = propriedade;
    }

    ???

    valeu !!!!

  2. marcossousa:

    Olá Ciro,

    Bom a injeção de dependência pode ser feito de duas formas: via xml configurando para fazer a injeção de dependências com base no nome ou através da anotação de forma bem semelhante ao que você colocou só que usando a anotação @Autowired:

    @Autowired
    public void setDependencia(Dependencia propriedade){
    this.propriedade = propriedade;
    }

    é isto aí, bem simples!

  3. Ciro Macedo:

    …massa cara, funcionou do jeito que vc falou!!!

    só que antes eu consegui fazer funcionar aqui utilizando a anotação @Resource do JRE 6 em conjunto com o @Service

    …ficou mais ou menos assim

    @Service(”minhaClasse”)
    public class MinhaClasse{

    @Resource(name=”minhaPersistencia”)
    private Persistencia minhaPersistencia;

    }

    ..so não sei o impacto disso, mais funciona tbm !!! =)

Deixe seu comentario

WP Theme & Icons by N.Design Studio
Assine Assine os comentarios