Spring Multi-Configuration 파일의 이점은 무엇입니까?
목적 및 기능에 따라 구성 파일을 분할하면 구성 트랜잭션 관리 및 데이터 소스 및 구성 Bean과 같은 변경 사항이 거의없는 별도의 구성과 같은 구성 파일의 가독성 및 유지 보수가 향상 될 수 있습니다.
Spring은 구성 파일을 읽는 여러 가지 방법입니다.
1. Spring 자체가 제공 한 ApplicationContext 메소드를 사용하여 읽기
Java 프로그램에서는 ApplicationContext 2 구현 클래스 클래스 pathxmlApplicationContext 및 FilesyStemXMlApplicationContext를 사용하여 여러 구성 파일을 읽을 수 있으며 해당 생성자는 구성 파일의 배열을받을 수 있습니다.
예를 들면 다음과 같습니다. ApplicationContext CTX = New ClassPathXmlApplicationContext (configlocations); filesystemxmlapplicationcontext를 사용하여 ApplicationContext를 작성하는 방법과 유사합니다. 유일한 차이점은 두 검색 구성 파일의 경로가 다르다는 것입니다. classPathXmlApplicationContext ClassPath Path를 통해 구성 파일을 검색합니다. filesystemxMlapplicationContext 현재 경로에서 구성 파일을 검색합니다.
방법 1 : 초기화 중에 ApplicationContext 객체를 저장합니다
암호:
ApplicationContext ac = 새 FileSyStemXmlApplicationContext ( "ApplicationContext.xml"); ac.getbean ( "beanid");
설명 :
이 방법은 스프링 프레임 워크를 사용하는 독립형 응용 프로그램에 적합하며, 여기서 프로그램은 구성 파일을 통해 스프링을 수동으로 초기화해야합니다.
방법 2 : Spring에서 제공 한 도구 클래스를 통해 ApplicationContext 개체 가져 오기
암호:
import org.springframework.web.context.support.webapplicationcontextutils; ApplicationContext AC1 = WebApplicationContextUtils.getRequiredWebApplicationContext (ServletContext SC) ApplicationContext AC2 = WebApplicationContextUtils.getWebApplicationContext (ServletContext SC) AC1.GetBean ( "Beanid"); ac2.getBean ( "beanid");
설명 :
이 방법은 Spring Framework를 사용하는 B/S 시스템에 적합하며 ServletContext 객체를 통해 ApplicationContext 객체를 얻은 다음 필요한 클래스 인스턴스를 얻습니다.
위의 두 가지 도구 방법의 차이점은 획득이 실패 할 때 전자가 예외를 던지고 후자는 NULL을 반환한다는 것입니다.
방법 3 : 추상 클래스에서 상속 된 ApplicationObjectSupport
설명 :
Abstract Class ApplicationObjectSupport는 applicationContext를 쉽게 얻을 수있는 getApplicationContext () 메소드를 제공합니다. Spring이 초기화되면 ApplicationContext 객체는 초록 클래스의 setApplicationContext (ApplicationContext Context) 메소드를 통해 주입됩니다.
방법 4 : 추상 클래스 WebApplicationObjectSupport에서 상속
설명 :
위 메소드와 유사하게 getWebApplicationContext ()를 호출하여 webApplicationContext를 얻습니다.
방법 5 : 인터페이스 ApplicationContextAware 구현
설명 :
이 인터페이스의 setApplicationContext (ApplicationContext Context) 메소드를 구현하고 ApplicationContext 객체를 저장하십시오. 스프링이 초기화되면이 방법을 통해 ApplicationContext 객체가 주입됩니다.
위의 방법은 다른 상황에 적합하며 특정 상황에 따라 해당 방법을 선택하십시오.
2. 웹 프로젝트 시작을 사용할 때로드
Web.xml에 자동로드되는 구성 파일 :
<CENTEXT-PARAM> <Param-Name> ContextConfigLocation </param-name> <Param-Value> /web-inf/spring/spring-core.xml </param-value> </context-param> <Servlet> <servlet-name> springmvc </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherServlet </servlet-class> <afor-param> <param-name> ContextConfiglocation </param-name> <param-value>/web- Inf/Spring/Spring-Servlet.xml </param-value> </init-param> <load-on-startup> 1 </serv-on-startup> </servlet> <servlet-mapping> <servlet-name> springmvc </servlet-name> <Url-pattern>/</url-pattern> </servlet-mapping>
여러 숫자가 있으면 *를 사용할 수 있습니다.
<Servlet> <servlet-name> app </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <context-param> <param-name> contextConfigLocation </param-name> <param-value>/web-inf/applicationcontext_.xml,/web-inf/user_spring.xml </param-value> </context-param> <load-on-startup> 1 </load-on-startup> </servlet>
3. XML 구성 파일로 다른 구성 파일 가져 오기
/web-inf/applicationcontext.xml로로드하도록 응용 프로그램 서비스를 구성하십시오. 가져 오기를 사용하여 ApplicationContext.xml에서 다른 구성 파일을 가져올 수 있습니다.
<? xml version = "1.0"encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : context = "http://www.springframework.org/schema/context" 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/schema/schema/schema/schemys/schema http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/tx http://www.spramegramework.org/schema/tx/sprring-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.xsd"> emport resource = "spring-servlet.xml"/> <import resource = "spring-security.xml"/> <import resource = "spring-hibernate.xml"/> <import resource = "spring-redis.xml"/> <import resource = "spring-redis.xml"/> <beans>