
스프링의 핵심을 담당하는 건, 빈 팩토리 또는 애플리케이션 컨텍스트라고 불리는 것이다. 오브젝트 팩토리를 이용한 스프링 IoC 애플리케이션 컨텍스트와 설정정보 빈(bean) 스프링에서 스프링이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트를 뜻한다. 스프링 컨테이너가 생성과 관계설정, 사용 등을 제어해주는 제어의 역전(IoC)이 적용된 오브젝트를 뜻한다. 빈 팩토리(bean factory) 빈의 생성과 관계설정 같은 제어를 담당하는 IoC 오브젝트 빈 팩토리보다는 더 확장한 애플리케이션 컨텍스트를 주로 사용한다. 애플리케이션 컨텍스트(application context) 별도의 정보를 참고해서 빈의 생성, 관계설정 등의 제어 작업을 총괄한다. 별도로 설정정보를 담고 있는 무엇인가를 가져와 이를 활..

자바빈(JavaBean)은 원래 비주얼 툴에서 조작 가능한 컴포넌트를 말한다. 자바의 주력 개발 플랫폼이 웹 기반의 엔터프라이즈 방식으로 바뀌면서 비주얼 컴포넌트로서 자바빈은 인기를 잃어갔다. 하지만, 자바빈의 몇 가지 코딩 관례는 JSP 빈, EJB와 같은 표준 기술과 자바빈 스타일의 오브젝트를 사용하는 오픈소스 기술을 통해 계속 이어져 왔다. 이제 자바빈은 두 가지 관례를 따라 만들어진 오브젝트를 가리킨다. [1]. 디폴트 생성자 자바빈은 파라미터가 없는 디폴트 생성자를 갖고 있어야 한다. 툴이나 프레임워크에서 리플렉션을 이용해 오브젝트를 생성하기 때문에 필요하다. [2]. 프로퍼티 자바빈이 노출하는 이름을 가진 속성을 프로퍼티라고 한다. 프로퍼티는 setter와 getter를 이용하여 수정 또는 조..

stereotype annotation들을 어떻게 찾을까? 스프링 부트가 시작되는 클래스에 붙어있는 SpringBootApplication 어노테이션을 조사해보았습니다. 여러 어노테이션이 있으나 @EnableAutoConfiguration와 @ComponentScan을 살펴보겠습니다. 1. EnableAutoConfiguration @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @AutoConfigurationPackage @Import(AutoConfigurationImportSelector.class) public @interface EnableAutoConfiguration { /** * Env..

stereotype annotation이 무엇일까? 전체 아키텍처에서 type 혹은 method의 역할을 나타내는 어노테이션을 뜻합니다. 종류로는 Component, Controller, Indexed, Repository, Service가 있습니다. 1. Indexed @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Indexed { } 어노테이션이 달린 요소가 index에 대한 stereotype임을 나타냅니다. CandidateComponentsIndex는 컴파일 시 생성된 메타데이터 파일을 사용하는 classpath scanning 대상입니다. index를 사용하면 stereotyp..

프론트 컨트롤러 패턴과 DispatcherServlet 스프링이 직접 제공하는 서블릿 기반의 MVC 프레임워크입니다. 서블릿 기반이기 때문에 스프링 서블릿(Spring Servlet)라고도 불립니다. 프론트 컨트롤러 역할을 하는 DispatcherServlet을 핵심 엔진으로 사용합니다. 스프링 서블릿의 모든 컴포넌트는 스프링의 서블릿 애플리케이션 컨텍스트의 빈으로 등록되어 동작합니다. 그렇기 때문에 간단히 루트 컨텍스트에 존재하는 서비스 계층의 빈을 사용할 수 있습니다. 스프링의 웹 기술은 MVC 아키텍처를 근간으로 하고 있습니다. MVC는 프레젠테이션 계층의 구성요소를 다음과 같이 분리하고 아래 요소가 서로 협력해서 하나의 웹 요청을 처리하고 응답을 만들어내는 구조를 이룹니다. M : 정보를 담은 모..

회사 프로젝트에서 SOAP 통신을 위해 XML를 다룰 일이 생겨서 정리한 포스팅입니다. 프로젝트 환경은 다음과 같습니다. Java 11 Spring Boot 2.3.12 Gradle 7.4.1 저번 포스팅에서는 marshalling 과정에 대해 다뤄봤습니다. 이번 포스팅에서는 그 반대인 unmarshalling 과정에 대해 다뤄보겠습니다. 코드를 먼저 보여드리고 순차적으로 설명하겠습니다. import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import java.io.StringReader; public class XmlUtil { private XmlUtil() { // throw new InstantiationExceptio..

회사 프로젝트에서 SOAP 통신을 위해 XML를 다룰 일이 생겨서 정리한 포스팅입니다. 프로젝트 환경은 다음과 같습니다. Java 11 Spring Boot 2.3.12 Gradle 7.4.1 SOAP가 무엇일까? Simple Object Access Protocol의 약자 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜 다양한 메시지 패턴이 있지만, 보통의 경우 RPC 패턴으로 통신 Spring MVC를 주로 사용하는 개발자로서는 REST가 더 친숙할텐데, REST에서는 주로 JSON 형태로 데이터를 주고받습니다. 🐻 REST와 SOAP의 차이점은 다른 포스팅에서 자세히 다루겠습니다. 최근 Open API는 대부분 REST API에 JSON 형태를 제공하지만, 비교적 옛날 Open AP..
- Total
- Today
- Yesterday
- 테라폼
- Spring Boot
- AWS
- 객체지향
- 코테
- Algorithm
- MSA
- Effective Java
- kkoon9
- Java
- BOJ
- C++
- 클린 아키텍처
- programmers
- kotest
- 정규표현식
- 디자인 패턴
- 이펙티브 자바
- JPA
- 알고리즘
- 이팩티브 자바
- 프로그래머스
- 클린 코드
- Spring
- node.js
- Kotlin
- 백준
- BAEKJOON
- Olympiad
- 디자인패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |