<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Marcos Sousa's Blog &#187; Spring</title>
	<atom:link href="http://www.marcossousa.com/category/spring/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marcossousa.com</link>
	<description>Blog sobre desenvolvimento de software</description>
	<lastBuildDate>Fri, 06 Jan 2012 15:31:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Dicas JSF 1.2: Não use nome de resource e propriedade de beans iguais. Saiba pq.</title>
		<link>http://www.marcossousa.com/2008/05/20/dicas-jsf-12-nao-use-nome-de-resource-e-propriedade-de-beans-iguais-saiba-pq/</link>
		<comments>http://www.marcossousa.com/2008/05/20/dicas-jsf-12-nao-use-nome-de-resource-e-propriedade-de-beans-iguais-saiba-pq/#comments</comments>
		<pubDate>Tue, 20 May 2008 02:48:53 +0000</pubDate>
		<dc:creator>Marcos Sousa</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[cinema]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java EE]]></category>
		<category><![CDATA[Java Server Faces]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Vídeo Aulas]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[JSF 1.2]]></category>
		<category><![CDATA[message bundle]]></category>
		<category><![CDATA[propriedade]]></category>
		<category><![CDATA[resource bundle]]></category>
		<category><![CDATA[{0} object is read only base]]></category>

		<guid isPermaLink="false">http://www.marcossousa.com/2008/05/20/dicas-jsf-12-nao-use-nome-de-resource-e-propriedade-de-beans-iguais-saiba-pq/</guid>
		<description><![CDATA[Hoje, durante o trabalho tive um problema bastante interessante. Uma aplicação que estou desenvolvendo, usa JSF 1.2. Estava desenvolvendo um cadastro que tinha uma caixa de seleção, esta caixa de seleção carregava todos os clientes cadastrados. Estou usando os recursos de internacionalização e os recursos de declaração de resource-bundle do JSF 1.2, para centralizar o [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje, durante o trabalho tive um problema bastante interessante. Uma aplicação que estou desenvolvendo, usa JSF 1.2. Estava desenvolvendo um cadastro que tinha uma caixa de seleção, esta caixa de seleção carregava todos os clientes cadastrados. Estou usando os recursos de internacionalização e os recursos de declaração de resource-bundle do JSF 1.2, para centralizar o local onde são declarados os recursos de mensagens. Até aí tudo bem.</p>
<p>Algumas partes foram desenvolvidas usando JSF 1.1, estas partes eu me preocupei ao máximo manter a compatibilidade com o menor número de alterações possível. Antes de ter os recursos de mensagens centralizados, eu não me preocupei em manter um padrão de nomenclatura para os recursos de mensagem, meu grande erro. Conclusão, meu recurso de mensagens para o cadastro de clientes se chamava&#8230; tente adivinhar&#8230; cliente.</p>
<p>Como a minha humilde caixa de seleção vinculava seu valor a uma propriedade chamada cliente, começaram as dores de cabeça. Eu recebi uma exception não muito amistosa:</p>
<p style="font-family: monospace">19/05/2008 23:06:40 javax.faces.component.UIInput updateModel<br />
SEVERE: /contatos/contato.xhtml @44,46 value=&#8221;#{Contato.cliente}&#8221;: {0} object is read only base com.marcossousa.app.beans.ContatoBean@123efed property cliente<br />
19/05/2008 23:06:40 com.sun.faces.lifecycle.RenderResponsePhase execute<br />
INFO: WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.<br />
sourceId=myform:cliente[severity=(ERROR 2), summary=(/contatos/contato.xhtml @44,46 value="#{Contato.cliente}": {0} object is read only base com.marcossousa.app.beans.ContatoBean@123efed property cliente), detail=(/contatos/contato.xhtml @44,46 value="#{Contato.cliente}": {0} object is read only base com.marcossousa.app.beans.ContatoBean@123efed property cliente)]</p>
<p>Logo que ocorreu o problema fui verificar se o método Set do meu bean estava correto e verifiquei também se o Contato não era nulo. Tudo estava aparentemente correto, pesquisei sobre o assunto no &#8220;Oráculo&#8221; e não encontrei nenhuma informação relevante. Mais algum tempo de análise verificando se havia alguma correlação, e nada, mas estava chegando perto.</p>
<p>Vendo que eu iria perder muito tempo, tomei uma decisão: vou executar a aplicação usando os códigos fontes do JSF. Coloquei um breakpoint no código que seta os valores nas propriedades dos Managed Beans. Analisei os comportamentos durante cada chamada. Uma coisa não fazia sentido, era verificada a existência de um recurso de mensagens para cada propriedade. Restaurei os códigos fontes também da API para confirmar minhas suspeitas. E realmente e retornava o recurso de mensagens.</p>
<p>Apesar do tempo perdido, foi interessante resolver o problema. Espero que ajude alguém. Recapitulando:</p>
<p>
<pre class="brush: xml;">
&lt;resource -bundle&gt;
&lt;base -name&gt;com.foo.message&lt;/base&gt;
&lt;var&gt;mymessage&lt;/var&gt;
&lt;/resource&gt;
</pre>
</p>
<p>
<pre class="brush: java;">
public class Foo {
private String mymessage;
privates String getMymessage() {
return mymessage;
}
private void setMymessage(String s) {
this.mymessage=s
}
}</pre>
</p>
<p>E</p>
<pre class="brush: xml;">
&lt;h :inputText value=&quot;#{foo.mymessage}&quot;/&gt;
</pre>
</p>
<p>Não funciona!</p>
<p>Está aí uma grande vantagem de usar bibliotecas open-source, o problema é complexo, melhor olhar diretos nos fontes! Eu adoro fazer isto =)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcossousa.com/2008/05/20/dicas-jsf-12-nao-use-nome-de-resource-e-propriedade-de-beans-iguais-saiba-pq/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Anotando beans no Spring 2.5</title>
		<link>http://www.marcossousa.com/2008/03/27/anotando-beans-no-spring-25/</link>
		<comments>http://www.marcossousa.com/2008/03/27/anotando-beans-no-spring-25/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 15:25:19 +0000</pubDate>
		<dc:creator>Marcos Sousa</dc:creator>
				<category><![CDATA[Java EE]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[annotations]]></category>
		<category><![CDATA[anotações]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring 2.5]]></category>
		<category><![CDATA[Spring Framework]]></category>

		<guid isPermaLink="false">http://www.marcossousa.com/2008/03/27/anotando-beans-no-spring-25/</guid>
		<description><![CDATA[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, [...]]]></description>
			<content:encoded><![CDATA[<p>Uma das <a href="http://www.marcossousa.com/2007/11/22/spring-25-released-focada-em-annotations/">mudanças principais do Spring 2.5</a> 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.</p>
<p>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:</p>
<pre class="brush: java;">
@Service(&quot;mycarService&quot;)
public classe CarService {
// algum código aqui
}
</pre>
<p>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.</p>
<p>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:</p>
<pre class="brush: xml;">
&lt;!-- Faz a indentificação dos beans anotados com @Service, @Repository e @Controller --&gt;
&lt;context:component-scan base-package=&quot;com.marcossousa.myblog&quot;/&gt;
&lt;!-- Habilita a configuração de beans via anotações --&gt;
&lt;context:annotation-config/&gt;
</pre>
<p>Com isto todos os beans antotados no pacote com.marcossousa.myblog serão adicionados automaticamente no contexto do spring. Fácil não?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcossousa.com/2008/03/27/anotando-beans-no-spring-25/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Vídeo Aula Jboss Seam: Integração Spring parte 2</title>
		<link>http://www.marcossousa.com/2008/02/14/video-aula-jboss-seam-integracao-spring-parte-2/</link>
		<comments>http://www.marcossousa.com/2008/02/14/video-aula-jboss-seam-integracao-spring-parte-2/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 15:31:45 +0000</pubDate>
		<dc:creator>Marcos Sousa</dc:creator>
				<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java Server Faces]]></category>
		<category><![CDATA[Jboss Seam]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Vídeo Aulas]]></category>
		<category><![CDATA[Java Magazine]]></category>
		<category><![CDATA[Java Vídeo Magazine]]></category>
		<category><![CDATA[Jboss]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[RHDS]]></category>
		<category><![CDATA[Spring Framework]]></category>
		<category><![CDATA[URL Rewrite]]></category>
		<category><![CDATA[Variable Resolver]]></category>
		<category><![CDATA[Vídeo Aula]]></category>

		<guid isPermaLink="false">http://www.marcossousa.com/2008/02/14/video-aula-jboss-seam-integracao-spring-parte-2/</guid>
		<description><![CDATA[Foi publicada no portal Java Magazine a 7ª vídeo aula da série sobre JBoss Seam. Nesta vídeo aula eu continuei mostrando os passos para a integração entre o Seam e o Spring Framework. Como havia dito no post anterior, o Seam suporta a injeção de objetos presentes no contexto JSF. Nesta vídeo aula foi mostrado [...]]]></description>
			<content:encoded><![CDATA[<p>Foi publicada no portal <a href="http://www.javamagazine.com.br/">Java Magazine</a> a 7ª  vídeo aula da série sobre <a href="http://www.jboss.com/products/seam">JBoss Seam</a>.  Nesta vídeo aula eu continuei mostrando os passos para a integração entre o <a href="http://www.jboss.com/products/seam">Seam</a> e o <a href="http://www.springframework.org">Spring Framework</a>.</p>
<p>Como havia dito no <a href="http://www.marcossousa.com/2008/02/08/video-aula-jboss-seam-integracao-spring-parte-1/" title="Visualizar o post anterior">post anterior</a>, o  <a href="http://www.jboss.com/products/seam">Seam</a> suporta a injeção de objetos presentes no contexto <a href="http://java.sun.com/javaee/javaserverfaces/">JSF.</a> Nesta vídeo aula foi mostrado como configurar o components.xml, VariableResolver  do <a href="http://www.springframework.org">Spring</a> e criado um bean de persistência de usuários para persistir usuários.</p>
<p><a href="http://www.marcossousa.com/wp-content/uploads/2008/02/seamtest-part7.zip" title="Direct link to file">Download dos Fontes Vídeo Aula</a><br />
<a href="http://www.devmedia.com.br/articles/viewcomp.asp?comp=7841" title="http://www.devmedia.com.br/articles/viewcomp.asp?comp=7888"> Vídeo Aula</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcossousa.com/2008/02/14/video-aula-jboss-seam-integracao-spring-parte-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Vídeo Aula Jboss Seam: Integração Spring parte 1</title>
		<link>http://www.marcossousa.com/2008/02/08/video-aula-jboss-seam-integracao-spring-parte-1/</link>
		<comments>http://www.marcossousa.com/2008/02/08/video-aula-jboss-seam-integracao-spring-parte-1/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 14:49:06 +0000</pubDate>
		<dc:creator>Marcos Sousa</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Java Server Faces]]></category>
		<category><![CDATA[Jboss Seam]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Spring Annotations]]></category>
		<category><![CDATA[Vídeo Aulas]]></category>
		<category><![CDATA[Java Magazine]]></category>
		<category><![CDATA[Java Vídeo Magazine]]></category>
		<category><![CDATA[Jboss]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[RHDS]]></category>
		<category><![CDATA[Spring Framework]]></category>
		<category><![CDATA[URL Rewrite]]></category>
		<category><![CDATA[Variable Resolver]]></category>
		<category><![CDATA[Vídeo Aula]]></category>

		<guid isPermaLink="false">http://www.marcossousa.com/2008/02/08/video-aula-jboss-seam-integracao-spring-parte-1/</guid>
		<description><![CDATA[Foi publicada no portal Java Magazine a 6ª vídeo aula da série sobre JBoss Seam. Nesta vídeo aula eu mostrei como é feita a integração entre o Seam e o Spring Framework. O fato do Seam suportar a injeção de objetos presentes no contexto JSF permite que os beans declarados com contexto do Spring sejam [...]]]></description>
			<content:encoded><![CDATA[<p>Foi publicada no portal <a href="http://www.javamagazine.com.br/">Java Magazine</a> a 6ª  vídeo aula da série sobre <a href="http://www.jboss.com/products/seam">JBoss Seam</a>.  Nesta vídeo aula eu mostrei como é feita a integração entre o <a href="http://www.jboss.com/products/seam">Seam</a> e o <a href="http://www.springframework.org">Spring Framework</a>.</p>
<p>O fato do  <a href="http://www.jboss.com/products/seam">Seam</a> suportar a injeção de objetos presentes no contexto <a href="http://java.sun.com/javaee/javaserverfaces/">JSF</a> permite que os beans declarados com contexto do <a href="http://www.springframework.org">Spring</a> sejam facilmente consumidos pelos componentes<a href="http://www.jboss.com/products/seam"> Seam</a>. Aí surgiria um problema, como fazer os beans presentes no contexto Spring ficar disponíveis no contexto JSF? Simples, o <a href="http://www.springframework.org">Spring</a> possui um VariableResolver que disponibiliza os beans existentes dentro do contexto <a href="http://www.springframework.org">Spring</a>.<br />
<a href="http://www.marcossousa.com/wp-content/uploads/2008/02/seamtest-part7.zip" title="Direct link to file">Download dos Fontes Vídeo Aula</a><br />
<a href="http://www.devmedia.com.br/articles/viewcomp.asp?comp=7841"> Vídeo Aula</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcossousa.com/2008/02/08/video-aula-jboss-seam-integracao-spring-parte-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spring 2.5 Released focada em annotations</title>
		<link>http://www.marcossousa.com/2007/11/22/spring-25-released-focada-em-annotations/</link>
		<comments>http://www.marcossousa.com/2007/11/22/spring-25-released-focada-em-annotations/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 19:23:15 +0000</pubDate>
		<dc:creator>Marcos Sousa</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://www.marcossousa.com/?p=46</guid>
		<description><![CDATA[O SpringFramework também conhecido como Interface 21, anunciou a versão realease 2.5. Esta versão vem focada em anotações, nesta versão o framework atinge seu objetivo: ser o mais flexível possível, a exemplo disto, o poderoso modelo de configuração para Java 1.4 e Java 5.0. Em anotações a versão suporta as anotações descritas na JSR-250: @PostConstruct, [...]]]></description>
			<content:encoded><![CDATA[<p>O SpringFramework também conhecido como Interface 21, anunciou a versão realease 2.5. Esta versão vem focada em anotações, nesta versão o framework atinge seu objetivo: ser o mais flexível possível, a exemplo disto, o poderoso modelo de configuração para Java 1.4 e Java 5.0.</p>
<p>Em anotações a versão suporta as anotações descritas na JSR-250: @PostConstruct, @PreDestroy e @Resource; da  Java EE 5: @WebServiceRef e @EJB. Ela também possui suas próprias anotações: @Autowire, @Repository, @Service, @Controller, @Component. Através destas anotações é possível fazer quase tudo o que é feito nos arquivos de configuração em xml, que foi melhorado.  O suporte aos arquivos de configurações das versões anteriores foi mantido.</p>
<p>O spring 2.5 melhorou o suporte a jsf e agora tem um bom suporte com jsf 1.2 com o <tt>DelegatingFacesELResolver</tt>.</p>
<p>Mais informações em: http://www.springframework.org/</p>
<p>http://www.springframework.org/download</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcossousa.com/2007/11/22/spring-25-released-focada-em-annotations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novas vídeos aulas disponíveis</title>
		<link>http://www.marcossousa.com/2007/10/16/novas-videos-aulas-disponiveis/</link>
		<comments>http://www.marcossousa.com/2007/10/16/novas-videos-aulas-disponiveis/#comments</comments>
		<pubDate>Tue, 16 Oct 2007 20:50:11 +0000</pubDate>
		<dc:creator>Marcos Sousa</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java Server Faces]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Spring Annotations]]></category>

		<guid isPermaLink="false">http://www.marcossousa.com/?p=32</guid>
		<description><![CDATA[Um pouco atrasado mas, foi publicado no site da Java Magazine mais uma nova Vídeo Aula sobre JSF desta vez focada em componentes em Ajax. Nas vídeo-aulas basicamente foi feito a configuração de bibliotecas RichFaces e Ajax4jsf, ajuste nos templates e estilos CSS, alteração dos botões de edição e novo na página de listagem para [...]]]></description>
			<content:encoded><![CDATA[<p>Um pouco atrasado mas, foi publicado no site da Java Magazine mais uma nova Vídeo Aula sobre JSF desta vez focada em componentes em Ajax.</p>
<p>Nas vídeo-aulas basicamente foi feito a configuração de bibliotecas RichFaces e Ajax4jsf, ajuste nos templates e estilos CSS, alteração dos botões de edição e novo na página de listagem para fazer requisições em ajax permitindo a inclusão e edição de registros na própria página de listagem.</p>
<p>Elas podem ser vistas através dos links:<br />
<a href="http://www.devmedia.com.br/articles/viewcomp.asp?comp=6855">Ajax em JSF: RichFaces e Ajax4faces &#8211; Parte 1<br />
</a><a href="http://www.devmedia.com.br/articles/viewcomp.asp?comp=6856">Ajax em JSF: RichFaces e Ajax4faces &#8211; Parte 2</a><a href="http://www.devmedia.com.br/articles/viewcomp.asp?comp=6855"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcossousa.com/2007/10/16/novas-videos-aulas-disponiveis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Controle de transação no Spring com a anotação @Transactional &#8211; Parte 2</title>
		<link>http://www.marcossousa.com/2007/09/21/controle-de-transacao-no-spring-com-a-anotacao-transactional-parte-2/</link>
		<comments>http://www.marcossousa.com/2007/09/21/controle-de-transacao-no-spring-com-a-anotacao-transactional-parte-2/#comments</comments>
		<pubDate>Sat, 22 Sep 2007 02:51:46 +0000</pubDate>
		<dc:creator>Marcos Sousa</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://www.marcossousa.com/?p=18</guid>
		<description><![CDATA[No post passado apresentei algumas informações sobre o uso da anotação @Transactional. Neste vou mostrar alguns detalhes que fazem a dirença. Primeiro vamos supor que temos as interfaces: @Transactional(propagation=Propagation.REQUIRED) public interface Foo{ void fazAlgumaCoisa() throws FooException; } e uma interface que herda de Foo: public interface Foo2 extends Foo{ void fazOutraCoisa() throws FooException; } Neste [...]]]></description>
			<content:encoded><![CDATA[<p>No post passado apresentei algumas informações sobre o uso da anotação @Transactional. Neste vou mostrar alguns detalhes que fazem a dirença. Primeiro vamos supor que temos as interfaces:</p>
<p><em>@Transactional(propagation=Propagation.REQUIRED)<br />
public interface Foo{<br />
void fazAlgumaCoisa() throws FooException;<br />
}</em></p>
<p>e uma interface que herda de Foo:</p>
<p><em>public interface Foo2 extends Foo{<br />
void fazOutraCoisa() throws FooException;<br />
}</em></p>
<p>Neste exemplo podemos chegar as concluções:</p>
<p>1° Que as transações são  herdadas apenas para os métodos declarados na interface anotada.</p>
<p>2° Apenas exceções não verificadas gerarão rollback, ou seja, se um FooException for gerada a transação será efetivada. Para uma FooException resultar em rollback a anotação deve estar:<br />
<em>@Transactional(propagation=Propagation.REQUIRED, rollbackFor=FooException.class)</em></p>
<p>3° Toda implementação das interfaces acima, utilizarão as políticas transações definidas na interfaces, a menos que elas sejam sobrescritas, ou seja, incluindo a anotação @Transactional no método ou na classe.</p>
<p>Bom espero que tenha ajudado um pouco.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcossousa.com/2007/09/21/controle-de-transacao-no-spring-com-a-anotacao-transactional-parte-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Controle de transação no Spring com a anotação @Transactional &#8211; Parte 1</title>
		<link>http://www.marcossousa.com/2007/09/21/controle-de-transacao-no-spring-com-a-anotacao-transactional-parte-1/</link>
		<comments>http://www.marcossousa.com/2007/09/21/controle-de-transacao-no-spring-com-a-anotacao-transactional-parte-1/#comments</comments>
		<pubDate>Fri, 21 Sep 2007 04:02:23 +0000</pubDate>
		<dc:creator>Marcos Sousa</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://www.marcossousa.com/?p=17</guid>
		<description><![CDATA[Uma das formas de fazer controle de transação no spring é usando a anotação @Transactional, basicamente ela funciona da seguinte forma, primeiro você informa no contexto da aplicação que esta anotação será válida: &#60;tx:annotation-driven transaction-manager=&#8221;transactionManager&#8221;/&#62; Nota: O parâmetro transaction-manager é opcional se o bean que controlará a transação tiver o nome transactionManager. Agora para definir [...]]]></description>
			<content:encoded><![CDATA[<p>Uma das formas de fazer controle de transação no spring é usando a anotação @Transactional, basicamente ela funciona da seguinte forma, primeiro você informa no contexto da aplicação que esta anotação será válida:</p>
<p><em>&lt;tx:annotation-driven transaction-manager=&#8221;transactionManager&#8221;/&gt;</em></p>
<blockquote><p><em>Nota: O parâmetro transaction-manager é opcional se o bean que controlará a transação tiver o nome  </em><em>transactionManager.</em></p></blockquote>
<p>Agora para definir uma transação basta adicionar a transação ao método, a classe ou na interface. Veja as principais propriedades:</p>
<p>isolation &#8211; define como a transação a será controlada, as opções são: DEFAUT, READ_COMMIT, READ_UNCOMMIT e REPEATABLE_READ e SERIALIZABLE.<br />
propagation &#8211; Tipo de propagação da transação, se é obrigatória, se requer que uma nova seja criada.<br />
readOnly &#8211; não permite que alterações sejam feitas no banco de dados, resolve problema de flush do hibernate.<br />
rollBackFor &#8211; arranjo de exceções verificadas que devem gerar roll back.<br />
nonRollBackFor &#8211; arranjo de exceções que não devem gerar roll back.</p>
<p>Caso uma classe ou interface seja anotada, e precisa de customizar apenas um método, pode anotar o método a ter a transação customizada, pois, a anotação no método sobrescreve a anotação da classe ou interface.</p>
<p>Na próxima parte falarei de algumas regras e limitações.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcossousa.com/2007/09/21/controle-de-transacao-no-spring-com-a-anotacao-transactional-parte-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

