*Mas agora só me responda o que lhe perguntei, de acordo com o EricEvans, se
não for via IoC, aa intâncias no caso do repositorios são injetadas via
Factories, a sua implementação está assim? Como você faz a injeção?*
Cara, aqui no sistema cada repositorio referente ao dominio estende de um
repositorio base onde colocamos todos os metodos comuns a todos
repositorios, como o metodo save, getbyid, update, delete, findAll, etc....
Cada repositorio que estende essa classe faz uma tipagem da classe de
dominio que será usada, assim o essa classe generica ja sabe com qual entity
esta trabalhando, nao há a necessidade de fazer cast's...
*public* *class* ClientRepository *extends* DAOBase<Client>{
Quando chamar algum método do DAOBase como save o parametro será
dinamicamente tipado de acordo com o objeto tipado pelo repositorio.
Dentro do dominio client eu tenho uma intancia de CLientRepository injetada
pelo spring.
Dentro do client é só usar...
....
public Client getById(){
return clientRepository.getById(id);
}
...
Essa é a declaração no spring.
<bean id="clientRepository" class=
"com.investflex.flexscan.model.repository.ClientRepository">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="client" class="com.investflex.flexscan.model.domain.Client">
<property name="clientRepository" ref="clientRepositoryProxy" />
</bean>
2008/8/26 Rodrigo Pereira Fraga <[EMAIL PROTECTED]>
> Olá,
>
> Eita Mário mt corrido ae? agora não nem aka digows já é aka Rodrigo, ehehhe
> kurti kra!
> =)
>
> Quanto ao George:
>
> vc tem q estudar DDD, e ver q activerecord é um pattern, vc recebe tudo
>> isso de gratis :D
>>
>> outro mundo :)
>
>
> Sobre DDD, conheço sim, tenho um artigo sobre Flex+Java que usa alguns
> princípios do DDD (não era o foco), tema de monografia, e tem um artigo
> submetido a aprovação em um evento aqui da região.
>
> ActiveRecord, também conheço, também fiz um artigo sobre padrões de negócio
> em específico o Domain Model (Martin PoEAA) que esboçava o uso do AR. Em
> todos os projetos java que fiz até hoje, fiz uso do padrão DataMapper aka
> DataAcessObject (DAO), é de interesse meu desenvolver um projeto utilizando
> ActiveRecord.
>
> Mas! falar de patterns e modelo de arquitetura como o Mário (aka Juninho
> heeheh) é igual falar de time de futebol e religião, ainda mais quando DDD
> está no meio, acredito que essa conversa cabe a outro forum (mais uma thread
> sobre DDD no GUJ...).
>
> Quanto ao Grails, concerteza você me animou mais ainda a estuda-lo,
> arrumarei tempo concerteza!
>
> Quanto ao Diogo,
>
> Que legal que já fez o aspecto, acredito que evoluir para um genérico não
> será complicado. Penso que todos os repositórios devam extender de um
> Repositorio, a qual no aspecto você trabalharia apenas com esse genérico.
>
> ..
>
>
> Um forte abraço a todos, tenham uma ótima noite.
>
>
> Mas agora só me responda o que lhe perguntei, de acordo com o EricEvans, se
> não for via IoC, aa intâncias no caso do repositorios são injetadas via
> Factories, a sua implementação está assim? Como você faz a injeção?
> 2008/8/26 Diogo Camelo Maximo <[EMAIL PROTECTED]>
>
>> Oi pessoal, como dito pelo Mario realmente esse tópico tá bem legal,
>> gostaria de agradecer a ajuda de todos, boas novas, conseguir implementar o
>> aspecto, por enquanto ainda não está genérico(isso é questão de tempo),
>> pretendo colocar ele pra pegar os parametros passado e por reflection
>> injetar todas as depedencias nos objetos, pretendo deixar isso para o
>> próximo incremento.
>> Por enquanto criei um hashmap onde mapeei o nome do metodo chamado para
>> um Interceptor, assim consigo fazer a ação antes do método ser chamado, não
>> tá da melhor maneira, mas por enquanto o ótimo é inimigo do bom.
>> *
>>
>> public
>> **void* before(Method method, Object[] objects, Object object)
>> *throws*Throwable {
>> Interceptor interceptor = *mapServices*.get(method.getName());
>> interceptor.execute(method, objects, object, SpringUtils.*
>> getApplicationContext*());
>> }
>> **
>> *Sobre o Grails*
>> Realmente o Grails seria uma boa, é bem parecido com Ruby On Rails, a
>> camada de model implementa o pattern ActionRecord que eu acho muito legal,
>> tem até um tutorial <http://mail.google.com/> bem bacana que vi esses
>> dias, com o Grails(assim como Ruby on Rails) todo código se tornaria bem
>> mais simples, vejam esse exemplo que peguei do tutorial da camada de
>> serviço.
>> //Service com Grails
>> def void save(Person p) {
>> p.save();
>> }
>> O único problema ;e que estamos prestes a lançar uma release do sistema e
>> nao podemos jogar o que foi feito no lixo, vou deixar o Grails para os
>> próiximos sistemas afinal produtividade é dinheiro economizado.
>> Abraços a todos.
>> Mais uma vez obrigado.
>> Diogo Camelo Máximo
>> http://www.javaplace.blogspot.com
>>
>>
>>
>> 2008/8/26 Mário Júnior <[EMAIL PROTECTED]>
>>
>> Entao... to voltando ao tópico =D (passei mal hoje e fiquei o dia todo
>>> off)
>>>
>>> - Seguinte... acho q o negócio está na arqutetura. Tirar os repositorys
>>> da entidades e injetá-los no services, daí seria possivel. Mas quebra
>>> totalmente a forma q o Diogo já vem trabalhando, e possivelmente um
>>> refactory seria pouco custoso.
>>>
>>> - Outra forma, seria como o Digows (aka Rodrigo) falou, criar um aspecto
>>> para interceptar seu service e injetar o repository manualmente. Tb seria
>>> custoso, mas é interessante, pq depois de feito o reaproveitamento disso
>>> seria muito bom.
>>>
>>> - Depois q li vcs escreverem sobre ActiveRecord, pensei no Grails... mas
>>> me falta bagagem pra falar dele. Mas como o George já comentou, aconselho a
>>> darem uma olhada... realmente é muito bom e produtivo... mas... volta ao
>>> problema de refatorar oq o Diogo já deve ter até hoje.
>>>
>>> Das tres, apostaria em duas coisas: Injete o repository no Service para q
>>> seu projeto não pare. (tempo é dinheiro). Depois, investiria tempo em
>>> implementar esse aspect. Ou, se vc tem tempo, comece a pesquisar e estudar
>>> essa implementação desde já.
>>>
>>> Depois, para projetos q forem iniciar "do zero", dê uma olhada no
>>> Grails... muito fácil e produtivo, principalmente para quem trabalha com
>>> fábrica de softwares.
>>>
>>> Abraços e boa sorte. (discussão legal essa... gostei! =D)
>>>
>>>
>>> --
>>> Mário de Souza Júnior
>>> Programador Java / Flex : AS3 / PHP
>>> (44) 4009-3550 Maringá-PR
>>> http://blog.mariojunior.com
>>> [EMAIL PROTECTED] (gtalk, msn, etc..)
>>>
>>>
>
>
> --
> Atenciosamente:
> -----------------------------------------------
> | Rodrigo Pereira Fraga|
> http://www.digows.com/
> http://forum.flexbrasil.com.br/
> -----------------------------------------------
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---