DispatcherServlet 사용 @RestController public class HelloController { @Autowired HelloService helloService; @GetMapping("/hello") public String hello() { return "hello, " + helloService.getName(); } } DispatcherServlet은 언제 사용하나? Spring MVC로 웹 애플리케이션을 구동하고 싶다. @GetMapping과 @RestController 같은 어노테이션을 이해하고 있고, Controller에서 URL를 받을 수 있는 핸들러를 사용하고 싶다. return 값이 이름이 되는 ui 페이지 전환이 되고 싶다. return을 http 응답으로..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b6iwEk/btqBVLsCWvU/NKetRLguoCQyTsFwktrOdK/img.png)
스프링 MVC 동작 원리 MVC 모델 : 도메인 객체 또는 DTO로 화면에 전달하거나 화면에서 전달받은 데이터를 담고 있는 객체를 말한다. //lombok을 활용하여 컴파일 시점에 자동으로 각 메소드들을 생성한다. @Getter @Setter @Builder @NoArgsConstructor @AllArgsConstructor public class Event { private String name; private LocalDateTime startDateTime; private LocalDateTime endDateTime; private int limitOfEnrollment; } 평범한 POJO 객체이다. 뷰 : 데이터를 보여주는 역할로서, 다양한 형태로 보여줄 수 있다. 이벤트 목록 이름 참가 인..
서블릿 애플리케이션 스프링 연동하기 지금까지 만든 Servlet을 활용하여 스프링이 제공하는 IoC 컨테이너와 연동해보자. 서블릿에서 스프링이 제공하는 IoC 컨테이너 활용하는 방법 애플리케이션 컨텍스트를 서블릿 컨텍스트에 등록 후 IoC 컨테이너를 활용해보자. pom.xml에 dependency 추가 스프링이 제공하는 IoC 컨테이너를 활용하기 위해선 의존성이 필요하다(spring-webmvc) org.springframework spring-webmvc 5.1.3.RELEASE 리스너 추가 우리가 만든 서블릿 애플리케이션의 생명주기에 맞추어 애플리케이션 컨텍스트(IoC 컨테이너)를 등록해주기 위해서는 스프링이 제공해주는 리스너가 필요하다. org.springframework.web.context.Co..
서블릿 리스너와 필터 서블릿 리스너 서블릿 컨테이너에서 발생하는 주요 이벤트를 감지하고 각 이벤트에 특별한 작업이 필요한 경우에 사용한다. 서블릿 컨텍스트 수준의 이벤트 컨텍스트 라이프사이클 이벤트 컨테스트 라이프사이클 이벤트의 리스너를 만들어보자 리스너 public class MyListener implements ServletContextListener { //리스너 초기 설정 @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("Context Initialized"); sce.getServletContext().setAttribute("name", "mesung"); } @Override publ..
서블릿 애플리케이션 개발 maven 프로젝트 생성 pom.xml 간략 설명 junit junit 4.11 test javax.servlet javax.servlet-api 4.0.1 provided JUnit Scope : test 소스 classpath 에서는 사용 못하고 오롯이 테스트를 실행할 때만 사용이 가능하다. Servlet Scope : provided 이 의존성을 언제 어떻게 classpath에 넣고 쓸것이냐의 범위를 뜻한다. 코딩 시점에는 사용이 가능하나, 런타임 시점(war 패키징 시점)에는 classpath에서 제외된다. 해당 API는 어딘가(컨테이너)에서 제공이 되어진다는 뜻이다. 이로 인해서 런타임 시점에서는 classpath에서 제외되도 괜찮다는 것이다. 소스 패키지 설정 File..
서블릿 애플리케이션 서블릿 한 프로세스를 공유하는 스레드를 만들어서 요청을 처리한다. 이로인해, 빠르다는 장점을 가지고 있다. 서블릿 엔진 또는 서블릿 컨테이너 세션 관리 네트워크 서비스 MIME 기반 메시지 인코딩 디코딩 서블릿 생명주기 관리 서블릿 애플리케이션 실행 서블릿 애플리케이션은 서블릿 컨테이너가 실행할 수 있으므로, 반드시 서블릿 컨테이너를 사용해야 한다. 서블릿 컨테이너가 서블릿 애플리케이션 실행하는 방법(서블릿의 생명주기) init() : 최초 요청을 서블릿 컨테이너가 받았고, 요청을 처리할 서블릿 인스턴스의 init()을 호출하여 초기화 한다. 최초 요청을 받았을 때 한번 초기화 하고 나면 그 다음부터는 이 과정을 생략한다. 서블릿을 요청한 다음부터는 클라이언트의 요청을 처리할 수 있다..
- Total
- Today
- Yesterday
- Effective Java
- 자바8
- 빌더 패턴
- effectivejava
- 정적팩터리메서드
- 김영한
- 복사 팩토리
- 이펙티브 자바
- JPA
- package-private
- @Lazy
- 빈 순환 참조
- java
- 스프링부트
- mustache
- Spring
- 팩토리 메소드 패턴
- 점층적 생성 패턴
- junit
- java8
- springboot
- 인프런
- ifPresent
- 연관관계
- flatMap
- try with resources
- 이펙티브자바
- jdk버전
- 생성자
- try catch finally
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |