Spring 학습(2):Spring xml 파일 형식,상하 문 불 러 오기 6 가지 방식 및 역할 영역
6815 단어 봄 공부
확장 가능 한 태그 언어(표준 통용 태그 언어의 부분 집합)는 간단 한 데이터 저장 언어 이다.
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/context/spring-aop-3.0.xsd">
우 리 는 위의 코드 에서 세 개의 네 임 스페이스 를 정의 했다.
네 임 스페이스 의 정 의 는 두 단계 로 나 뉜 다.
네 임 스페이스 schema 주 소 를 지정 하 는 데 두 가지 용도 가 있 습 니 다.
Spring 3.0 의 설정 Schema 파일 은 각 모듈 패키지 에 분포 되 어 있 습 니 다.모듈 에 해당 하 는 Schema 파일 이 있 으 면 모듈 패키지 에서 config 디 렉 터 리 를 찾 을 수 있 습 니 다.Schema 파일 은 이 디 렉 터 리 에 있 습 니 다.다음 과 같이 Schema 파일 의 용 도 를 간단하게 설명 합 니 다.
예제 설명:Spring-beans-3.0.xsd
네 임 스페이스:http://www.springframework.org/schema/beans
Schema 파일:http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
Spring 3.0 에서 모든 Schema 파일 의 네 임 스페이스 와 대응 하 는 위 치 는 Beans 라 는 Schema 파일 과 유사 하 다 는 것 을 알 수 있다.
다음은 Spring 의 다른 Schema 파일 의 용 도 를 알 아 보 겠 습 니 다.
BeanDefinition 은 AttributeAccessor 를 계승 하여 속성 을 처리 하 는 능력 을 가지 고 있 음 을 설명 합 니 다.
BeanDefinition 은 BeanMetadataElement 를 계승 하여 Bean 메타 데이터 요 소 를 가 질 수 있 음 을 설명 합 니 다.XML 파일 을 가 질 수 있 는 bean 태그 에 대응 하 는 Object 역할 을 합 니 다.
Spring 로 딩 문맥
1:spring-mvc.xml 에서 import 로 다른 프로필 도입
2:웹.xml 설정 에서 서 비 스 를 불 러 옵 니 다.
contextConfigLocation
/WEB-INF/applicationContext*.xml,/WEB-INF/user_spring*.xml
3:인용 자원 용 XmlBeanFactory(여러 파일 이 서로 인용 되 지 않 음)
Resource resource = new ClassPathResource("appcontext.xml");
XmlBeanFactory 는 3.1 이후 폐기 되 었 습 니 다.부모 클래스 Default ListableBeanFactory 를 사용 하 는 것 을 추천 하지 않 습 니 다.
BeanFactory factory = new XmlBeanFactory(resource);
4:응용 컨 텍스트 참조 ClassPathXmlApplication Context
ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
ApplicationContext factory=new ClassPathXmlApplicationContext("conf/userConfig.xml");
ApplicationContext factory=new ClassPathXmlApplicationContext("file:G:/Test/src/appcontext.xml");
5:응용 컨 텍스트 를 파일 시스템 경로 로 참조 합 니 다.FileSystemXmlApplication Context
ApplicationContext factory=new FileSystemXmlApplicationContext("src/applicationContext.xml");
ApplicationContext factory=new FileSystemXmlApplicationContext("classpath:appcontext.xml");
ApplicationContext factory=new FileSystemXmlApplicationContext("file:G:/Test/src/appcontext.xml");
ApplicationContext factory=new FileSystemXmlApplicationContext("G:/Test/src/appcontext.xml");
6:웹 프로젝트 의 맞 춤 형 로드 방법 XmlWebApplication Context
ServletContext servletContext = request.getSession().getServletContext();
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext );
SpringBean 역할 영역
Spring 용기 에 서 는 모두 5 가지 역할 영역 형식 을 제공 합 니 다.설정 파일 에 서 는 속성 scope 를 통 해 bean 의 역할 영역 범 위 를 설정 합 니 다.
1. singleton:
Bean 의 역할 영역 이 singleton 일 때 Spring 용기 에는 공 유 된 Bean 인 스 턴 스 만 존재 합 니 다.Bean 에 대한 모든 요청 은 id 가 bean 의 정의 와 일치 하면 bean 의 같은 인 스 턴 스 만 되 돌려 줍 니 다.단일 인 스 턴 스 는 하나의 캐 시 에 저장 되 어 Spring 의 부족 한 역할 영역 입 니 다.
2. prototype:
이 빈 에 게 요청 할 때마다 Spring IoC 는 새로운 역할 영역 을 만 듭 니 다.
상태 가 있 는 Bean 은 prototype 을 사용 해 야 하고,상태 가 없 는 Bean 은 singleton 을 사용 해 야 합 니 다.
3. request:
Request 역할 영역 은 매번 Http 요청 을 대상 으로 합 니 다.Spring 용 기 는 관련 Bean 에 따라
새로운 Bean 인 스 턴 스 를 만 들 기 위해 정의 합 니 다.그리고 이 빈 은 현재 request 에서 만 유효 합 니 다.
4. session:
http session 에 대한 역할 을 합 니 다.Spring 용 기 는 이 Bean 의 정의 에 따라 새로운 Bean 의 인 스 턴 스 를 만 듭 니 다.그리고 이 빈 은 현재 http session 에서 만 유효 합 니 다.
5. global session:
표준 http session 역할 영역 과 유사 하지만 portlet 기반 웹 응용 에서 만 의미 가 있 습 니 다.Portlet 규범 은 전체적인 Session 의 개념 을 정의 했다.그 는 어떤 portlet 외부 애플 리 케 이 션 을 구성 하 는 다양한 portlet 에 의 해 공유 되 었 다.global session 역할 영역 에서 정 의 된 bean 은 전체 portlet session 의 수명 주기 범위 에 한정 되 어 있 습 니 다.