IoC do Spring com escopo de seção !?

17 respostas
saoj

Dá para falar para o Spring/SpringMVC para retornar novas instâncias de um bean apenas quando mudar a sessão, ou seja, para a mesma sessão ele retornará a mesma instancia.

Parece que ele só tem os escopos Request e Application (que ele chama Singleton).

Minhas dúvidas são:

  1. O Spring suporta isso ?

  2. Isso serve para alguma coisa ?

17 Respostas

Mauricio_Linhares

Até onde eu sei, ele não suporta isso diretamente, mas pode fazer isso usando SessionBeans (do EJB). Pra um container de IoC eu realmente não vejo muito uso nisso, porque ele normalmente vai tratar de código arquitetural (DAOs, controllers e coisas do gênero) e não dos objetos do domínio da aplicação (talvez isso mude no 2.0).

Um exemplo clássico disso seria o carrinho de compras, mas será que é interessante injetar alguma coisa no carrinho? Não consigo ver uso nisso.

urubatan

na verdade no spring 2.0 ja tem isto, no 1.x não tem não …

e não é request e application, ele tem singleton e prototype
singleton pode ser encarado como application, mas o prototype não é request, é a cada vez que o bean for buscado no contexto, é criada uma nova instancia.

agora no spring 2.0, continua com estes dois contextos oficialmente, mas utilizando a nova tag <aop:scope pode-se definir, request ou session para um singleton, ai ele cria um targetSourceCreator que retorna um bean novo sempre que o contexto definido for alterado (sessão ou request, e o singleton padrão fica valendo como application)>

saoj

Legal que suporta, mas pela tua explicação não pareceu muito simples não… =P

Sou mais assim:

ioc("helloBean", HelloBean.class, SESSION);

Daí se tu chama:

input.getValue("helloBean");

O container/framework se vira para te retornar uma instancia do escopo certo.

:stuck_out_tongue:

urubatan
saoj:
Legal que suporta, mas pela tua explicação não pareceu muito simples não... =P

Sou mais assim:

ioc("helloBean", HelloBean.class, SESSION);

Daí se tu chama:

input.getValue("helloBean");

O container/framework se vira para te retornar uma instancia do escopo certo.

:P

tuddo bem, comparar assim é fácil, e se eu quiser um objeto prototype como no spring, ai o mentaway não consegue fazer ...

e não adianta dizer pra criar com um new, pq ai tu não vai ter o IoC para setar as propriedades do teu prototype.

normalmente em uma aplicação eu tenho um ou dois objetos por sessão no máximo, alguns thread local ou request, e um monte de prototype ...

e se quiser usar o mentaway junto om JSF como ja fiz em alguns projetos com o spring, não vai ser possivel, e JSF é ótimo para aplicações baseadas em formulários ...

tenho uma aplicação agora que estou utilizando spring para o backend, SpringMVC para uma parte da visualização e JSF para a administração, usando o backend do spring, isto também não é possivel com o mentaway ...

só por curiosidade, a ideia desta tua pergunta era só comparar os dois frameworks? pq não deixou isto explicito então?

eu respeito um monte o teu projeto, acho um ótimo framework MVC, mesmo não tendo tido tempo de estuda-lo a fundo e utiliza-lo em algum projeto.
mas acho chato pra ca... este negocio de vcs acharem que o mentaway é a machado de ouro que resolve todos os problemas do mundo ...

e se tu quiser eu posso citar mais um monte de coisas que o spring faz que o menta não faz, mas também sei um monte de coisas que outros frameworks fazem que o spring por isto procuro utlizar eles em conjunto, o que pelo que vi vocês comentando do menta até hoje, não é exatamente possivel ...

ahh, e no spring eu não preciso de
input.getValue("helloBean");
simplesmente crio uma propriedade do tipo HelloBean de nome helloBean e ela estara setada corretamente na hora que eu for utilizar ela. da pra fazer isto no menta?
A

Alguém tem um .war com uma aplicação basica com spring ?

Rubem_Azenha
urubatan:

tuddo bem, comparar assim é fácil, e se eu quiser um objeto prototype como no spring, ai o mentaway não consegue fazer ...

e não adianta dizer pra criar com um new, pq ai tu não vai ter o IoC para setar as propriedades do teu prototype.

Se vc der um exemplo prático de qndo e como usar isso, a gente pode tentar implementar.

urubatan:

normalmente em uma aplicação eu tenho um ou dois objetos por sessão no máximo, alguns thread local ou request, e um monte de prototype ...

e...?

urubatan:
e se quiser usar o mentaway junto om JSF como ja fiz em alguns projetos com o spring, não vai ser possivel, e JSF é ótimo para aplicações baseadas em formulários ...

tenho uma aplicação agora que estou utilizando spring para o backend, SpringMVC para uma parte da visualização e JSF para a administração, usando o backend do spring, isto também não é possivel com o mentaway ...

Talvez no momento não. Nada impossível de se fazer. Mas a demanda ainda não esta tão grande.

urubatan:
eu respeito um monte o teu projeto, acho um ótimo framework MVC, mesmo não tendo tido tempo de estuda-lo a fundo e utiliza-lo em algum projeto.
Se vc não estudou a fundo, como vc pode dizer que algo é impossível de ser feito nele?
urubatan:
mas acho chato pra ca... este negocio de vcs acharem que o mentaway é a machado de ouro que resolve todos os problemas do mundo ...
O Mentawai não é machado de ouro nem silver bullet. Nada é.
urubatan:
e se tu quiser eu posso citar mais um monte de coisas que o spring faz que o menta não faz, mas também sei um monte de coisas que outros frameworks fazem que o spring por isto procuro utlizar eles em conjunto, o que pelo que vi vocês comentando do menta até hoje, não é exatamente possivel ...

O mentawai não é um framework de AOP, IOC, etc. é um framework web.

urubatan:
ahh, e no spring eu não preciso de
input.getValue("helloBean");
simplesmente crio uma propriedade do tipo HelloBean de nome helloBean e ela estara setada corretamente na hora que eu for utilizar ela. da pra fazer isto no menta?

[/quote]

nem no Menta...

M

Ué vi varias vezes o saoj citar que no Menta tem IoC !!!

urubatan

microfilo:
urubatan:

tuddo bem, comparar assim é fácil, e se eu quiser um objeto prototype como no spring, ai o mentaway não consegue fazer …

e não adianta dizer pra criar com um new, pq ai tu não vai ter o IoC para setar as propriedades do teu prototype.

Se vc der um exemplo prático de qndo e como usar isso, a gente pode tentar implementar.


Qualquer objeto que tu queira que seja criado sempre que tu precisar dele, um command por exemplo, que tenha dependencia de objetos de negócio, DAO, um EJB, um WebService ou qualquer outra coisa …

e pra mim é muito mais útil poder criar um prototype de uma maneira muito mais fácil, ja que uso muito mais

tu mesmo confirmou que tudo o que eu disse que não dava para fazer não da mesmo, e eu sei o que não da para fazer pelos posts teu e do saoj aqui no GUJ mesmo, nesta guerra santa que vocês estão travando para provar para o mundo que o Menta é a solução para todos os problemas da humanidade.

mas não é assim que vocês agem, e continua sendo chato pra cacete vocês falarem do mentaway em todos os posts, não fiz o search ainda, mas quase posso apostar, que se buscasse todos os posts teus dos ultimos 6 meses, no minimo 99% deles falam, use o menta ele faz tudo o que você quer, ou então, XML é lixo, a unica forma de configuração decente é a programatica usada no Menta …

você tem o direito de defender a sua opinião, mas poderiam tentar ser menos repetitivos …

eu sei disto, mas pelo que percebi, a ideia deste post era mais um (pelo menos foi a impressão que tive depois do segundo post do saoj) olha só, o Mentaway é melhor que o Spring.

