- ApplicationContext는 BeanFactory에 인터페이스는 DI 서비스뿐만 아니라, 또한 ApplicationContext 뉴스 소스 등 업무, AOP 서비스, 국제화 및 처리 응용 프로그램 이벤트를 제공 ,,의 확장입니다.
- <컨텍스트 : 구성 요소 검사> 태그는 컨트롤러 @ 구성 요소 @ 사용 찾을 봄 스캔 코드를 알려줍니다 Serivice, @ 저장소 주석 분사 콩 @뿐만 아니라 주어진 패키지에서 autowire가 @의 사용을 지원, 주사하고 @, @ 리소스 주석 콩.
- @Configuration 주석 클래스 구성 클래스를 지정하는 데 사용되며, 상기 방법은 특수 @Bean이 유형에 사용될 수있다;
- 주석 @ComponentScanning은 Java 클래스 구성 및 <컨텍스트 : 성분 주사>는 유사하게 태그;
- JDK @Resource 주석은 그 자체가 미세한 DI에 대한 지원 이름 매개 변수의 요구 사항, 제공, autowire가 필요한 의존성을 채우기 위해 반사를 사용 @ @Autowired 주석 스프링이 제공된다;
- @Service가 @Component의 특수한 경우, 서비스 쇼 주석 클래스는 응용 프로그램에서 다른 층에 비즈니스 서비스를 제공하고 있습니다 @;
- 방법을 찾기 (조회 방법 주입) @Lookup 주입 작업이 하나의 case 문 방법을 발견하는 것입니다 반환 콩 비 - 싱글 톤의 인스턴스. CGLIB 동적 스프링이 메소드를 재정의 할 클래스의 객체의 하위 클래스를 생성하기 위해 사용;
- 대안 MethodReplacer 방법은 실제로 CGLIB 실시 예를 사용하는 경우, 타겟의 임의의 방법을 대체 인터페이스에 의해 구현;
- @Qualifier 주석 지정 특정 빈 이름 주입 @Autowired;
- 콩이 명명 규칙 : 세트 ID를 빈에 대한 빈 이름 아이디, 아니는 아이디, 이름 속성에 대한 스프링 외모 (첫 번째 값은 이름이 두 개 이상의 이름으로 설정 될 수있다), ID와 이름 속성이 설정되지 않은 경우 경우, 이름과 클래스 이름은 것이다;
- 같은 foo에와 superfoo 같은 두 개의 서로 다른 콩 프로젝트의 이름,하지만 같은 클래스의 사용이가있는 경우, 당신은 superfoo 변경 foo는 말을 인용하려는 경우, 당신은 superfoo 빈을 삭제 한 다음 foo라는 이름 뒤에 별칭 superfoo를 추가;
- 기본적으로 모든 봄 빈은 하나의 예이고, 사용될 수있는 범위는 원형 (원형 패턴) 등을 설정한다;
- 각 응용 프로그램을 나타내는 원형 (프로토 타입 패턴) 스프링은 빈 인스턴스는 빈의 새로운 인스턴스를 인스턴스화 요청;
- 하나의 예를 선택할 경우 :
- 공유 객체의 어떤 상태 없다
- 만 공유 객체 상태를 읽을;
- 공유 상태 공유 객체를 갖는;
- 높은 처리량 대상이 쓴 상태 (객체를 생성하는 많은 응용 프로그램, 당신은 동기 쓰기 모드 제어 상태를 사용할 수 있습니다)
- 콩 범위의 예
- 범위 싱글
- 프로토 타입 범위
- 요청 범위
- 세션 범위 (HTTP 세션 빈의 행동에 요청)
- 글로벌 세션 범위
- 범위 스레드
- 사용자 지정 범위
- 주입 순서는 필요에 따라 배치 될 때 콩 XML 설정, 초기화되지 않은 빈은 빈 다른 주사에 의해 수행되는 경우를 방지하기 위해;
- XML 구성 주입, 주입은 빈을 배치함으로써 수행 될 수있다 때 빈이 순서에 따라 구성되어 있지 않으면 빈을 정면으로 지정 플래그 (온 의존 의존 온 속성 콩, 콩 의존 미리 만들어진 빈의 본 실시 예에 앞서 좋은) 우리는 Abean 다른 Bbean, ApplicationContextAware 인터페이스를 구현하는 Abean 필요에 의존하게 관심을 지불 할 필요가;
- ApplicationContextAware 인터페이스는 특성이 모든 콩 Spring 컨테이너가 다음 우리가 콩 구현은 인터페이스를 ApplicationContextAware 발견하면, 컨테이너를 감지 스프링 인터페이스를 제공, setApplicationContextAware 빈의 () 메소드를 자동으로 콩을 만들 호출 Spring 컨테이너는 전화 경우에있어서, 그 자체는 다음에 용기 자체의 ApplicationContext 인스턴스 변수에 의해 액세스 될 수 있도록, 그 객체에 할당 된 상태에있어서의 파라미터 등의 ApplicationContext 인스턴스 변수, 프로세스는 호출 빈 생성자 후에 완료 될 컨테이너 가.
- 콩 자동 조립은 XML에서 자동 조립 모드 자동으로 묶어 = "요소 별명"을 구성 할 수 있습니다
- 요소 별명 모드
- byType와
- 생성자
- 기본 모드
- 아니오
- 빈 클래스는 두 개의 구성을 가지고, 그것은 우선적으로 사용되는 일련의 빈 (동일한 이름의 다른 타입) 일차 빈 설정 플래그를 추가 할 수있다 예를 들어, 클래스 A가 두 개의 빈은 XML로 구성된 각각 비공개 : A1, A2, 그러나 삽입 된 코드의 사용 beanName에 을 , 주 케이스를 사용하여 해결 될 수 있으며, 두 충족 주입 조건이 발견되는 경우 byType와이 기본;
- 20가지 경우가 발생할 들어,도 @Autowired가 @Qualifier 주석 지정 특정 빈 이름 주입 사용될 수있다;
- INIT-있어서, 상기 구성 XML에 지정된 클래스의 초기화를 행하는 방법
- InitializingBean 표시 인터페이스, 인터페이스 얻을 수 콩 스프링 완료 통지는 정보가 모든 콩 봄을 얻을 수있다, 즉 디폴트 값이 설정되거나 검출 콩 콩 구성이 올 수있다 구성된;
- @PostConstruct 주석은 유사한 방법 INIT-방법을 적용
- @Bean (initMethod = "초기화") 마찬가지로 XML 구성 INIT-방법
- 콩로드 순서
- 첫째, 빈을 생성하기 위해 생성자를 호출
- 참고 종속성 (동원 세터)
- 이제 빈은 이미 그들이 빈에서 만든 작업 일 (@PostConstruct 노트)를 호출 할 있는지 확인하기 위해 존재하고 조회 할 것이다 의존성, 사전 초기화 콩 BeanPostProcessor 제도적 기반을 제공
- InitializingBean 표시 인터페이스 주입 직후 의존성을 행하는 afterPropertiesSet ()를 실행;
- 마지막 INIT-방법 속성의 구현은 빈의 실제 초기화 방법이므로;
- BeanNameAware 인터페이스는, 인터페이스 클래스가 구현 setBeanName 방법은, 값이 메소드 beanName에 의해 얻을 수 있고, 설정 값은 로그의 일부로서 beanName에 인쇄 로그를 조회를 용이하게 할 때 달성 될 수있다;
- 이 인터페이스를 구현 ApplicationContextAware 인터페이스 지정된 이름의 getBean 방법에 의해 얻어지는,이 인터페이스는 그러한 빈 객체로 스프링 애플리케이션에서의 ApplicationContext 빈에 대한 액세스를 허용하기 위해 만들어지는 이유 드로 구성 콩 ApplicationContext의 응용 예를 얻을 수있다.
- 생성 및 오브젝트를 관리하는 표준 의미를 사용할 수 없습니다 스프링 어댑터 역할의 FactoryBean 인터페이스;의 FactoryBean 거래 및 프록시 JNDI 컨텍스트의 리소스에 자동으로 액세스 할 수 있습니다.
스프링 구성의 세부 사항 및 springboot
추천
출처www.cnblogs.com/use-D/p/12634039.html
추천
행