O documento descreve os principais conceitos do framework Spring, incluindo Inversão de Controle e Injeção de Dependência. O Spring permite definir as dependências entre classes de uma aplicação Java através de um arquivo de configuração XML, facilitando o desenvolvimento de aplicações orientadas a objetos com baixo acoplamento entre classes.
34. Inversion of Control Padrão de desenvolvimento de programas de computadores onde a sequência (controle) de chamadas dos métodos não é determinada pelo programador. Este controle é delegado a uma infraestrutura de software muitas vezes chamada de container. Esta é uma característica comum aos frameworks. http://pt.wikipedia.com/ Dependency_Injection (Inversão de Controle)
35. Dependency Injection No Spring o container se encarrega de "instanciar" classes de uma aplicação Java e definir as dependências entre elas através de um arquivo de configuração em formato XML. Dessa forma o Spring permite o baixo acoplamento entre classes de uma aplicação orientada a objetos. http://pt.wikipedia.com/ Dependency_Injection (Inclusão de Dependência)
36. Exemplo Codificação Vamos implementar o seguinte sistema de classes Normalmente e depois implementaremos Spring no Sistema. (Inclusão de Dependência)
37.
38.
39. Dependency Injection Para fazer o Spring entender a dependência entre nossas classes, precisamos criar um arquivo de configuração. Este geralmente recebe o nome de applicationContext.xml . Vejamos o arquivo que define nosso exemplo: (Inclusão de Dependência)
40.
41.
42. O Arquivo ApplicationContext.xml O applicationContext.xml é onde são declarados os beans do Spring. O framework chama de beans todas as classes que gerencia. As classes precisam ser declaradas utilizando o elemento <bean> (Inclusão de Dependência)
43. <bean id=” identificador do bean ” class=” FQN da classe que implementa o bean ” > <property name=” nome do atributo ” ref=” id do bean que satisfaz a dependência ”/> </bean> FQN significa Fully-Qualified Name, ou nome completo. O FQN de uma classe é o nome da classe com o seu pacote completo. Por exemplo, o FQN da classe String é java.lang.String , o FQN da classe List é java.util.List .
44. O Arquivo ApplicationContext.xml No exemplo, declaramos os beans computadorBean, impressoraBean, monitorBean e tecladoBean. O bean computadorBean possui como atributos referências para os outros beans e estas referências são declaradas utilizando elementos property dentro da declaração do bean. Ao utilizar o elemento property, o Spring irá tentar utilizar um método set NomeDoAtributo () para preencher o bean com a dependência configurada. Muitas vezes, para não quebrar a invariante de um objeto é necessário que suas dependências sejam supridas durante a inicialização deste. Para estes casos, o Spring oferece a possibilidade de injetar as dependências utilizando o construtor do objeto ao invés de seus métodos mutadores (setters). (Inclusão de Dependência)