que coisa mais boba, maravilha se vcs gostam mais da forma de trabalho do mentawai, usem ele e pronto.

microfilo:

nem no Menta…[/quote]
heim? nem no menta quer dizer que não precisa fazer isto no menta? e por que vocês sempre mostram feito desta forma?

é algo do tipo, faz mas não recomendamos?

<editado>
PS.: parece que acordei o batalhão de defensores ferrenhos do mentaway, que virão aqui tentar me convencer que ele é a solução para todos os problemas da humanidade.
</editado>

saoj

Galera e principalmente urubutan,

Tudo que eu falo aqui agora vira motivo para vcs tacarem pedra no menta e falarem que eu estou defendendo o menta, etc e tal. Por favor, leiam de novo o meu post.

Acho que vcs já perderam a paciência comigo e sinceramente eu já perdi a paciência com essa galera que fica inventado motivos e buscando pretextos para me atacar pessoalmente.

Desculpa, urubutan, mas já está pronto o autowiring do Mentawai, o suporte a Spring, e outras coisas legais para a versão 1.3 que deve sair ainda esse mes.

E se a idéia era comparar mesmo qual é o problema disso ? Vc ficou ofendido com isso ? Te incomodou ? Não posso comparar ? Tem alguma lei aqui no GUJ que diz que não se pode comparar dois frameworks web ? Se for Spring e JSF pode, mas Mentawai e Webwork não pode, né ?

No mentawai tb não, basta usar o InjectionFilter. :?

Peço que vc explique o que é prototype, pois se o mentawai realmente não suportar isso nós iremos fazer ele suportar.

Por que o Mentawai incomoda tanto vcs ??? O dia que vcs fizerem alguma coisa séria, se dedicarem de corpo e alma como eu me dedicque e me dedico a esse projeto, então talvez vcs entenderão porque eu defendo o projeto.

Se vc quiser, e olhe bem, apenas se vc quiser, explique mais vantagens que o container de IoC do Spring tem em relação ao do Mentawai, pois esse prototype eu não entendi muito bem. Poderia dar um exemplo ?

saoj

Porque vc copiou a idéia do Menta então ???

http://blog.urubatan.com.br/2005/11/26/framework_de_desenvolvimento_perfeito_d.html

Fica mais calminho quando falar do framework então e não fica incomodado a toa. Isso vale pra vc e pra todo o resto que a qualquer citaçãozinha fica oriçado.

<editado>
E outra coisa: o nome é mentawaI com i no final, urubutan…

saoj

É sim. Pra tacar lenha nessa fogueira, pois já estou chateado com essa situação e pra deixar vcs mais chateados tb olha só o que uma pessoa falou:

Quem fez o DependencyFilter não foi eu, mais o Rubem (microfilo). Em vez de ele ficar marretando o framework ele veio ajudar e agora está colhendo os frutos disso.

Rubem_Azenha

O mentawai suporte isso. Ou vc estuda ele ou então não fale o que ele não faz!

e…?

Vc esta se confundindo. O que eu falei que não da para fazer?

Quanto ao exageiro, eu agradeço ao GUJ pela oportunidade de divulgar o menta que ele deu. Eu vou continuar divulgando o menta de modo inteligente, como eu e o sérgio sempre fizemos.

Me poupe de seus exageiros…

heim? nem no menta quer dizer que não precisa fazer isto no menta? e por que vocês sempre mostram feito desta forma?

é algo do tipo, faz mas não recomendamos?
[/quote]

O Sérgio (pelo que eu vi, não tenho certeza) prefere essa abordagem. Eu prefiro a do InjectionFilter.

Quem sai na chuva é para se molhar

urubatan

saoj:
Galera e principalmente urubutan,

Tudo que eu falo aqui agora vira motivo para vcs tacarem pedra no menta e falarem que eu estou defendendo o menta, etc e tal. Por favor, leiam de novo o meu post.

Acho que vcs já perderam a paciência comigo e sinceramente eu já perdi a paciência com essa galera que fica inventado motivos e buscando pretextos para me atacar pessoalmente.

