Marcos Sousa’s Blog

Blog sobre desenvolvimento de software
  • rss
  • Home
  • Sobre

Anotando beans no Spring 2.5

Marcos Sousa | March 27, 2008

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?

Categories
Java EE, Spring
Tags
annotations, anotações, Java, Java EE, Spring 2.5, Spring Framework
Comments rss
Comments rss
Trackback
Trackback

« J2EE Spider: Rad brasileiro para Web! Jboss Seam – Getting started: Navigation Cases! »

3 Responses to “Anotando beans no Spring 2.5”

  1. Ciro Macedo says:
    April 18, 2008 at 2:48 pm

    ..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 !!!!

    Reply
  2. marcossousa says:
    April 18, 2008 at 3:03 pm

    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!

    Reply
  3. Ciro Macedo says:
    May 9, 2008 at 11:13 am

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

    Reply

Leave a Reply

Click here to cancel reply.

Núvens de tags

Agile Agile2009 Agile Conference Facelets GET Hibernate IDE incompatiblidades Itext Java Java EE Java Magazine Java Server Faces JavaServer Faces Java Vídeo Magazine Jboss jboss-seam-itext Jboss Developer Studio Jboss Seam JDBC type: 7 JPA JSF JSFUnit linux Microsoft No Dialect mapping for JDBC type: 7 Page Actions PostGreSQL RHDS rich:fileUpload Rich Faces RichFaces RichFaces 3.2 Scrum Seam-gen Seam Framework Seam PDF Spring Spring Framework TDD URL Rewrite URL User Friendly Vídeo Aula Variable Resolver XP

Meus últimos tweets

  • Lots of issues solved in python petshop project. I really love to have access to the source code, I feel more comfortable to solve them #win 1 hour ago
  • Você trabalha muito ? http://bit.ly/acRVHJ (via @handersonbf) #rimuito #nerd #geek 5 hours ago
  • RT: @jeveaux: RT @makoto_vix Olha o que esta no site do serra ! http://bit.ly/9b1lY4. #boa 13 hours ago
  • Using Google Calendar for planning my activities for this week. As usual just 5hs/day to sleep. Now, let's try to follow it! 1 day ago
  • Lost in Pandora, an extra season of LOST: http://meme.yahoo.com/marcossousa/p/8Rzv4E2 1 day ago
  • The correct spell of CCAA: http://meme.yahoo.com/marcossousa/p/wKmeANO #dumb 1 day ago
  • Inscrição feita para o Open Hack Brazil 2010. Nos encontramos lá. http://tinyurl.com/yjhkw4c #brhackday 3 days ago
  • RT: @mynameisflaw: Gilead + GWT don't work with Seam Remoting! :( 3 days ago
  • @guinascimento @igocoelho Foi muito bom mesmo. Além da festa que fizemos aquele Bloomin Onion estava muito gosto. 3 days ago
  • RT: @gchapiewski: RT @smashingmag: Removing Features: How To Avoid Feature Creep - http://bit.ly/9HT3Da 3 days ago

Anúcios

Categorias

  • .net
  • Agile
  • Agile Conference 2009
  • Artigos
  • Atualidades
  • c++
  • cinema
  • Django
  • DRY
  • Eventos
  • Flex
  • Formula 1
  • Hibernate
  • IDE
  • Inutilidades
  • Java
  • Java EE
  • Java Server Faces
  • Jboss Seam
  • linux
  • Mac OS
  • Microsoft
  • Open-source
  • Palestras
  • Python
  • RAD
  • RIA
  • RichFaces
  • Scrum
  • Software Livre
  • Spring
  • Spring Annotations
  • TDD
  • Testes
  • Uncategorized
  • Vídeo Aulas

Links recomendados

  • AJ Soluções
  • Ary Júnior
  • Erko Bridee
  • Fragmental
  • Fragmental TW
  • Guilherme Chapiewski
  • Handerson Frota
  • Jeveaux
  • Juliano Carniel
  • Onipresente
  • Passes de Letra
  • PortalJava.com
  • Rafael Carneiro
  • Rafael Pontes

DevMedia Post’s

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox