<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Inversão de controle X injeção de dependência"]]></title>
		<link>http://www.guj.com.br/posts/list/12.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Inversão de controle X injeção de dependência"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ Eu tenho uma aplicação simples, onde eu estou usando struts. <br /> A aplicação funciona da seguinte maneira. Eu tenho um Jsp que chama uma Action que chama um Facade que chama um Manager que chama um DAO<br /> Sempre no Facade eu tenho que dar new no obj Manager e sempre no Manager eu tenho que dar new no obj dao ...<br /> Queria usar IOC ou injeção de dependência para resolver esse problema.<br /> <br /> Alguem tem ae em exemplo disso feito sem o uso de algum frameWork?<br /> Na verdade eu estou meio na duvida sobre o que é Inversão de controle e o que é injeção de dependência?<br /> <br /> E ServiceLocator? é para que ... hehehe?<br /> <br /> Alguem sabe falar boas referencias sobre o assunto?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/992032/inversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/992032/inversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Mon, 8 Feb 2010 13:41:24]]> GMT</pubDate>
				<author><![CDATA[ Icavalera]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ Vc disse sem usar framework, mas sugiro que estude spring, com ele voce consegue fazer e de uma maneira muito facil.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/992042/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/992042/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Mon, 8 Feb 2010 13:51:05]]> GMT</pubDate>
				<author><![CDATA[ vdb]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ [quote] o que é Inversão de controle e o que é injeção de dependência?[/quote]<br /> R.: É tudo a mesma coisa.<br /> <br /> [quote]E ServiceLocator?[/quote]<br /> R.: É um pattern com objetivo de encapsular complexas chamadas de rede; busca de serviços (aqueles lookup chatos de ejb, por exemplo), etc.<br /> <br /> mais detalhes: <a class="snap_shots" href="http://java.sun.com/blueprints/corej2eepatterns/Patterns/ServiceLocator.html" target="_blank" rel="nofollow">http://java.sun.com/blueprints/corej2eepatterns/Patterns/ServiceLocator.html</a><br /> <br /> Mas veja que se você usar injeção de dependência (termo mais comum, pois inversão de controle as vezes confunde as pessoas), vai acabar eliminando o "service locator", já que o objetivo da injeção de dependência é justamente esse, descobrir o objeto/serviço e "dar para você usa-lo".]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/992073/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/992073/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Mon, 8 Feb 2010 14:35:59]]> GMT</pubDate>
				<author><![CDATA[ pozzo]]></author>
			</item>
			<item>
				<title>Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ [quote=Icavalera]Eu tenho uma aplicação simples, onde eu estou usando struts. <br /> A aplicação funciona da seguinte maneira. Eu tenho um Jsp que chama uma Action que chama um Facade que chama um Manager que chama um DAO<br /> Sempre no Facade eu tenho que dar new no obj Manager e sempre no Manager eu tenho que dar new no obj dao ...<br /> Queria usar IOC ou injeção de dependência para resolver esse problema.<br /> <br /> Alguem tem ae em exemplo disso feito sem o uso de algum frameWork?<br /> Na verdade eu estou meio na duvida sobre o que é Inversão de controle e o que é injeção de dependência?<br /> [/quote]<br /> <br /> Inversão de controle é um principio de OO e significa que uma classe não deve controlar as suas dependências.<br /> Ou seja, se A precisa de B, A não deve executar new B() (que é exactamente o que vc está fazendo). O que deve acontecer é que A<br /> deve receber B no contrutor ou num método set. A diferença é que , se A precisa de B obrigatoriamente para executar o seu trabalho, B deve ser passado no contrutor e consistido para não ser null. Se A pode usar B opcionalmente então deve ser usado um set.<br /> <br /> injeção de Dependencia é o processo que, dado A, executa os sets necessários para dar a A acesso a B. Ou seja, quando vc chama <br /> <br /> [code]<br /> a.setB(b)<br /> [/code]<br /> <br /> Vc está injetando uma instância de B em A.<br /> Isto é feito em uma terceira classe,C , o injetor. Esta classe faz o seguinte:<br /> <br /> [code]<br /> B b = new B();<br /> A a = new A(b);<br /> <br /> // ou <br /> <br /> A a = new A()<br /> a.setB(b);<br /> [/code]<br /> <br /> Injeção Automatica de Dependencia é o processo/mecanismo que realiza a injeção sem que vc tenha que escrever este tipo de codigo.<br /> Framework de injeção Automática de Dependencia ou Container de Injeção (Automática de Depedencia) é um frameowrk onde vc declara quais objetos devem ser injetados em quais outros e o container executa a logica de criar os objetos e injetá-los no lugar certo.<br /> <br /> O codigo anterior mostra como se faz injeção sem framework (sim, é o jeito normal de escrever OO! )<br /> <br /> Usar um container de injeção facilita as coisas porque vc só tem que dizer o que quer e não como é feito o processo.Além disso o container trata de coisas como referencia ciclica e permite que vc modifque a criação dos objetos, como por exemplo criando proxies em torno do objeto real. <br /> <br /> ServiceLocator é um padrão EE para descobrir objetos no registro JNDI. Todo o Container de Injeção atua como um servicelocator, a diferença<br /> é que usando serviceLocator, vc, na classe A vai dar new do ServiceLocator, e mandar ele procurar o B. Ok, vc não dá new do B, mas dá do ServiceLocator, violando do mesmo jeito a inversão de controle. Este problema não é do serviceLocator em si, mas do jeito que se usava antigamente.<br /> Hoje em dia, nada o impede de mandar injetar o proprio contexto de injeção em um objeto e localizar o objeto explicitamente. A diferença é vc nunca dará new nos objetos.<br /> <br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/992098/inversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/992098/inversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Mon, 8 Feb 2010 15:01:00]]> GMT</pubDate>
				<author><![CDATA[ sergiotaborda]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ Na verdade inversão de controle (ioc - inversion of control) é um conceito que engloba injeção de dependencias (di - dependency injection), mas é bem mais abrantente.<br /> <br /> ioc é o conceito que define frameworks, e significa que o framework chama o seu código (e não o contrario).<br /> Por exemplo, quando colocamos um listener em um componente swing, isso é ioc, mas nao tem nada a ver com di<br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/992399/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/992399/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Tue, 9 Feb 2010 08:50:23]]> GMT</pubDate>
				<author><![CDATA[ magnomp]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ [quote=magnomp]Na verdade inversão de controle (ioc - inversion of control) é um conceito que engloba injeção de dependencias (di - dependency injection), mas é bem mais abrantente.<br /> <br /> ioc é o conceito que define frameworks, e significa que o framework chama o seu código (e não o contrario).<br /> Por exemplo, quando colocamos um listener em um componente swing, isso é ioc, mas nao tem nada a ver com di<br /> [/quote]<br /> <br /> É verdade. Apenas não é verdade que "ioc é o conceito que define frameworks". Para fazer IOC não precisa de frameworks.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/992767/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/992767/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Tue, 9 Feb 2010 15:50:01]]> GMT</pubDate>
				<author><![CDATA[ sergiotaborda]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ [quote]É verdade. Apenas não é verdade que "ioc é o conceito que define frameworks". Para fazer IOC não precisa de frameworks.[/quote]<br /> Concordo que para usar IoC não precisa de um framework. Mas o que eu quis dizer com "ioc é o conceito que define frameworks" é que o uso de IoC é o que diferencia um framework de uma biblioteca de classes.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/992830/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/992830/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Tue, 9 Feb 2010 16:43:24]]> GMT</pubDate>
				<author><![CDATA[ magnomp]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ Tem um exemplo de Injeção de Dependência então ? Sem FrameWork ...<br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/997760/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/997760/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Fri, 19 Feb 2010 07:47:02]]> GMT</pubDate>
				<author><![CDATA[ Icavalera]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ [code]<br /> public class Cliente {<br />     private Dependencia dependencia;<br /> <br />     public Cliente(Dependencia dependencia) {<br />         this.dependencia = dependencia;<br />     }<br /> }<br /> <br /> public class Teste {<br />   public static void main(String[] args) {<br />     Cliente cliente = new Cliente(new Dependencia());<br />   }<br /> }<br /> [/code]<br /> Acabei de usar injeção de dependencia ali, e sem nenhum framework. Mais especificamente, isso é injeção pelo construtor. Existe tambem injeção via setter, e um outro tipo que não me lembro.<br /> <br /> Eu desenvolvi um framework de DI para Delphi ([url]http://www.emballo-di.com[/url]) que trabalha apenas com injeção via construtor. Tudo que ele faz é resolver os parametros do construtor e invoca-lo via reflexão.<br /> Eu havia implementado um método de injeção que ele enumerava todos os atributos da classe e injetava em cada um, sem precisar usar nem um setter, mas posteriormente eu removi isso pois vi que não era muito bom injetar dessa forma]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/997783/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/997783/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Fri, 19 Feb 2010 08:11:08]]> GMT</pubDate>
				<author><![CDATA[ magnomp]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ Olha só...no seu caso eu instanciaria o "Facade + Manager + DAO" tudo na Action.<br /> <br /> Pelo o que vc disse sua Action esta instanciado o "Facade". E depois vc não tem mais controle sobre o manager e o DAO pq essas instância são feitas internamente.<br /> <br /> A Inversão de Controle sugere que você tenha o controle sobre os objetos. Se na sua Action vc fizer <br /> <br /> DAO d = new DAO()<br /> Manager m =  new Manager(d);<br /> Facade f = new Facade(m);<br /> <br /> Então ainda na sua action vc possue o controle de todos os objetos. Lógico que vc pode evitar esses "news" atráves de outros patterns como proxy e factory. Mas aí são outros 500...<br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/1012588/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/1012588/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Mon, 15 Mar 2010 11:01:29]]> GMT</pubDate>
				<author><![CDATA[ Giulliano]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ [quote=Giulliano]Olha só...no seu caso eu instanciaria o "Facade + Manager + DAO" tudo na Action.<br /> [/quote]<br /> <br /> Isso seria um erro crasso. <br /> Primeiro vc está amarrando tudo na action, e segundo está violando a separação de camadas. <br /> <br /> A injeção de depedências quando não é feita automaticamente, deve ser feita antes do sistema começar. no caso de aplicações web, deve acontencer no evento de inicialização da aplicação (ServletContextListener).<br /> <br /> Como esta classe não pertence a nenhuma camada não ha problemas de dependência.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/1012633/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/1012633/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Mon, 15 Mar 2010 11:35:27]]> GMT</pubDate>
				<author><![CDATA[ sergiotaborda]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ [quote=sergiotaborda]<br /> Isso seria um erro crasso. <br /> Primeiro vc está amarrando tudo na action, e segundo está violando a separação de camadas. <br /> [/quote]<br /> <br /> Você pode dar um exemplo prático baseado nisso que vc falou (e que siga a estrutura existente do projeto) ?<br /> <br /> [quote=sergiotaborda]<br /> A injeção de depedências quando não é feita automaticamente, deve ser feita antes do sistema começar. no caso de aplicações web, deve acontencer no evento de inicialização da aplicação (ServletContextListener).<br /> [/quote]<br /> A injeção nem sequer existe aqui (quem dirá automaticamente). Além disso ele precisa de uma solução que não dependa de frameworks. Se ele seguisse o seu conselho eu recomendaria o uso de JNDI e lookups. (discorda ?)<br /> <br /> [quote=sergiotaborda]<br /> Como esta classe não pertence a nenhuma camada não ha problemas de dependência.<br /> [/quote]<br /> Aqui eu não entendi o que vc disse. Qual classe não pertence a nenhuma camada e quem não tem problema de depêndencia?<br /> <br /> <br /> Minha opnião foi baseada no seguinte raciocínio: O facade possui a inteligência das regras de negócio. Porém para ele ser executado é necessário injetar um Manager e um DAO. Portanto se minha aplicação fosse dividida em Swing e Web, na minha aplicação Swing ficaria a cargo do novo módulo injetar as depências necessárias para o funcionamento do facade. Aí entrando no conceito de proxy...para aplicações Swing eu poderia usar um Manager e um DAO diferente da web.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/1012711/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/1012711/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Mon, 15 Mar 2010 13:08:00]]> GMT</pubDate>
				<author><![CDATA[ Giulliano]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ [quote=Giulliano][quote=sergiotaborda]<br /> Isso seria um erro crasso. <br /> Primeiro vc está amarrando tudo na action, e segundo está violando a separação de camadas. <br /> [/quote]<br /> <br /> Você pode dar um exemplo prático baseado nisso que vc falou (e que siga a estrutura existente do projeto) ?<br /> [/quote]<br /> <br /> Um exemplo de quê ?<br /> <br /> [quote]<br /> [quote=sergiotaborda]<br /> A injeção de depedências quando não é feita automaticamente, deve ser feita antes do sistema começar. no caso de aplicações web, deve acontencer no evento de inicialização da aplicação (ServletContextListener).<br /> [/quote]<br /> A injeção nem sequer existe aqui (quem dirá automaticamente). Além disso ele precisa de uma solução que não dependa de frameworks. Se ele seguisse o seu conselho eu recomendaria o uso de JNDI e lookups. (discorda ?)<br /> [/quote]<br /> <br /> Discordo. Primeiro, não ha nenhuma necessidade em usar frameworks. Segundo não ha necessidade em usar JNDI. Terceiro, mesmo com um injetor de dependencias automático vc não evita  lookups ( evitar lookups é impossivel. É uma questão de quantos e quais).<br /> <br /> Primeiro vc define um [url=http://www.javabuilding.com/academy/patterns/registry.html]registro de objetos[/url]. Sim, pode usar JNDI para isto, mas não é estritamente necessário.<br /> <br /> Segundo vc define um ServletContextListener e o registra no web.xml<br /> <br /> Terceiro, no codigo de init do ServletContextListener  vc inicializa os objetos e os registra no Registro , mais ou menos assim<br /> <br /> [code]<br /> <br /> public MyServletContextListener implements ServletContextListener  {<br /> <br />        public void contextInitialized(ServletContextEvent ctx) {<br /> <br />                // Inicializa DataSource<br />                Properties p = new Properties()<br />                p.load() // de um arquivo de proeprties <br /> <br />                DataSource ds = new JDBCDataSource(p);<br /> <br />                Dao dao = new JdbcDao(ds);<br /> <br />                Manager manager = new SimpleManager(dao);<br /> <br />                Facade facade = new SimplesFacade(manager);<br /> <br />                Registry.setFacade(facade);<br /> <br />         }<br /> <br /> }<br /> <br /> // no action usaria assim<br /> <br /> public classe Action{<br /> <br />    public void algumMetodo(){<br />         <br />          // lê parametros do request<br />           // ...<br /> <br />         // Faz algo com os parametros atraves do façade<br />         Facade facade = Registro.getFacade();<br /> <br />         facade,fazalgumaCoisa(parametroA,parametroB);<br />   }<br /> <br /> }<br /> <br /> <br /> [/code]<br /> <br /> Repare que todos os objetos são inicializados mas apenas o facade é colocado no registro.<br /> Repare também que este codigo depende de todos os objetos. Isto significa que, pelas regras, esses objetos deveriam ser injetados nele também.<br /> Poderiamos desenvolver um mecanismo de escolhe as classes via propreties ou algo assim, mas podemos tb pensar que esta classe é o limite do sistema. Ou seja, não ha como comandar a sua criação, logo ,não ha como comandar a sua injeção automática.<br />  <br /> [quote]<br /> [quote=sergiotaborda]<br /> Como esta classe não pertence a nenhuma camada não ha problemas de dependência.<br /> [/quote]<br /> Aqui eu não entendi o que vc disse. Qual classe não pertence a nenhuma camada e quem não tem problema de depêndencia?<br /> [/quote]<br /> <br /> Eu estava falando da classe MyServletContextListener. Ela não pertence a nenhuma camada e o fato dela depender de todas as outras classes não é um problema.<br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/1012808/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/1012808/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Mon, 15 Mar 2010 14:25:02]]> GMT</pubDate>
				<author><![CDATA[ sergiotaborda]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ Só uma curiosidade. Por que nao usar framework para fazer IoC? <br /> <br /> Marco. ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/1012811/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/1012811/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Mon, 15 Mar 2010 14:27:58]]> GMT</pubDate>
				<author><![CDATA[ mrmarcondes]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ Sua solução não difere em praticamente nada de uma solução JNDI (que é muito mais robusta do que um simples Hash). Apenas o conceito de armazenagem e busca dos objetos que é diferente.<br /> <br /> Acho que a única parte em que concordo com vc é que os objetos deveriam ser criados na inicialização da aplicação (mesmo assim ainda há controvérsias).<br /> <br /> Portanto ao dono do tópico eu recomendo o uso de JNDI e Lookups. E a inicialização pode ser feita numa porrada só como foi feito pelo Sergio ou sob demanda (que eu prefiro).]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/1012839/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/1012839/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Mon, 15 Mar 2010 14:53:30]]> GMT</pubDate>
				<author><![CDATA[ Giulliano]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ [quote=Giulliano]<br /> Portanto ao dono do tópico eu recomendo o uso de JNDI e Lookups. E a inicialização pode ser feita numa porrada só como foi feito pelo Sergio ou sob demanda (que eu prefiro).[/quote]<br /> <br /> Sem usar uma ferramenta de IOC não tem como fazer uma inicialização sob demanda. Explique como vc faria/faz isso.<br /> <br /> Note que num web-container não existe JNDI. Adicionar JNDI tem o mesmo custo que adicionar uma ferramenta IoC como o Spring ou o Guice.<br /> (não vale dizer que o tomcat já vem com jndi ,porque o tomcat não são todos os webcontainers)]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/1012967/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/1012967/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Mon, 15 Mar 2010 17:02:46]]> GMT</pubDate>
				<author><![CDATA[ sergiotaborda]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ [quote=sergiotaborda]<br /> Sem usar uma ferramenta de IOC não tem como fazer uma inicialização sob demanda. Explique como vc faria/faz isso.<br /> <br /> Note que num web-container não existe JNDI. Adicionar JNDI tem o mesmo custo que adicionar uma ferramenta IoC como o Spring ou o Guice.<br /> (não vale dizer que o tomcat já vem com jndi ,porque o tomcat não são todos os webcontainers)[/quote]<br /> <br /> Sergio eu vou dizer exatamente isto: O Tomcat tem o JNDI e o Tomcat (acredito eu, até que se prove o contrário) é o ServletContainer mais usado nas empresas, faculdades, cursos e afins. E ainda que não seja um Tomcat a migração entrte esses servidores não é custosa.<br /> <br /> Ainda assim não sabemos qual é o servidor que ele usa. Quem sabe não é um servidor JEE.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/1013341/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/1013341/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Tue, 16 Mar 2010 09:16:08]]> GMT</pubDate>
				<author><![CDATA[ Giulliano]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ [quote=pozzo][quote] o que é Inversão de controle e o que é injeção de dependência?[/quote]<br /> R.: É tudo a mesma coisa.<br /> [/quote]<br /> <br /> Não é não. <br /> <br /> <a class="snap_shots" href="http://serpeerless.wordpress.com/2008/03/27/inversao-de-controle-ioc-e-injecao-de-dependencias-di-o-que-e/" target="_blank" rel="nofollow">http://serpeerless.wordpress.com/2008/03/27/inversao-de-controle-ioc-e-injecao-de-dependencias-di-o-que-e/</a>]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/1013348/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/1013348/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Tue, 16 Mar 2010 09:21:20]]> GMT</pubDate>
				<author><![CDATA[ peerless]]></author>
			</item>
			<item>
				<title>Re:Inversão de controle X injeção de dependência</title>
				<description><![CDATA[ [quote=mrmarcondes]Só uma curiosidade. Por que nao usar framework para fazer IoC? <br /> <br /> Marco. [/quote]<br /> <br /> A idéia era aprender ... hehehe<br /> Mas parece que agora nessa nova especificação  j2ee6 vai mudar tudo ... hehe]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197666/1026518/reinversao-de-controle-x-injecao-de-dependencia
</guid>
				<link>http://www.guj.com.br/prepost/197666/1026518/reinversao-de-controle-x-injecao-de-dependencia
</link>
				<pubDate><![CDATA[Sun, 4 Apr 2010 08:12:59]]> GMT</pubDate>
				<author><![CDATA[ Icavalera]]></author>
			</item>
	</channel>
</rss>
