웹사이트 검색

스프링 프레임워크


Spring Framework는 가장 널리 사용되는 Java EE 프레임워크 중 하나입니다. 이 기사에서는 다음에 대해 알아볼 것입니다.

  • 스프링 프레임워크 아키텍처
  • Spring의 핵심 구성요소
  • 스프링 프레임워크 산하의 다양한 프로젝트

Spring Framework, Servlet, JSP 및 JSF에 대한 Google Trends 차트를 살펴보았습니다. Spring이 다른 모든 Java EE 기술보다 훨씬 앞서 있다는 것은 분명합니다.

스프링 프레임워크란?

Spring은 Java Enterprise Edition에서 가장 널리 사용되는 프레임워크 중 하나입니다. 전 세계의 개발자들은 신뢰할 수 있는 고품질 애플리케이션을 개발하기 위해 Spring을 사용합니다. 스프링 프레임워크는 Rod Johnson이 설계했습니다. 그 이후로 Spring은 EJB 모델을 위한 Java 세계의 대체 기술이 되었습니다. 스프링 프레임워크를 사용하여 다양한 종류의 애플리케이션을 만들 수 있습니다.

스프링 핵심 개념 - DI, IoC, AOP

  • Inversion of Control이 무엇인지 이해하지 않고 Spring Framework가 무엇인지 이해하는 것은 불가능합니다. DI라고도 하는 종속성 주입은 IoC(Inversion of Control) 유형 중 하나입니다.
  • 제어 역전(Inversion of Control) - 프로그램의 객체가 다른 객체의 구체적인 구현에 의존하지 않지만 차후 상호 작용을 위해 추상화(인터페이스)에 대한 지식을 가질 수 있는 객체 지향 프로그래밍의 원칙입니다.
  • 의존성 주입 - 애플리케이션의 각 기능에 대해 인터페이스에 의해 알려진 다른 개체(종속성)를 사용해야 할 수 있는 조건부 독립 개체(서비스)가 있는 구조적 디자인 패턴의 구성입니다. . 종속성은 생성 시 서비스로 전송(구현)됩니다. 이것은 한 클래스의 요소를 다른 클래스에 도입하는 상황입니다. 실제로 DI는 생성자에 매개변수를 전달하거나 세터를 사용하여 구현됩니다. 이 접근 방식을 구현하는 라이브러리를 IoC 컨테이너라고도 합니다.
  • 측면 지향 프로그래밍 - 애플리케이션에서 크로스 스루(기능) 기능을 구별할 수 있는 프로그래밍 패러다임입니다. 여러 애플리케이션 노드에 걸쳐 있는 이러한 기능을 교차 편집 문제라고 하며 이러한 교차 메모는 애플리케이션의 즉각적인 비즈니스 논리와 분리됩니다. OOP에서 키 단위는 클래스이고 AOP에서 키 요소는 애스펙트입니다. DI는 애플리케이션 클래스를 별도의 모듈로 분리하는 데 도움이 되며 AOP는 영향을 받는 개체에서 교차 절단 문제를 분리하는 데 도움이 됩니다.

스프링 프레임워크 아키텍처

Spring Framework 핵심 구성 요소

Spring의 Core 컨테이너는 SpEL, Context, Core, Beans의 네 가지 모듈로 구성됩니다. 이러한 요소에 대한 설명은 다음과 같습니다.

  1. SpEL 모듈은 실행 중에 개체를 조작하기 위한 강력한 표현 언어를 제공합니다.
  2. 컨텍스트는 Beans 및 Core를 기반으로 구축되며 설정에 정의된 모든 개체에 액세스할 수 있습니다. Context 모듈의 핵심 요소는 ApplicationContext 인터페이스입니다.
  3. Core 모듈은 IoC 및 DI 속성을 포함하여 프레임워크의 핵심 부분을 제공합니다.
  4. Bean 모듈은 Spring Beans의 생성 및 관리를 담당하며 애플리케이션 컨텍스트 구조 단위입니다.

스프링 프레임워크 웹

Spring 프레임워크 웹 레이어는 Web, Web-MVC, Web-Socket, Web-Portlet 등으로 구성된다.

  1. 웹 모듈은 파일 다운로드, 웹 애플리케이션 생성, 웹 서비스 휴식 등의 기능을 제공합니다.
  2. Web-MVC는 웹 애플리케이션을 위한 Spring MVC 구현을 포함합니다.
  3. Web-Socket은 웹 애플리케이션에서 Web-Socket을 사용하여 클라이언트와 서버 간의 통신을 지원합니다.
  4. Web-Portlet은 포틀릿 환경에서 MVC 구현을 제공합니다.

스프링 프레임워크 데이터 액세스

데이터 액세스/통합 컨테이너는 JDBC, ORM, OXM, JMS 및 트랜잭션 모듈로 구성됩니다.

  1. JDBC는 JDBC의 추상 계층을 제공하며 개발자가 데이터베이스 연결과 관련된 단조로운 코드를 수동으로 등록할 필요가 없습니다.
  2. Spring ORM은 JPA 구현인 Hibernate, JDO와 같은 널리 사용되는 ORM과의 통합을 제공합니다.
  3. OXM 모듈은 Object/XML - XMLBeans, JAXB 등을 연결하는 역할을 합니다.
  4. JMS(Java Messaging Service) 모듈은 메시지 생성, 전송 및 수신을 담당합니다.
  5. 트랜잭션은 특정 메서드 및 POJO를 구현하는 클래스에 대한 트랜잭션 관리를 지원합니다.

기타 모듈

Spring에는 AOP, Aspects, Instrumentation, Messaging 및 Test와 같은 다른 중요한 모듈도 포함되어 있습니다.

  1. AOP는 관점 지향 프로그래밍을 구현하고 AOP 기능의 전체 무기고를 사용할 수 있습니다.
  2. Aspects 모듈은 강력한 AOP 프레임워크이기도 한 AspectJ와의 통합을 제공합니다.
  3. Instrumentation은 서버 애플리케이션에서 사용되는 클래스 계측 및 클래스 로더를 지원합니다.
  4. 메시징 모듈은 STOMP 지원을 제공합니다.
  5. 마지막으로 테스트 모듈은 TestNG 또는 JUnit 프레임워크를 사용하여 테스트를 제공합니다.

봄 5 기능

Spring 5는 Spring 4에 대대적인 업데이트를 가져왔습니다. Spring 5의 중요한 기능 중 일부는 다음과 같습니다.

  1. Java 8, Java 9, Java EE 7, Java EE 8, Servlet 4.0, Bean Validation 2.0 및 JPA 2.2 지원. Spring이 사용 중인 주요 기술의 최신 버전을 따라잡으려고 노력하는 것을 보니 기쁩니다.
  2. 새 모듈인 spring-jcl로 향상된 로깅
  3. 파일 작업은 NIO 2 스트림을 사용하므로 성능이 향상됩니다.
  4. Spring MVC 컨트롤러 메서드의 반환 값으로 Reactor 3.1 Flux 및 Mono와 RxJava 1.3 및 2.1을 지원합니다.
  5. Jackson 및 GSON의 대안으로 Kotlin, Project Lombok, JSON 바인딩 API를 지원합니다.
  6. Spring WebFlux - Spring이 반응성을 가져옵니다.
  7. JUnit 5 지원
  8. Kotlin을 통한 함수형 프로그래밍 지원

GitHub 리포지토리에서 Spring 프로젝트를 확인할 수 있습니다.

참조: 스프링 참조 문서