Este artigo descreve o gerenciamento básico do Spring Bean com exemplos. Compartilhe com todos para sua referência, os detalhes são os seguintes:
1. Use o método setter para concluir a injeção de dependência
Abaixo estão os arquivos Bean e beans-config.xml.
public class HelloBean { private String helloWord; //...omitir métodos getter e setter}
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans. dtd"> <beans> <bean id="helloBean" > <property name="helloWord"> <value>Olá!Justin!</value> </property> </bean> </beans>
classe pública SpringDemo { public static void main(String[] args) {Recurso rs = new FileSystemResource("beans-config.xml"); oláBean"); System.out.println(hello.getHelloWord()); } }
2. Use o método construtor para completar a injeção
public class HelloBean { private String name; private String helloWord; // É recomendado ter um método de construção sem parâmetros public HelloBean() { } public HelloBean(String name, String helloWord) { this.name = name; ; } //...Omitir métodos getter e setter}
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans. dtd"> <beans> <bean id="helloBean" > <constructor-arg index="0"> <value>Justin</value> </constructor-arg> <constructor-arg index="1"> <value>Olá</value> </constructor-arg> </bean> </beans>
classe pública SpringDemo { public static void main (String [] args) { Contexto ApplicationContext = new FileSystemXmlApplicationContext ("beans-config.xml"); ("Nome: "); System.out.println(hello.getName()); System.out.print("Palavra: "); System.out.println(olá.getHelloWord());
3. Referência de atributo
public class HelloBean { private String helloWord; private Date date; //...omitir métodos getter e setter}
<beans> <bean id="dateBean"/> <bean id="helloBean"> <property name="helloWord"> <value>Olá!</value> </property> <property name="date"> < ref bean="dateBean"/> </property> </bean> </beans>
classe pública SpringDemo { public static void main (String [] args) { Contexto ApplicationContext = new FileSystemXmlApplicationContext ("beans-config.xml"); (olá.getHelloWord()); System.out.print("É"); System.out.print(olá.getDate()); System.out.println(".");
4. Vinculação automática "byType"
Altere o arquivo de configuração em "Três" para o seguinte para completar a ligação automática dos atributos do bean por tipo.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="byType"> <property name="helloWord"> <value>Olá!</value> </property> </bean> </feijão>
5. Vinculação automática "byName"
Altere o arquivo de configuração em "Três" para o seguinte para completar a ligação automática dos atributos do bean por nome.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="byName"> <property name="helloWord"> <value>Olá!</value> </property> </bean> </feijão>
6. Vinculação automática de "construtor"
Altere o arquivo de configuração em "Três" para o seguinte para completar a ligação automática dos atributos do bean de acordo com o método de construção. Ao estabelecer um relacionamento de dependência, o contêiner Spring tentará comparar o tipo de instância Bean no contêiner e o tipo de parâmetro no construtor relacionado para ver se o tipo é consistente. Em caso afirmativo, o construtor será usado para criar o Exemplo de Bean. . Se não puder ser vinculado, uma exceção org.springframework.beans.factory.UnsatisfiedDependencyException será lançada.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="constructor"> <property name="helloWord"> <value>Olá!</value> </property> </bean> </feijão>
6. Vinculação automática de “autodetecção”
Altere o arquivo de configuração em "Três" para o seguinte para completar a ligação automática das propriedades do bean. Esta ligação automática significa que o Spring tentará usar o construtor para lidar com o estabelecimento de dependências. Se não funcionar, tente usar o byType. classe para estabelecê-lo.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="autodetect"> <property name="helloWord"> <value>Olá!</value> </property> </bean> </feijão>
7. Método de verificação de dependência
Na ligação automática, como não há como ver claramente se cada atributo foi definido a partir do arquivo de definição, para garantir que certas dependências sejam realmente estabelecidas, você pode definir a verificação de dependência ao usar a tag <bean> Defining ". verificação de dependência", existem quatro métodos de verificação de dependência: simples, objetos, todos e nenhum.
simples: verifica apenas se as propriedades de tipos simples (como tipos de dados primitivos ou objetos de string) completam dependências.
objetos: verifique se as propriedades do tipo de objeto completam a dependência.
all: verifica se todos os atributos completam dependências.
nenhum: a configuração é o valor padrão, indicando que as dependências não são verificadas.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="autodetect" dependeny-check="all"> <property name="helloWord"> <value>Olá!</value> < /propriedade> </bean> </beans>
8. Injeção de objeto de coleção
Para objetos de coleção, como arrays, listas, conjuntos e mapas, alguns objetos devem ser preenchidos na coleção antes da injeção. Então, quando os objetos de coleção são injetados nos beans necessários, eles também podem ser mantidos ou gerados automaticamente pelo contêiner IoC do Spring. Objetos de coleção e injeção completa de dependência.
public class SomeBean { private String[] someStrArray; private Some[] someObjArray; private List someList; private Map someStrArray) { this.someStrArray = someStrArray; } public Some[] getSomeObjArray() { return someObjArray } public void; setSomeObjArray(Some[] someObjArray) { this.someObjArray = someObjArray } public List getSomeList() { return someList; public void setSomeMap(Mapa someMap) { this.someMap = someMap } }classe pública; Some { private String nome; public String getName() { return name;
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans. dtd"> <beans> <bean id="some1"> <property name="name"> <value>Justin</value> </property> </bean> <bean id="some2"> <property name="name"> <value>momor</value> </property> </bean> <bean id="someBean"> <property name="someStrArray"> <list> < value>Olá</value> <value>Bem-vindo</value> </list> </property> <property name="someObjArray"> <list> <ref bean="some1"/> <ref bean="some2"/> </list> </property> <property name="someList"> <list> <value>ListTest</value> <ref bean="some1"/> <ref bean="some2" /> </list> </property> <property name="someMap"> <map> <entry key="MapTest"> <value>Olá!Justin!</value> </entry> <entry key="someKey1 "> <ref bean="some1"/> </entry> </map> </property> </bean> </beans>
public class SpringDemo { public static void main(String[] args) { ApplicationContext context = new FileSystemXmlApplicationContext( "beans-config.xml"); Objeto de injeção de dependência com estado String[] strs = (String[]) someBean.getSomeStrArray(); (Algum[]) someBean.getSomeObjArray(); for(int i = 0; i < strs.length; i++) { System.out.println(strs[i] + "," + somes[i].getName() ); } // Obtém objeto de injeção de dependência do tipo Lista System.out.println(); List someList = (List) someBean.getSomeList(); someList.size(); i++) { System.out.println(someList.get(i) }); // Obtenha o objeto de injeção de dependência do tipo Map System.out.println(); (); System.out.println(someMap.get("MapTest")); System.out.println(someMap.get("someKey1")); }
Espero que este artigo seja útil para todos na programação Java.