Certifique-se de ter preparado seu ambiente conforme descrito nesse post : Java-spring-netbeans-72 .
Neste Post mostrarei como implementar um Bean que conterá uma chamada p/ uma interface de nome Message
1- Crie um novo projeto Java >> Java Application
![]() |
Figura 01- Novo projeto Java |
![]() |
Figura 02 - Nome do projeto e classe principal |
3- Adicione a Lib Spring criada no Post Java-spring-netbeans-72 :
![]() |
Figura 03 - Propriedades do projeto |
![]() |
Figura 04 - Clique em add Library e Adicione a lib Spring |
![]() |
Figura 05 -Após selecionar a Lib , clique em OK |
![]() | |
|
![]() |
Figura 07 -Nome doArquivo beans-definitions.xml , em folder clique em browse e escolha a pasta src |
![]() |
Figura 08 - Tipo de Documento, escolha well-formed document |
![]() | |
|
conteúdo do arquivo beans-definitions.xml :
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean name="message1" class="springlesson01.HelloWorldMessage"> <property name="name" value="Mario Cezzare"></property> </bean> </beans>Observe que o nome do nosso bean é : message1
Observe que ao colocar esse endereço o NB fará o download dos arquivos de definição
![]() |
Figura 10 - NB baixando os schemas |
public String getMessage();
Clique com o botão direito no projeto e escolha new>> java interface
![]() |
Figura 11 - Nova Interface Java |
![]() | |
|
![]() |
Figura 13 - adicione a função getMessage |
conteúdo do arquivo Message.java
package springlesson01; public interface Message { public String getMessage(); }
7 - Vamos criar a Classe HelloWorldMessage que implementará a interface Message
I) Clique com o botão direito no package springlesson01 e escolha new>> java class
![]() |
Figura 14 - Nova classe java |
![]() |
Figura 15 - Classe HelloWorldMessage |
package springlesson01; public class HelloWorldMessage { public String name; }III) Vamos aproveitar os recursos do NB e utilize o atalho PC(ctrl + i), MAC (command +i) ou através do menu Source >> Insert code p/ gerar os Gets/Sets :
![]() |
Figura 16 - Insert Code |
Clique na Classe HelloWorldMessage p/ selecionar o(s) atributo(s) name, e marque a opção Encapsulate fields, e Generate
![]() |
Figura 17 - opções p/ gerar Get/Set |
IV) Observe que o encapsulamento da variável a tornou privada
![]() |
Figura 18 - Código da classe HelloWorldMessage |
package springlesson01; public class HelloWorldMessage { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
e precisamos que essa classe implemente a interface Message. Para isso adicione o texto implements Message após o nome da Classe. Veja que o NB reclamou.
![]() |
Figura 19 - implementando a interface Message |
Isso acontece porque ao implementar uma interface, se nossa classe não for abstrata, precisamos implementar todos os métodos abstratos. Clique na lampada no nº da linha e escolha a opção implement all abstract methods.
![]() |
Figura 20 - implementado os métodos abstratos |
E faremos com que o método getMessage retorne uma String "Hello" + o nome . Esta classe agora deve estar assim:
package springlesson01; public class HelloWorldMessage implements Message{ private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String getMessage() { return "Hello " + name; } }
V) Antes de mostrar o uso do bean e do Spring vamos corrigir um lapso, dei o nome de arquivo XML de bean-definitions.xml.xml
Clique com o botão direito no arquivo XML e escolha a opção Rename e altere p/
bean-definitions que o NB poe a extensão .xml no arquivo
![]() |
Figura 21 - Correção do arquivo xml |
![]() | |
|
VI) Agora vamos colocar em nosso método main do programa, que está na classe springlesson01.SpringLesson01 a chamada p/ utilização do método getBean do nosso bean message1, através da instância de um objeto do tipo ClassPathXmlApplicationContext do Spring Framework que recebe como parâmetro um arquivo XML :
![]() |
Figura 23 -Editando o método main do programa |
Clique duas vezes no arquivo SpringLesson01.java do package springlesson01 :
Adicione o seguinte código dentro do método main
ApplicationContext ctx= new ClassPathXmlApplicationContext("beans-defitions.xml"); Message message1 = (Message)ctx.getBean("message1"); System.out.println(message1.getMessage());
Neste momento, o arquivo completo deve estar assim :
package springlesson01; public class SpringLesson01 { public static void main(String[] args) { ApplicationContext ctx= new ClassPathXmlApplicationContext("beans-definitions.xml"); Message message1 = (Message)ctx.getBean("message1"); System.out.println(message1.getMessage()); } }Porém o NB deve ter sublinhado a linha 9 apresentando um erro, isso acontece porque precisamos importar as classes do Spring que contém esses métodos e objetos.
![]() |
Figura 24 - Editando o método main |
Clique na lâmpada que aparece no nº da linha e escolha a sugestão de importar as 2 libs do spring org.springframework.context.ApplicationContext e org.springframework.context.support.ClassPathXmlApplicationContext
![]() |
Figura 25 - Adicionando as classes do Spring |
e o arquivo deve ter ficado assim
package springlesson01; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class SpringLesson01 { public static void main(String[] args) { ApplicationContext ctx= new ClassPathXmlApplicationContext("beans-definitions.xml"); Message message1 = (Message)ctx.getBean("message1"); System.out.println(message1.getMessage()); } }e pronto.Vamos rodar no projeto e ver se funcionou. Clique no botão RUN (ícone de play) , ou no menu Run >> Run Project , e veja o resultado na aba output :
![]() |
Figura 26 - Resultado Final |
O resultado deve ser :
Hello Mario Cezzare
E assim concluímos nossa lição 01.
Resumo : o que foi feito ?
Utilizamos a classe ApplicationContext p/ gerenciar o contexto de nossa App. Informamos a ela que as definições dos serviços estão em um arquivo XML, através do objeto ClassPathXmlApplicationContext.
Implementamos uma interface Message através da classe HelloWorldMessage p/ retornar o conteúdo da propriedade name do nosso bean message1 através do método getMessage() da interface
Download do projeto NB
SpringLesson01
Dúvidas, Contribuições, Sugestões? Poste..
Grato,
Até a próxima.
Nenhum comentário:
Postar um comentário