Quais são os benefícios dos arquivos de multi-configuração da primavera?
A divisão de arquivos de configuração de acordo com o objetivo e a função pode melhorar a legibilidade e manutenção de arquivos de configuração, como configurações separadas com poucas alterações, como gerenciamento de transações de configuração e fontes de dados e feijões de configuração.
Várias maneiras pelas quais a primavera lê arquivos de configuração:
1. Leia usando o método ApplicationContext fornecido pela própria mola
Nos programas Java, você pode usar o ApplicationContext Duas classes de implementação ClassPathXMLApplicationContext e FileSystemXMLApplicationContext para ler vários arquivos de configuração, e seus construtores podem receber uma matriz de arquivos de configuração.
Por exemplo: ApplicationContext ctx = new ClassPathXMLApplicationContext (Configlocations); É semelhante à maneira de criar o ApplicationContext usando o FileSystemxMLApplicationContext, a única diferença é que os caminhos dos dois arquivos de configuração de pesquisa são diferentes: ClassPathXMLApplicationContext Searches Configuration através do caminho ClassPath: FileStystemXMLApplicationContext Pesquisa arquivos de configuração do caminho atual.
Método 1: Salvar o objeto ApplicationContext durante a inicialização
Código:
ApplicationContext AC = new FileSystemXMLApplicationContext ("ApplicationContext.xml"); ac.getbean ("beanid"); ilustrar:
Este método é adequado para aplicativos independentes usando a estrutura de mola, onde os programas exigem que a mola seja inicializada manualmente por meio de arquivos de configuração.
Método 2: Obtenha o objeto ApplicationContext através da classe de ferramentas fornecida pela primavera
Código:
importar org.springframework.web.context.support.webApplicationContextUtils; ApplicationContext ac1 = webApplicationContextUtils.getRequiredWebApplicationContext (ServletContext SC) ApplicationContext ac2 = webApplicationContextUtils.getwebApplicationContext (servletContext sc) ac1.getbean ("Beanid"); ac2.getbean ("beanid"); ilustrar:
Este método é adequado para os sistemas B/S usando a estrutura de primavera, obtendo o objeto ApplicationContext através do objeto ServletContext e, em seguida, obtendo a instância de classe necessária através dele.
A diferença entre os dois métodos de ferramenta acima é que o primeiro lança uma exceção quando a aquisição falha, e o último retorna nulo.
Método 3: herdado da classe abstrata ApplicationObjectSupport
ilustrar:
O abstrato Class ApplicationObjectSupport fornece o método getApplicationContext (), que pode obter facilmente o ApplicationContext. Quando a primavera for inicializada, o objeto ApplicationContext será injetado através do método SetapplicationContext (contexto ApplicationContext) da classe abstrata.
Método 4: herdado da classe abstrata WebApplicationObjectSupport
ilustrar:
Semelhante ao método acima, ligue
Método 5: Implemente o interface ApplicationContextAwe
ilustrar:
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.
Os métodos acima são adequados para diferentes situações, escolha o método correspondente de acordo com a situação específica.
2. Carregando ao usar o Web Project Startup
Quais arquivos de configuração são carregados automaticamente em web.xml:
<Cexexp-Param> <amam-name> contextConfigLocation </param-name> <amam-value> /web-inf/spring/spring-core.xml </param-value> </context-param> <Vertlet> <Verlet-name> springmvc </servlet-name> <Servlet-class> org.springframework.web.servlet.dispatcherServlet </servlet-class> <init-param> <amam-name> contextConfigLocation </param-name <amam-value>/web- Inf/mola/mola-servlet.xml </param-value> </irit-param> <adarble-on-startup> 1 </olload-on-startup> </servlet> <sivel-mapping> <sutlet-name> springmvc </servlet-name> <url-pattern>/</url-pattern> </sertlet-Mapping>
Quando existem vários números, você pode usar * para substituí -los.
<Vertlet> <Verlet-name> app </servlet-name> <Servlet-class> org.springframework.web.servlet.dispatcherServlet </servlet-class> <Context-param> <amam-name> contextConfigLocation </amon-Name> <Maam-Value> /web-inf/applicationContext*.xml,/web-inf/user_spring.xml </param-value> </context-param> <adarot-on-startup> 1 </load-on-startup> </servlet>
3. Importe outros arquivos de configuração para o arquivo de configuração XML
Configure o serviço de aplicativo para carregar em /web-inf/applicationContext.xml. Você pode usar o Importo para importar outros arquivos de configuração no ApplicationContext.xml.
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: context = "http://wwwxt.springframework.org/schema =" http://wwwx. xmlns: p = "http://www.springframework.org/schema/p" xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: tx = "http://www.springframework.org/schema/tx" xmlns: aop = "http://www.springframework.org/schema/aop" 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.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://ww.springframework.org/3hma http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd"><import Resource = "Spring-Servlet.xml"/> <importar Resource = "Spring-security.xml"/> <importação Resource = "spring-hibernate.xml"/> <importar resource = "spring-redis.xml"/> <importar recurso = "spring-redis.xml"/> <Beans>