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?

Comments
4 Comments »
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!

Marcos Sousa | March 13, 2008

J2EE Spider é uma ferramenta open-source brasileira para desenvolvimento rápido de aplicações web baseadas em formulários. Conforme matéria disponibilizada site InfoQ, o J2EE Spider tem como funcionalidades:

- Interface visual para geração de código.
- Suporte a builds incrementais.
- Suporte a Round-trip
- O código gerado pode ser internacionalizado.
- Suporte a alguns frameworks.

Tem suporte a templates, através do SiteMesh e Facelets (para JSF), o suporte a persistência é feito através do hibernate e tem suporte a injeção de dependência usando Spring.

Links para download:
Instalador Windows
Multi-Plataforma

Comments
No Comments »
Categories
Hibernate, Java, Java Server Faces, Open-source, RAD
Tags
J2EE Spider, Java EE, Open-source brasileiro, RAD
Comments rss Comments rss
Trackback Trackback

Jboss Seam – Getting started: Page Actions!

Marcos Sousa | March 1, 2008

Um dos grandes problemas que os desenvolvedores JSF tem é lidar basicamente com 2 situações relacionadas com GET: Passar parâmetros e executar ações via GET. Vou dar dois exemplos clássicos:
1° – Você tem um sistema de cadastro de notícias. Dentro deste sistema você tem uma página que faz a listagem das notícias cadastradas. Para listar estas notícias cadastradas assim que carregasse a página você tinha duas saídas: uma seria fazer o controle no método get de seu datatable:
- No Managed Bean

private List<News> newsList;
...
public List<News> getNewList() {
if (newsList == null) {
newsList = myService.listNews();
}
return newsList;
}

Na página seria algo:

<h:dataTable value="#{newBean.newsList}">
<!-- colunas da tabela -->
</h:dataTable>

A outra forma você teria que criar a ação de listagem e para acessar a página você teria que chamar a página de um componente jsf: um menu ou um botão que fizesse uma requisição post invocando a ação.

Usando o recurso de Page Actions do Jboss Seam você não precisa mais usar estas “soluções alternativas” para executar ações e passar parâmetros para um Managed Bean via GET. Dentro de seu projeto o Seam irá reconhecer todos arquivos xml que sigam o padrão: *.page.xml ou o arquivo pages.xml dentro da pasta WEB-INF. Veja um exemplo do arquivo:

<?xml version="1.0" encoding="UTF-8"?>
<pages xmlns="http://jboss.com/products/seam/pages"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.com/products/seam/pages

http://jboss.com/products/seam/pages-2.0.xsd">

<page view-id="/news/list.xhtml"
action="#{newsBean.listNews}"
conversation-required="false"/>

<page view-id="/news/EditNews.xhtml">
<param name="newsId" value="#{newsBean.news.newsId}"/>
<action execute="#{newsBean.loadNewsById(newsBean.news.newsId)}"
if="#{newsBean.news.newsId != null}"/>
</page>
</pages>

O código acima chama a ação JSF listNews antes de renderizar a página /news/list.jsf, que pode ser chamada via GET ou POST. O mesmo acontece para a edição de notícias /news/EditNews.jsf?newsId=9. Primeiro será vinculado o valor do parâmetro newsId com propriedade newsBean.news.newsId e após será chamada a ação loadNewsById que carrega a notícia recebendo como parâmetro o identificador da notícia.

Sem dúvida nenhuma o recurso de Page Actions é bem legal para se trabalhar com JSF. Vale a pena usar! Em breve mostrarei mais dicas de Page Actions!

Comments
6 Comments »
Categories
Java, Java Server Faces, Jboss Seam
Tags
GET, Java, Java Server Faces, Jboss Seam, JSF, Page Actions
Comments rss Comments rss
Trackback Trackback

« Previous Entries

Núvens de tags

Agile Eventos Facelets GET Hibernate 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 linux mare marébh maré de agilidade Microsoft No Dialect mapping for JDBC type: 7 Page Actions PostGreSQL RHDS rich:fileUpload RichFaces Rich Faces RichFaces 3.2 Scrum Seam-gen Seam Framework Seam PDF Spring Spring Framework TDD URL Rewrite URL User Friendly Variable Resolver Vídeo Aula XP

Meus últimos tweets

Error: Twitter did not respond. Please wait a few minutes and refresh this page.

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