Spring
-
[Spring] 어노테이션 기반 컨테이너 설정Spring 2019. 8. 22. 01:16
_각괄호 선언 대신 바이트코드 메타 데이터를 사용하여 컴포넌트를 와이어링하는 방식으로 xml 셋업을 대체하는 어노테이션 기반 설정이 제공 _빈 와이어링 기술을 위해 xml을 사용하는 대신, 개발자는 연관된 클래스, 메소드 또는 필드 선언에 어노테이션을 사용 As mentioned in Example: The RequiredAnnotationBeanPostProcessor, using a BeanPostProcessor in conjunction with annotations is a common means of extending the Spring IoC container. For example, Spring 2.0 introduced the possibility of enforcing required ..
-
[Spring] 스프링 프레임워크의 IoC 컨테이너와 빈Spring 2019. 8. 21. 10:24
스프링 프레임워크의 Inversion of Control (IoC) 원칙 그리고 빈에 대해서 알아보자. IoC (Inversion of Control) 란 _IoC는 dependency injection (DI) 로도 알려져 있음 _객체들의 의존성 (다른 객체들과 함께 동작하는 방식) 을 생성자 인자나 팩토리 메소드 인자 또는 속성을 통해서만 정의하는 방법 _컨테이너는 빈을 생성할 때 그들의 의존성을 주입 _클래스 생성 지시나 서비스 로케이터 패턴등의 메커니즘을 사용하여 근본적으로 빈이 스스로 인스턴스하는 것이나 의존성들의 위치를 컨트롤하여 근본적으로 역전 (그래서 이름이 제어의 역전이다) 하는 과정을 의미 스프링 IoC 제공 패키지 _The org.springframework.beans 와 org...
-
[Spring] 스프링 REST서버에서 에러를 처리하는 방법Spring 2019. 6. 3. 09:24
스프링 3.2 이전 스프링 MVC 애플리케이션에서 예외를 처리하는 방법 2가지 @ExceptionHandler HandlerExceptionResolver 스프링 3.2 이후 @ControllerAdvice 어노테이션은 위의 2가지 방법의 단점을 보완하여 전체 애플리케이션의 예외를 한 곳에서 처리할 수 있는 방법을 제공한다. 스프링 5에서는 ResponseStatusException 클래스를 사용하여 REST API의 에러를 쉽게 처리할 수 있는 방법을 제공한다. 방법 1 – 컨트롤러에 @ExceptionHandler 사용하기 @Controller 레벨에 @ExceptionHandler 어노테이션과 함께 예외를 처리할 메소드를 정의 public class FooController{ //... @Excep..
-
[Spring] @Resource, @Inject, @AutowiredSpring 2019. 5. 26. 19:54
@Autowired, @Resource, @Inject 어노테이션을 통한 의존성 주입에 대해 알아보자. 다음과 같이 사용 하면 클래스에 의존성을 해결할 수 있다. @Autowired ArbitraryClass arbObject; 위의 코드는 다음의 코드와 동일하다. ArbitraryClass arbObject = new ArbitraryClass(); @Autowired는 org.springframework.beans.factory.annotation 패키지에 존재하며, 나머지 두 개는 java extension 패키지javax.annotation.Resource and javax.inject.Inject. 에 속한다. @Resource 어노테이션 자바 표준, 이름으로 찾을때 JSR-250 표준 어노테이..
-
[Spring] 간단한 웹 MVC 프로젝트Spring 2019. 5. 12. 23:07
메이븐과 JSP를 사용하여 간단한 스프링 웹 MVC 프로젝트를 작성한다. maven 프로젝트를 생성 프로젝트 구조 ~/webmvc$ tree . ├── pom.xml ├── src │ ├── main │ │ ├── java │ │ │ ├── RootConfig.java │ │ │ ├── WebConfig.java │ │ │ ├── WebInitializer.java │ │ │ └── controller │ │ │ └── HomeController.java │ │ ├── resources │ │ └── webapp │ │ └── WEB-INF │ │ └── views │ │ └── home.jsp │ └── test │ └── java │ └── HomeControllerTest.java pom.xml 4..
-
[Spring] 스프링 웹 MVC 개요Spring 2019. 5. 11. 23:27
스프링 웹 MVC 프레임워크 소개 스프링 웹 MVC 프레임워크는 요청을 처리하는 DispatcherServlet을 중심으로 구성 기본 핸들러는 @Controller와 @RequestMapping 어노테이션을 기반으로 다양한 메소드 처리 컨트롤러는 일반적으로 데이터가 있는 모델 맵을 준비하고 뷰 이름을 선택하지만, 응답 스트림에 직접 쓰고 요청을 완료 가능 DispatcherServlet Front controller : DispatcherServlet에 해당 ㄴ 요청이 들어오면 해당 요청을 컨트롤러에게 전달 Controller : 요청을 처리하기위한 컴포넌트 ㄴ 요청을 처리한 결과로 모델 객체를 생성 model : 요청을 처리하고 뷰에 표시되기 위한 정보 View template : 컨트롤러에서 처리된 ..
-
[Spring] 자바 코드로 설정 가능한 빈 의존성 주입Spring 2019. 5. 11. 01:55
스프링에서 빈을 DI(주입)하는 방법 중 자바 코드 설정으로 가능한 다음 세가지를 살펴본다. 컴포넌트 스캔 오토와이어링 설정 클래스 컴포넌트 스캔 어노테이션을 통해서 자동으로 빈이 스캔 되려면 아래 두 어노테이션을 설정해야 한다. @Component - 스캔 대상 빈에 붙여주는 어노테이션 @ComponentScan - @Component 어노테이션이 붙은 클래스를 찾아 스캔 기능을 사용하기 위해 붙여주는 어노테이션 package com.tistory.hilucky.springboottest; @Configuration @ComponentScan public class SpringComponentScanApp { private static ApplicationContext applicationContext..