Prefácio
Antes de introduzir a instanciação de feijões, primeiro precisamos apresentar o que é um feijão e como configurar feijões.
Se a primavera é considerada uma grande fábrica, o feijão no recipiente da primavera é o produto dessa fábrica. Para usar a Spring Factory para produzir e gerenciar feijões, você precisa especificar no arquivo de configuração quais são necessários e como montá -los juntos.
O contêiner de mola suporta dois formatos de arquivos de configuração, ou seja, o formato de arquivo de propriedades e o formato de arquivo XML. No desenvolvimento real, a quantidade mais usada é o formato de arquivo XML. Portanto, na explicação a seguir, explicaremos o método de configuração do formato de arquivo XML. O elemento raiz de um arquivo de configuração XML é <riefi>, que pode conter vários elementos filho <Bean>, cada elemento filho define um feijão e descreve como o feijão deve ser montado em um recipiente de mola. As propriedades no elemento <Bean> são as seguintes:
Em um arquivo de configuração, geralmente um feijão comum só precisa definir dois atributos: ID e Class. A maneira de definir um feijão é a seguinte:
<? xml versão = "1.0" coding = "utf-8"?> <! id = "userdao"/> <names de bean = "userdao1, userdao2"/> </beans>
No código acima, dois feijões são definidos usando os atributos ID e Name, e a classe de implementação correspondente é especificada usando o elemento de classe. Se o ID e o nome não forem especificados, a primavera usará o valor da classe como ID.
Quatro maneiras de instanciar feijões na primavera
Este artigo apresenta principalmente quatro maneiras de instanciar feijões (métodos de injeção) ou quatro maneiras de confiar na instanciação do objeto. O programa acima usa o método de criação de objetos de feijão e usa o método do construtor (a mola pode criar objetos de classe sob a privatização dos construtores)
Existem quatro métodos de criação comuns:
1) Método do setter
2) Construtor
3) Fábrica estática
4) Exemplo de fábrica
1. Use o método do setter
interface pública iuserdao {void addUser (); void deluser (); void updateUser (); } classe pública userDaoImpl implementa IUSERDAO {public void addUser () {System.out.println ("O método addUser foi chamado"); } public void deluser () {System.out.println ("Método Deluser foi chamado"); } public void updateUser () {System.out.println ("o método updateUser foi chamado"); } classe pública UserAction {private IUSERDAO DAO; // DAO é um objeto de dependência que precisa ser gerenciado pelo Springg e gera o método GET Set Public void Execute () {dao.adduser (); Dao.UpdateUser (); Dao.deluser (); }}// arquivo de configuração <name bean = "useraction_name"> <propriedade name = "dao" ref = "userdao_name" /> // o nome é mencionado abaixo </i bean> <nome do bean = "userdao_name" />
// teste ClassPathXMLApplicationContext ctx = new ClassPathXMLApplicationContext ("beans.xml"); Ação do userAction = (UserAction) ctx.getBean ("userAction_name"); ação.execute ();2. Função do construtor
public class UserAction {// public userAction () {} Você pode manter um construtor sem parâmetros // Estas são várias dependências e não há necessidade de gerar um método de get set userinfo usuário; Escola de cordas privadas; Privado Iuserdao Dao; // Espero que a primavera injete o objeto de dependência public userAction (iuserdao dao, usuário userinfo, string school) {this.dao = dao; this.school = escola; this.User = usuário; } public void Execute () {dao.adduser (); Dao.UpdateUser (); Dao.deluser (); System.out.println (usuário); System.out.println (escola);} // arquivo de configuração <nome do bean = "userinfo_name"> <propriedade name = "id" value = "1" /> <names name = "username" value = "semanal" /> <names name = "senha" value = "123" /> <name da propriedade "user" user "=" this é uma nota " /> < /bEan> <bainha ref = "userdao_name" /> <construtor-arg ref = "userinfo_name" /> <construtor-arg value = "Harbin Normal University" /> </i bean> /*Você também pode especificar as propriedades do índice e do tipo, nem o índice nem o tipo pode ser especificado <bean = "userAction_Name"> <Construtor- type = "Cat.dao.userdao" /> Se for uma interface, não pode ser especificado para o tipo da classe de implementação. <Construtor-arg index = "1" ref = "userinfo_name" type = "Cat.beanS.Userinfo" /> <construtor-arg " /" 2 "**"****, (", (", name = "userdao_name" /> // teste ClassPathXMLApplicationContext ctx = new ClassPathXMLApplicationContext ("beans.xml"); Ação do userAction = (UserAction) ctx.getBean ("userAction_name"); ação.execute ();3. Método de fábrica estática
// Factory, a classe de implementação usada para gerar classe pública dao userDaofactory {public static iuserdao createUserdaoiStance () {return userdaoracleImpl (); }} classe pública UserAction {private iUserdao Dao; // Use o método da fábrica para prestar atenção ao valor e também gerar o método set public void execute () {dao.adduser (); Dao.UpdateUser (); dao.deluser ();} public void setdao (iuserdao dao) {this.dao = dao; }}// arquivo de configuração <bean name = "useraction_name"> <propriedade name = "dao" ref = "userdao_name" /> < /bean> <bean name = "userdao_name" fábrica-method = "createUserdaoinStance" />
// teste ClassPathXMLApplicationContext ctx = new ClassPathXMLApplicationContext ("beans.xml"); Ação do userAction = (UserAction) ctx.getBean ("userAction_name"); ação.execute ();4. Exemplo de fábrica
// Factory => public class UserDaofactory {// Este método não é um público estático iuserdao CreateUserdaoInstance () {return userdaOooracleImpl (); }}// arquivo de configuração <bean name = "useraction_name"> <propriedade name = "dao" ref = "userdao_name" /> < /bean> <bean name = "userDaofactory_name" /> <names-fábrica methy (userdao_name "factory =" userdaofactory_name "
Resumir
O acima é o conteúdo inteiro deste artigo. Espero que o conteúdo deste artigo tenha certo valor de referência para o estudo ou trabalho de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar. Obrigado pelo seu apoio ao wulin.com.