Threads e MVC  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
vmsb11
Java Ninja

Membro desde: 25/08/2008 12:35:00
Mensagens: 251
Offline

Olá pessoal estou desenvolvendo um aplicativo em Desktop com Banco de Dados, decidi utilizar MVC pois gosto muito deste modelo e tb acho que ele se aplica melhor na minha aplicação....
Na minha aplicação eu terei que inserir um grande volume de registros no banco de dados e por isso decidir fazer isto em um Thread separada, a minha dúvida é como integrar Threads no meu modelo MVC, devo fazer a minha classe de controller implementar Runnable? ou devo criar uma classe separada para implementar a Thread?
Agradeço a quem puder me responder!
oddy.silva
JavaEvangelist
[Avatar]

Membro desde: 24/11/2008 11:42:10
Mensagens: 352
Localização: Itu
Offline

Cara, não sei se você tá usando Hibernate, mas se tiver, dá uma olhada no padrão Thread-local Session.
Você vai gostar.


http://simoes.org/docs/hibernate-2.1/42.html


Tem mais coisas no Google. Eu aprendi a usar esse padrão lendo o Hibernate In Action, que fala bastante sobre ele, mas exemplifica mais com Servlets.

This message was edited 2 times. Last update was at 01/07/2010 12:42:41


Odair
Gestão em T.I
FATEC - ITU
"Quem quer fazer alguma coisa, encontra um meio"

Quer ser um programador veloz? Então compre um par de tênis a jato.
[Email]
vmsb11
Java Ninja

Membro desde: 25/08/2008 12:35:00
Mensagens: 251
Offline

oddy.silva wrote:Cara, não sei se você tá usando Hibernate, mas se tiver, dá uma olhada no padrão Thread-local Session.
Você vai gostar.


http://simoes.org/docs/hibernate-2.1/42.html


Tem mais coisas no Google. Eu aprendi a usar esse padrão lendo o Hibernate In Action, que fala bastante sobre ele, mas exemplifica mais com Servlets.


obrigado pela ajuda oddy.silva mas eu estou usando o MySQL msm sem integração com o hibernate....
vmsb11
Java Ninja

Membro desde: 25/08/2008 12:35:00
Mensagens: 251
Offline

Estava lendo um tutorial de SwingWorker e achei interessante a minha única dúvida é como integrar Concorrência isso ao MVC....
vhmolinar
JavaChild
[Avatar]

Membro desde: 21/10/2008 20:57:22
Mensagens: 103
Offline

vmsb11 wrote:Estava lendo um tutorial de SwingWorker e achei interessante a minha única dúvida é como integrar Concorrência isso ao MVC....



Em Java, threads são classes, então o que você vai precisar é ter uma classe separada à ser executada por uma thread e não fazer uma das camadas do MVC se tornar uma thread. Exemplo:

você teria uma classe runnable



que seria instanciada por uma thread



onde essa inicilização poderia ser feita em paralelo ao fluxo do MVC, por exemplo, quando sua aplicação inicializasse ou sei lá, a partir do momento que você preicsar que ela comece a funcionar...

@vhmolinar


vmsb11
Java Ninja

Membro desde: 25/08/2008 12:35:00
Mensagens: 251
Offline

vhmolinar wrote:
vmsb11 wrote:Estava lendo um tutorial de SwingWorker e achei interessante a minha única dúvida é como integrar Concorrência isso ao MVC....



Em Java, threads são classes, então o que você vai precisar é ter uma classe separada à ser executada por uma thread e não fazer uma das camadas do MVC se tornar uma thread. Exemplo:

você teria uma classe runnable



que seria instanciada por uma thread



onde essa inicilização poderia ser feita em paralelo ao fluxo do MVC, por exemplo, quando sua aplicação inicializasse ou sei lá, a partir do momento que você preicsar que ela comece a funcionar...


hum.... ok isso eu entendo mas por exemplo a classe que vai executar a thread ele ficaria no pacote do controller????....

e mais uma dúvida se ela fosse uma classe privada dentro da minha classe Controller isso é uma boa prática de programação????....

obrigado pela ajuda....
vhmolinar
JavaChild
[Avatar]

Membro desde: 21/10/2008 20:57:22
Mensagens: 103
Offline

