Olá pessoal, hoje vou falar um pouco sobre o maravilhoso mundo do Spring, pois quem trabalha com Java com certeza já ouviu falar dele. Esse é apenas o primeiro de muitos outros posts relacionados ao Spring, espero que curtam, um abraço.
O que é Spring?
Spring é um framework escrito em java por Rod Johnson e se baseia no conceito de injeção de dependências e inversão de controle. O Spring faz a injeção de dependências baseado em um arquivo de configuração.Ele controla todo o cliclo de vida dos objetos e trabalha orientado a interfaces possibilitando uma aplicação mais flexível e possibilitando modificar a classe de implementação de qualquer bean sem causar grandes mudanças na aplicação. O Spring possui integração com diversas tecnologias:
- Integração com os serviços da plataforma java EE;
- JDBC Template - uma camada em cima do JDBC que abstrai e gerencia todos os objetos e transações de acesso a banco de dados;
- Spring MVC - um framework para desenvolvimento de sistemas web utilizando o padrão MVC;
- Integração com tecnologias de ORM tais como Hibernate e JPA;
- Agendamento de tarefas com o Quartz;
- JavaMail;
- Integração com linguagens dinâmicas como o groovy e o jruby;
- Integração com tecnologias de Remoting como RMI e JAX RPC;
- Web services com JAX WS;
- Gerenciamento de transações;
- Internacionalização;
- Suporte a programação orientada a aspectos (AspectJ)
O Spring pode realizar a injeção de dependências via método set e via construtor. A interface BeanFactory é responsável por recuperar uma instância de um bean e ela possui várias implementações como DefaultListableBeanFactory que utiliza arquivos properties para injetar os beans, a XmlBeanFactory que utiliza arquivos XML para a injeção assim como a ApplicationContext que alem de utilizar arquivos XML para injeção dos beans possui suporte a configuração de outros recursos do Spring como o suporte a anotações.
O Spring possibilita o controle do cliclo de vida dos beans tanto na inicialização quanto na destruição. Seja adicionando a configuração dos métodos no arquivo ou implementando as respectivas interfaces InitializeBean e DisposableBean.
O Spring pode fazer a injeção de qualquer objeto Java inclusive de coleções como Map, Set e List e possui suporte a injeção de propriedades muito simplificada.
O Spring possui cinco escopos sendo singleton, prototype, request, session e global_session. Sendo os três ultimos utilizados em aplicações web apenas. O escopo singleton é padrão caso não seja especificado nenhum escopo na configuração do bean no arquivo.
Para que o Spring injete as dependências internas de um bean, na configuração do bean é necessário adiconar um atributo ref à propriedade que necessitar da dependência e essa dependência também precisa estar configurada no arquivo de configuração.
Alem de todo o suporte a estas tecnologias o Spring possui uma vasta comunidade ativa que contribui no desenvolvimento do framework, um plugin chamado Spring IDE para dar suporte a plataforma Eclipse e integração com outros ambientes de desenvolvimento como o Netbeans e o IntelliJ Idea.
O Spring também possui uma versão para a tecnologia .net chamada de Spring.Net e abrange as mesmas funcionalidade de Ioc e DI que a versão para Java.
O Spring ainda possui um módulo para a trabalhar com autenticação e autorização de usuários chamado Spring Security que da suporte a várias tecnologias de segurança como JAAS, LDAP, OpenID, CAS e outras.Também possui um plugin para geração de documentação semelhante ao JavaDoc. Integração com tecnologias para desenvolvimento web como Struts, Jsf e tecnologias para trabalhar com mapeamento objeto relacional como o hibernate, o IBatis, o JPA e outras.
Nenhum comentário:
Postar um comentário