Anotando beans no Spring 2.5
Marcos Sousa | March 27, 2008Uma 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?






..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 !!!!
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!
…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 !!! =)