목록CS/Spring (5)
GiYeong
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cBVFRt/btrLEcOwbzP/blFXZNjwmQFDcC6Gengmkk/img.png)
@RestController = @Controller + @ResponseBody @Controller Spring MVC의 컨트롤러로서 Model 객체를 만들어 데이터를 담고 View를 반환한다. 또한 @ResponseBody를 사용하여 HTTP Response Body에 데이터를 담아 요청을 완료한다. @Controller로 View를 반환하는 과정 클라이언트가 URI 형식으로 웹 서비스에 요청을 보냄 DispatcherServlet이 요청을 위임할 HandlerMapping을 찾음 HandlerMapping을 통해 요청을 Controller에 위임 Controller는 요청을 처리하여 ViewName을 반환 DispatcherServlet이 ViewResolver를 통해 ViewName에 해당하는 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b83Qj7/btrETmJ2Cap/owPGhGIsIoOEl18zeZbOA0/img.png)
1. 경량 FrameWork 옛날 FrameWork는 하나의 기능을 위해서 많은 구조가 필요했다. 기술이 너무 복잡하고 방대하기 때문에, 전체를 이해하고 개발하기에 어려움이 있었다. Spring FrameWork는 특정 기능을 위주로 간단한 jar 파일 등을 이용해서 모든 개발이 가능하도록 구성되어있다. 2. POJO 기반의 구성 POJO(Plain Old Java Object, 오래된 방식의 간단한 자바 객체)를 사용할 수 있다. 즉, Java에서 객체를 구성하는 방식을 Spring Framework에서 그대로 사용할 수 있기 때문에, 자유롭게 객체지향적 설계를 구현할 수 있다. 3. DI를 통한 객체 간의 관계 구성 Spring에서는 ApplicationContext가 필요한 객체들을 생성하고, 주입..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/UJGmq/btrDWjnem0h/UYVT984sb5UMl5oMktrIe0/img.png)
Filter와 Interceptor의 차이 Spring은 공통적으로 여러 작업을 처리함으로써 중복된 코드를 제거할 수 있도록 많은 기능들을 지원한다. Filter Filter는 J2EE 표준 스펙 기능으로 Dispatcher Servlet에 요청이 전달되기 전/후에 URL 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능을 제공한다. Dispatcher Servlet은 프론트 컨트롤러이므로 Spring 컨테이너가 아닌 웹 컨테이너에 의해 관리된다. 즉, Filter는 Spring의 범위 밖에서 처리된다. Filter를 추가하기 위해서는 javax.servlet의 Filter 인터페이스를 구현해야 한다. public interface Filter { public default void init..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c3LnWV/btrDRiultRX/OCFMrasAGBdikq3lzfq0w0/img.png)
DI(Dependency Injection) 방법 1. 필드 주입(Field Injection) @Autowired 어노테이션을 통해 의존성을 주입하는 방법이다. class A { @Autowired private B b; } 2. 생성자 주입(Constructor Injection) 생성자를 통해 의존성을 주입하는 방식으로 가장 권장되는 주입 방식이다. class SampleClass { private final Sample sample;// final 사용 가능 @Autowired public SampleClass(Sample sample) { this.sample = sample; } } 3. 수정자 주입(Setter Injection) Setter 메서드를 통해 의존성을 주입하는 방식이다. cla..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/8TuV2/btrDQELacIl/UQkRmrnY2MpCiWFshNXCNK/img.png)
IoC(Inversion of Control) IoC를 그대로 해석하면 제어의 역전이다. 이는 개발자가 가지고 있던 제어권이 외부의 컨테이너에 넘어가서 객체의 생성, 라이프사이클 관리와 같은 객체에 대한 제어권이 바뀜을 의미한다. 제어권이 컨테이너로 넘어감에 따라, DI(의존성 주입), AOP(관점 지향 프로그래밍)등이 가능해진다. IoC 컨테이너 Spring에서 객체를 생성하고 의존성을 관리해주는 컨테이너로서, 인스턴스의 생성부터 소멸까지의 Life Cycle 관리를 수행하기 때문에 개발자들이 비즈니스 로직에 집중할 수 있도록 해준다. DI(Dependency Injection) DI는 의존성 주입이라는 뜻으로, 객체 간의 의존성을 개발자가 아닌 외부에서 주입하는 것이다. Spring의 경우 IoC 컨..