vmsb11 wrote:
vhmolinar wrote:
vmsb11 wrote:Estava lendo um tutorial de SwingWorker e achei interessante a minha única dúvida é como integrar Concorrência isso ao MVC....



Em Java, threads são classes, então o que você vai precisar é ter uma classe separada à ser executada por uma thread e não fazer uma das camadas do MVC se tornar uma thread. Exemplo:

você teria uma classe runnable



que seria instanciada por uma thread



onde essa inicilização poderia ser feita em paralelo ao fluxo do MVC, por exemplo, quando sua aplicação inicializasse ou sei lá, a partir do momento que você preicsar que ela comece a funcionar...


hum.... ok isso eu entendo mas por exemplo a classe que vai executar a thread ele ficaria no pacote do controller????....

e mais uma dúvida se ela fosse uma classe privada dentro da minha classe Controller isso é uma boa prática de programação????....

obrigado pela ajuda....



Depende do que você entende por Modelo e Controle, mas tenho uma idéia de imediato de que não seria no controle não.
Agora sobre ser uma boa práticas ser uma inner class ou não, bom eu não sei, mas fico pensando no que poderia acontecer caso sua classe que engloba morresse e a thread ainda estivesse em execução. Taí uma boa questão.
Será que alguém aí sabe como java reageria a isso? hehe

This message was edited 1 time. Last update was at 01/07/2010 14:16:50


@vhmolinar


vmsb11
Java Ninja

Membro desde: 25/08/2008 12:35:00
Mensagens: 251
Offline

hum....eh mas isso não vai acontecer porq a classe de controller sempre ficará ativa....
rdgms
Virtual Machine Man
[Avatar]

Membro desde: 21/12/2006 22:08:57
Mensagens: 628
Localização: São Paulo
Offline

Você pode jogar os objetos na BlockingQueue.. e depois consumir.. em uma thread.
ai caso de algum problema você pode colocar esse objeto que deu erro em outra Queue
ai depois você ver qual a melhor maneira de tratar o problema

Abraço!

This message was edited 1 time. Last update was at 01/07/2010 14:23:09


PDF, JPG, GIF, DOC e DOCX
JAVA! SCALA!


vmsb11
Java Ninja

Membro desde: 25/08/2008 12:35:00
Mensagens: 251
Offline

Agradeço as opniões mas ainda essa parte de integração ainda está muito obscura para mim
rdgms
Virtual Machine Man
[Avatar]

Membro desde: 21/12/2006 22:08:57
Mensagens: 628
Localização: São Paulo
Offline

Você pode no controle ao invez de chamar o dao para já gravar o Objeto coloca em uma classe com uma blockingqueue.... você criar uma thread para ficar consumindo essa fila!

Abraço!

PDF, JPG, GIF, DOC e DOCX
JAVA! SCALA!


vmsb11
Java Ninja

Membro desde: 25/08/2008 12:35:00
Mensagens: 251
Offline

rdgms wrote:Você pode no controle ao invez de chamar o dao para já gravar o Objeto coloca em uma classe com uma blockingqueue.... você criar uma thread para ficar consumindo essa fila!

Abraço!


hum....obrigado rdgms pela ajuda, onde posso encontrar um bom tutorial da clase blockingqueue????....
vmsb11
Java Ninja

Membro desde: 25/08/2008 12:35:00
Mensagens: 251
Offline

olá pessoal, tenho mais uma dúvida, o seguinte código é uma boa prática de programação????....




o código acima é uma boa prática de programação????....
foi a forma mais apropriada que eu encontrei pra solucionar a minha dúvida que foi a responsável pela criação deste tópico....além da BlockingQueue que ja foi citada acima

This message was edited 2 times. Last update was at 02/07/2010 11:11:43

vmsb11
Java Ninja

Membro desde: 25/08/2008 12:35:00
Mensagens: 251
Offline

alguém pode me indicar um bom tutorial de como se trabalha com threads e banco de dados????....
vmsb11
Java Ninja

Membro desde: 25/08/2008 12:35:00
Mensagens: 251
Offline

pessoal, a respeito da minha dúvida inicial, eu desenvolvi o código da minha aplicação que integra threads e mvc e postarei abaixo o código resumido da parte de integração de threads e mvc e gostaria da opnião de vocês para ver se o código está bem desenvolvido....

 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team