Primavera - Definição de Feijão

Os objetos que formam o backbone de seu aplicativo e que são gerenciados pelo contêiner Spring IoC são chamados beans. Um bean é um objeto instanciado, montado e gerenciado de outra forma por um contêiner Spring IoC. Esses beans são criados com os metadados de configuração que você fornece ao contêiner. Por exemplo, na forma de definições XML <bean /> que você já viu nos capítulos anteriores.

A definição do feijão contém a informação chamada configuration metadata, que é necessário para o contêiner saber o seguinte -

  • Como criar um bean
  • Detalhes do ciclo de vida do Bean
  • Dependências de feijão

Todos os metadados de configuração acima se traduzem em um conjunto das seguintes propriedades que constituem cada definição de bean.

Sr. Não. Propriedades e descrição
1

class

Este atributo é obrigatório e especifica a classe do bean a ser usada para criar o bean.

2

name

Este atributo especifica o identificador do bean exclusivamente. Em metadados de configuração baseados em XML, você usa os atributos id e / ou nome para especificar o (s) identificador (es) de bean.

3

scope

Este atributo especifica o escopo dos objetos criados a partir de uma definição de bean particular e será discutido no capítulo de escopos de bean.

4

constructor-arg

Isso é usado para injetar as dependências e será discutido nos capítulos subsequentes.

5

properties

Isso é usado para injetar as dependências e será discutido nos capítulos subsequentes.

6

autowiring mode

Isso é usado para injetar as dependências e será discutido nos capítulos subsequentes.

7

lazy-initialization mode

Um bean de inicialização lenta informa ao contêiner IoC para criar uma instância de bean quando for solicitada pela primeira vez, em vez de na inicialização.

8

initialization method

Um retorno de chamada a ser chamado logo após todas as propriedades necessárias no bean terem sido definidas pelo contêiner. Isso será discutido no capítulo do ciclo de vida do feijão.

9

destruction method

Um retorno de chamada a ser usado quando o contêiner que contém o bean for destruído. Isso será discutido no capítulo do ciclo de vida do feijão.

Metadados de configuração Spring

O contêiner Spring IoC é totalmente desacoplado do formato no qual esses metadados de configuração são realmente gravados. A seguir estão os três métodos importantes para fornecer metadados de configuração para o Spring Container -

  • Arquivo de configuração baseado em XML.
  • Configuração baseada em anotação
  • Configuração baseada em Java

Você já viu como os metadados de configuração baseados em XML são fornecidos ao contêiner, mas vamos ver outro exemplo de arquivo de configuração baseado em XML com diferentes definições de bean, incluindo inicialização lenta, método de inicialização e método de destruição -

<?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">

   <!-- A simple bean definition -->
   <bean id = "..." class = "...">
      <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- A bean definition with lazy init set on -->
   <bean id = "..." class = "..." lazy-init = "true">
      <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- A bean definition with initialization method -->
   <bean id = "..." class = "..." init-method = "...">
      <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- A bean definition with destruction method -->
   <bean id = "..." class = "..." destroy-method = "...">
      <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- more bean definitions go here -->
   
</beans>

Você pode verificar o exemplo Spring Hello World para entender como definir, configurar e criar Spring Beans.

Discutiremos sobre a configuração baseada em anotação em um capítulo separado. É discutido intencionalmente em um capítulo separado, pois queremos que você entenda alguns outros conceitos importantes do Spring, antes de começar a programar com Spring Dependency Injection com Annotations.