Spring 핵심 구성 요소
Spring에는 많은 핵심 구성 요소가 있지만 그 뼈대는 Core, Context 및 Bean입니다.
빈
셋 중에 빈이 핵심이다. Bean은 구성 파일을 통해 객체를 구현하고 Spring은 객체 저장 공간과 수명주기 할당을 관리합니다. 종속성 주입을 통해 개체를 지정된 비즈니스 논리 클래스에 주입할 수 있습니다. 이러한 주입 관계는 Ioc 컨테이너에 의해 관리됩니다.
따라서 Spring의 핵심 아이디어를 흔히 BOP(Bean Oriented 프로그래밍), 즉 Bean 지향 프로그래밍이라고 부릅니다.
Bean 컴포넌트는 Spring의 org.springframework.beans 패키지에 정의되어 있으며 다음 문제를 해결합니다.
Bean 정의
Bean 생성
Bean 파싱
사용자는 Bean 생성에만 주의하면 되고 나머지 두 프로세스는 Spring에 의해 내부적으로 완료됩니다.
1. 전체 아키텍처
Spring Bean의 전체 아키텍처는 일반적인 팩토리 모델이며, 최상위 인터페이스는 BeanFactory입니다. ListableBeanFactory, HierarchicalBeanFactory 및 AutowireCapableBean은 Spring의 내부 객체 처리 및 변환의 데이터 제한을 구별하기 위한 하위 클래스입니다.
ListableBeanFactory: 이러한 Bean이 나열 가능함을 나타냅니다.
HierarchicalBeanFactory: 이러한 Bean이 상속 관계를 가지고 있음을 나타냅니다.
AutowireCapableBeanFactory: Bean의 자동 어셈블리 규칙을 정의합니다
This 여러 인터페이스는 각각 Bean 컬렉션, Bean 관계 및 Bean 동작을 정의합니다.
2.Bean 정의
Bean 정의는 주로 BeanDefinition으로 기술하며, 계층적 관계는 다음과 같다.
Spring의 구성 파일 노드는 성공적인 구문 분석 후 BeanDefinition 객체로 변환되고 모든 후속 작업은 BeanDefinition 객체에서 수행됩니다.
3.Bean 파싱
Bean 파싱의 주요 작업은 Spring 구성 파일을 파싱하고 최종적으로 BeanDefinition 객체를 생성하는 것입니다.
구성 파일의 모든 태그를 포함하여 구문 분석 프로세스는 매우 복잡합니다. 주요 참여 클래스는 다음과 같습니다.
Context
Bean은 각 Object를 래핑하고, Object는 비즈니스에서 요구하는 데이터를 저장합니다. 따라서 이러한 데이터와 이들 사이의 관계에 대한 생존 및 운영 환경을 어떻게 제공할 것인가(즉, 객체의 상태를 저장하는 것)가 Context가 해결해야 할 문제이다. 컨텍스트는 실제로 Ioc 컨테이너라고도 하는 Bean 관계의 모음입니다.
ApplicationContext는 Context의 최상위 인터페이스이다. 계층적 관계는 다음과 같다.
ApplicationContext는 애플리케이션 환경의 기본 정보를 식별할 수 있다. Context의 기능을 확장하기 위해 5개의 인터페이스를 상속받았는데, 그 중 BeanFactory를 사용하여 Bean을 생성하고, 외부 리소스에 접근하기 위해 ResourceLoader 인터페이스를 상속합니다.
ApplicationContext의 하위 클래스는 주로 다음을 포함합니다.
ConfigurableApplicationContext: 사용자가 동적으로 정보를 구성하고 수정할 수 있는 컨텍스트이며, 그중 AbstractRefreshableApplicationContext가 가장 일반적으로 사용됩니다.
WebApplicationContext:
ServletContext에 직접 액세스할 수 있는 웹 애플리케이션용으로 준비된 컨텍스트입니다.
간단히 ApplicationContext가 완성해야 하는 기능은 다음과 같다.
애플리케이션 환경 식별
BeanFactory를 사용하여 Bean 객체 생성
객체 저장 관계 테이블
다양한 이벤트 캡처
Ioc 컨테이너로서 Context는 Spring의 다른 대부분 기능의 기초입니다.
Core
Spring은 Core라고 불리는 Bean 간의 관계를 발견, 설정 및 유지하기 위한 도구 패키지입니다. 이것은 실제로 필요한 Util입니다.
Core의 중요한 구성요소 중 하나는 Resource입니다.
1. 전반적인 리소스 수준
리소스는 주로 리소스에 액세스하는 방법을 정의합니다. 모든 리소스는 리소스 인터페이스로 추상화됩니다.
리소스 패키징. Resource는 위쪽으로 InputStreamSource 인터페이스를 상속하고, 모든 리소스는 InputStream을 통해 획득되므로 리소스 공급자를 보호합니다.
리소스 로딩. Resource 아래의 ResourceLoader 인터페이스는 모든 리소스 로더가 이전 ApplicationContext와 같이 이 인터페이스를 균일하게 구현하여 모든 리소스를 로드할 수 있습니다.
2. Context와 관계 설정
그림에 표시된 것처럼 ApplicationContext는 ResourcePatternResolver 인터페이스를 통해 ResourceLoader와 상호 작용하여 리소스를 로드, 구문 분석 및 설명합니다. ResourcePatternResolver는 리소스를 캡슐화하고 통합하여 다른 구성 요소에서 쉽게 사용할 수 있도록 합니다.
요약
이 글은 주로 Spring 뼈대 프레임워크를 구성하는 세 가지 핵심 구성 요소와 이들 간의 연결을 요약하고, 세 가지 구현 원리에 대한 이해에 대한 통찰력을 제공합니다.

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于平衡二叉树(AVL树)的相关知识,AVL树本质上是带了平衡功能的二叉查找树,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要整理了Stream流的概念和使用的相关问题,包括了Stream流的概念、Stream流的获取、Stream流的常用方法等等内容,下面一起来看一下,希望对大家有帮助。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

뜨거운 주제



