OpenLaszlo 4.9 is Available
Monday, November 1st, 2010OpenLaszlo 4.9 is now available for download.
+info!
_o/
![]()
OpenLaszlo 4.9 is now available for download.
+info!
_o/
![]()
Vamos direto ao ponto! Enquanto meu Mac tá ali baixando algumas cositas, vou deixar uma dica esperta, rápida e fácil de configurar Bean com Spring Annotation para a injeção de dependência.
#1 - Configure seu Bean:
Para configurar um Serviço, basta utilizar a annotation Configuration e o seu Bean injection, basta utilizar a annotation Bean no método. Neste caso o serviço está configurando um Bean chamado de “casa”.
Veja que você pode configurar o Scopo do serviço, para isto utilize Scope e diga qual tipo de escopo.
#2 - Como chamar? Neste exemplo, usei um Servlet para realizar a chamada.
Lembrando que ao instanciar a variável context, ela será do tipo singleton. Ou seja, você pode chamar várias vezes os seus bean que estão configurados mas seu construtor será executado somente 1 vez.
Utilize a criatividade e bole algo legal ai!
_o/
![]()
You can call methods to run essential services and load others resources that not be executed through Spring dependency injection.
To do this, you need configure a PostConstruct annotation in each method that you need call. Does not only one, but many methods.
Bellow you can see a Bean with 2 PostContruct annotation to run after construct default method.
Test it!
Utilizar Spring Annotations facilitou muito a configuração de Beans e serviços que são utilizados através da injeção de dependência.
Ao configurar um Bean utilizando annotations do Spring, você tem a oportunidade de configurar um ou vários métodos para ser executado no momento que seu Bean for carregado, ou seja, depois que o método construtor padrão ou personalizado é executado.
Para utilizar esta funcionalidade basta utilizar a annotation PostConstruct antes de cada método que se deseja executar.
Veja um exemplo prático e simples:
Quando você chamar esta classe utilizando a injeção de dependência, logo depois de executar o construtor TesteService, os métodos postConstruct e postConstruct2 serão executados.
Essa funcionalidade é bem legal, pois agiliza e deixa para o conteiner chamar estes métodos para carregar outros serviços essenciais, como por exemplo, abrir conexão com banco ou até mesmo utilizar algum design pattern proxy para carregar uma serviço separado.
_o/
![]()
Core Spring is 4-day flagship Spring Framework training course. In this course, students build a Spring-powered JEE application that demonstrates the Spring Framework and other Spring technologies in an intensely productive, hands-on setting.
Completion of this course entitles each student to waive the registration fee for the SpringSource Certified Professional Examination and it is also the ideal preparation for the exam.
_o/
![]()
Hey, now Commons Digester is so easy and more useful to read Xml datas.
The last version of Commons Digester allow you configure the tags of an Xml content through Java annotations.
Some time ago, i showed how configure and create your self Java annotation here!
See code below _o/
As anotações do JEE5 realmente são muito legais e extremamente usefull.
Tanto que diversas tecnologias que vivem ao redor do mundo JEE estão evoluindo e adicionando annotations em suas funcionalidades.
As annotations maximiza consideravelmente o desenvolvimento de componentes, permite que configurações sejam feitas sem a utilização de arquivos XML e é um poderoso meio de injetar componentes dentro de outros componentes.
Algum tempo atrás publiquei um post ensinando a criar você mesmo sua annotation em Java. É simples e se você tiver uma imaginação fértil e uma boa arquitetura certamente irá criar uma annotation poderosa em suas aplicações.
Recentemente o Apache Commons Digester lançou uma nova versão de sua biblioteca, onde foi evoluido o projeto e sua configuração é feita através de annotations. Ficou bastante fácil utilizar o Commons Digester com as annotation para ler arquivos XML.
No site oficial tem um exemplo de leitor de feed de Blogs. Peguei este exemplo e segui, e em menos de 5 minutos coloquei pra rodar sem dificuldade alguma. Vale a pena ver como está!
Resolvi deixar o mesmo exemplo aqui, mas com a classe Java main completa(com o método public static void main).
Primeiramente, vamos dar uma olhada na estrutura de um XML de um feed de um Blog. Se você acessar o feed do Web4u, poderá ver a estrutura é, simplificamente, assim:
Vamos agora criar uma classe básica do nó Channel:
Veja que usamos a annotation @ObjectCreate, para definir o nó do XML. Usamos as annotations @BeanPropertySetter para definir os itens de valores deste nó, e usamos a annotation @SetNext para definir o método que irá setar os Itens, ou seja, os Posts do Blog.
Agora vamos para a classe Item.java que irá ser utilizar e encapsulada pelo Channel. Esta classe utiliza as mesmas annotations da classe acima:
Vamos a classe main. Nesta classe main coloquei configurado para ler os feeds do Blog Webu, mas vocês podem alterar para ser qualquer feed de outro Blog se sua preferência. Como é uma simples aplicação Java, coloquei para printar os resultados na tela mesmo utilizando o System.out.println(”").
Para você conseguir rodar este exemplo é necessário que no seu Classpath contenha o caminho para o Jar do projeto Commons Digester versão 2.1(commons-digester-2.1.jar) e de suas 2 dependências, que são o Commons BeanUtils 1.8.3(commons-beanutils-1.8.3.jar) e do Commons Loggin 1.1.1(commons-logging-1.1.1.jar).
Segue a classe de fácil entendimento:
Já era easy, agora ficou hiper easy utilizar o Commons Digester.
Então fica aqui a dica, quando for criar um componente personalizado para ler XML em Java não se esqueça do Commons Digester.
_o/
![]()
Now Spring Web Flow give JSF 2 support.
+info!
_o/
![]()
Lembrete rápido!
Resolvendo rápido a paradinha da consulta JPA com as clausulas where usando like.
Não precisa colocar no seu SQL assim: … where p.name like ‘%:name%’
Coloque somente assim: … where p.name like :name
Mas daí coloque no seu parâmetro desta forma:
Ou seja, concatene no início e no final da String desejada o símbolo %.
Deixe de quebrar a cabeça, pesquise + pergunte!
_o/
![]()
Depois de alguns minutos perdido tentando criar uma tabela na unha no Hypersonic resolvi deixar aqui a dica pra quem estiver apanhando com as colunas Auto-increment.
As colunas, normalmente primary key, auto-increment no Hypersonic são conhecidas como IDENTITY.
Um exemplo de sql:
Pronto!
Fica aqui a dica pra quem está apanhando. ![]()
![]()
Fala ae Pessoal, tudo bom? Espero que sim.
Essa semana alguns amigos me perguntaram sobre dicas de como iniciar com JPA. Então vou deixar um link super legal de um vídeo no blog da Caelum. Vale a pena ver!
Inté!
![]()
When you receive this exception on dwr, you must take off the described line below that isduplicate.
Sometimes this exception is launched because you have two entries with same name to distinct classes names.
Remove it!
Quem ai é desenvolvedor Java já deve ter passado pelo problema de utilizar o Dwr e receber a seguinte exceção:
Clash of converters Using org.directwebremoting.convert.BeanConverter in place of org.directwebremoting.convert.BeanConverter
Então, hoje tive esse problema. E como o arquivo de configuração do Dwr(dwr.xml) do projeto que estou trabalhando é gigante, não tinha olhado muito para ele, pois a minha IDE não estava reclamando de erros no xml.
Mas vendo a mensagem de erro melhor, vi que o erro era uma entrada duplicada no arquivo dwr.xml na seguinte linda:
Ou seja, esta linha tinha duas ocorrências que estava com o nome lógico apontando para classes diferentes.
Retirado a duplicidade, o erro foi embora.
Bom, fica a dica.
Fiz este pq percebi muita gente mundo a fora com o mesmo problema, mas ninguém deu uma resposta objetiva, então fica aqui a dica de um dos possíveis problemas que causa esta Exception.
Valeu _o/
![]()