Existem muitas maneiras de obter feijão na primavera, e vou resumir novamente:
O primeiro tipo: salve o objeto ApplicationContext durante a inicialização
ApplicationContext AC = new FileSystemXMLApplicationContext ("ApplicationContext.xml"); ac.getBean ("beanid"); Nota: Este método é adequado para aplicativos independentes usando a estrutura de mola, e o programa exige que o programa inicialize manualmente a mola através de arquivos de configuração.
O segundo tipo: obtenha objeto ApplicationContext através da classe de ferramentas fornecida pela primavera
importar org.springframework.web.context.support.webApplicationContextUtils; ApplicationContext ac1 = webApplicationContextUtils.GetReQuiredWeBApplicationContext (ServletContext sc); ApplicationContext Ac2 = WebApplicationContex.GETTILTEXT (servletContext SC); sc); ac1.getbean ("beanid"); ac2.getbean ("beanid"); ilustrar:
1. Esses dois métodos são adequados para os sistemas B/S usando a estrutura de mola, obtém o objeto ApplicationContext através do objeto ServletContext e, em seguida, obtenha a instância de classe necessária através dele;
2. O primeiro método lança uma exceção quando a aquisição falha e o segundo método retorna nulo.
O terceiro tipo: herdado da classe abstrata ApplicationObjectSupport
NOTA: O método getApplicationContext () fornecido pela classe abstract ApplicationObjectSupport pode obter facilmente a instância do ApplicationContext e, em seguida, obter o feijão no contêiner de mola. Quando a primavera for inicializada, o objeto ApplicationContext será injetado através do método SetapplicationContext (contexto ApplicationContext) da classe abstrata.
Quarto tipo: herdado da classe abstrata webApplicationObjectSupport
Nota: Semelhante ao método acima, obtenha a instância da WebApplicationContext chamando getwebApplicationContext ();
Quinto Tipo: Implementando o ApplicationContexTAWare da Interface
Descrição: Implemente o método setApplicationContext (ApplicationContext Context) desta interface e salve o objeto ApplicationContext. Quando a mola é inicializada, o objeto ApplicationContext é injetado através deste método.
Embora a Spring forneça os três últimos métodos para implementar a herança ou implementação de classes ou interfaces correspondentes em classes comuns para obter objetos ApplicationContext da Spring, ao usá -lo, você deve prestar atenção à herdadora ou implementação dessas classes ou interfaces abstratas. Ou o objeto ApplicationContext obtido será nulo.
A seguir, mostra como obter feijões em recipientes de primavera implementando o interface ApplicationContexTAWare:
Primeiro, personalize uma classe que implementa a interface ApplicationContextAware e implemente os métodos dentro:
pacote com.ghj.tool; importar org.springframework.beans.beansexception; importar org.springframework.context.applicationContext; importar org.springframework.Context.ApplicationContextAWare; public SpringConsGTool Application {) private estático springConfigTool springConfigTool = null; public sincronizado estático springConfigTool init () {if (springConfigTool == null) {springConfigTool = new springConfigTool (); } retornar SpringConfigTool; } public void setApplicationContext (ApplicationContext ApplicationContext) lança beansexception {AC = ApplicationContext; } public sincronizado Objeto estático getBean (string beanname) {return ac.getbean (beanname); }} Em segundo lugar, configure -o no arquivo ApplicationContext.xml:
Copie o código da seguinte forma: <bean id = "springConfigTool"/>
Finalmente, você pode obter o feijão correspondente no recipiente da primavera através do seguinte código:
A cópia do código é a seguinte: springconfigtool.getbean ("beanid");
Observe que, quando o servidor iniciar a inicialização do recipiente de mola, o recipiente de mola não pode ser obtido através dos seguintes métodos:
importar org.springframework.web.context.contextLoader; importar org.springframework.web.context.webApplicationContext; WebApplicationContext wac = contextLoader.getCurrentWebApplicationContext (); wac.getbean (beanid);
O exposto acima é tudo sobre este artigo, espero que seja útil para o aprendizado de todos.