Desculpa, urubutan, mas já está pronto o autowiring do Mentawai, o suporte a Spring, e outras coisas legais para a versão 1.3 que deve sair ainda esse mes.


a minha ideia não era te atacar pessoalmente, só te chamei de chato e repetitivo.
o teu primeiro post não tinha problema nenhum, tanto que eu respondi também sem problema nenhum, como se fazia, no segundo começou a repetição e chatisse novamente.

mas que bom que ja ta pronto o autowiring do mentaway.

claro que pode comparar, o problema é a repetição.

outra coisa chata é que sempre que se mostra alguma coisa que o spring faz e o menta não, vocês saem com, ahh, mas o menta não é isto, aquilo ou aquilo outro, é um framework MVC.

você pode comparar o que quiser, mas diga que esta fazendo isto.

não me senti ofendido, o que me incomodou é a repetitividade de vcs.

e não, não tem nenhuma lei aqui no GUJ que proibe comparara frameworks de tipo nenhum, mas vocês podiam ter um pouquinho mais de simancol e pelo menos diminuir a repetitividade.

imitando o seu segundo post.

bahh, mas ai da mais trabalho de fazer no mentawai do que no spring.

credo, me senti uma criança escrevendo isto.

ja expliquei nos meus dois ultimos posts.
e tem explicação detalhada na documentação do spring.

o mentawai não me incomoda, respeito um monte o projeto, e espero poder utiliza-lo ainda em algum projeto.

PS.: fazer coisa séria não quer dizer fazer coisa open source, trabalho em diversos projetos bastante sérios, inclusive projetos meus, mas praticamente todos são fechados, ja iniciei alguns projetos open source, não tive tempo de toca-los, e sempre que posso contribuo para algum projeto que uso ou gosto, como o spring, eclipse, grails, hibernate, GUJ, RSJUG, …

saoj:

Se vc quiser, e olhe bem, apenas se vc quiser, explique mais vantagens que o container de IoC do Spring tem em relação ao do Mentawai, pois esse prototype eu não entendi muito bem. Poderia dar um exemplo ?


não conheço a fundo o container IoC do mentawai, vou tentar arrumar tempo para estudar e assim que possivel te mando em PVT se encontrar alguma vantagem do container do spring sobre o do menta, veja bem, eu disse “se” pois não sei se existem realmente.

urubatan

por que eu gostei da ideia, mas acabei vendo diversos problemas nisto então abandonei.
o XML no spring 2.0 melhorou bastante, então em algumas situações acabo utilizando parte da configuração em XML e parte dela programatica, dando preferencia para anotações para a parte mais estatica sempre que possivel.

saoj:

E outra coisa: o nome é mentawaI com i no final, urubutan…

o microfilo ja havia me corrigido quanto ao nome, muito obrigado pela correção.

urubatan

o que você chama de uma aplicação completa?

os exemplos que vem junto com o download não servem?

PS.: se isto passar de duas páginas eu desisto, vocês são mais chatos do que eu!
saoj

Cuspir no prato que comeu é feio. Vc parecia bastante empolgado na época. Colocou até no seu blog. E eu não vi depois nada falando de problemas que vc teve, pelo contrário, vi vc reclamando da quantidade de XML do Spring. :slight_smile:

Mas tudo bem, se vc não gostou, explica o que vc não gostou e vamos argumentar. Ou melhor não ?

Se vc preferir leia esse paper do Martin Fowler sobre isso e veja o que ele diz sobre configuração programática.

http://forum.mentaframework.org/posts/list/159.page

A

o que você chama de uma aplicação completa?

os exemplos que vem junto com o download não servem?

PS.: se isto passar de duas páginas eu desisto, vocês são mais chatos do que eu!

Eu disse basica e não completa amigo, obrigado por dizer que existem exemplos no download do spring.

Valeu

Criado 10 de abril de 2006
Ultima resposta 11 de abr. de 2006
Respostas 17
Participantes 6