DispatcherServlet 초기화 HandlerMapping : 핸들러를 찾아주는 인터페이스 HandlerAdapter : 핸들러를 실행하는 인터페이스 ReturnValueHandlers : return 값을 http 본문에 넣어주는 핸들러 HandlerMapping url에 해당하는 handler를 찾는 인터페이스 찾는 핸들러 : RequestMappingHandlerMapping //DispatcherServlet.class @Nullable protected HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception { if (this.handlerMappings != null) { Iterator var2 = t..
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 응답으로..
스프링의 핵심을 담당하는 건, 바로 빈 팩토리 또는 애플리케이션 컨텍스트라고 불리는 것이다. 이 두 가지는 우리가 만든 DaoFactory가 하는 일을 좀 더 일반화한 것이라고 생각하면 된다. 오브젝트 팩토리를 이용한 스프링 IoC 애플리케이션 컨텍스트와 설정정보 여기서는 우리가 만든 DaoFacotry를 스프링에서 사용 가능하도록 만들어 볼 것이다. 스프링에서는 스프링이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트를 빈이라고 부른다. 스프링 빈은 스프링 컨테이너가 생성과 관계설정, 사용 등을 제어해주는 제어의 역전이 적용된 오브젝트를 가리키는 말이다. 스프링에서 빈의 생성과 관게설정 같은 제어를 담당하는 IoC 오브젝트를 빈 팩토리 혹은 애플리케이션 컨텍스트라고 부른다. 빈 팩토리와 애플리케이..
팩토리 팩토리 : 팩토리는 객체의 생성 방법을 결정하고 그렇게 만들어진 오브젝트를 돌려주는 일을 한다. 팩토리는 오브젝트를 생성하는 쪽과 생성된 오브젝트를 사용하는 쪽의 역할과 책임을 분리하려는 목적으로 사용하는 것이다. public class DaoFactory { public UserDao userDao() { //팩토리 메소드는 UserDao 타입의 오브젝트를 어떻게 만들고, 어떻게 준비시킬지를 결정한다. ConnectionMaker connectionMaker = new DConnectionMaker(); UserDao userDao = new UserDao(connectionMaker); return userDao; } } 기존 UserDaoTest의 main에서는 UserDao가 어떻게 만들어..
스프링에 들어가기 앞서, 스프링에 관련된 소스를 작성하여 스프링의 내부 구조를 살펴보자. 상속을 통한 확장 만약, 우리의 UserDao를 고객사에게 제공할 건데, UserDao의 클래스 파일만 제공하고 고객이 필요한 부분만(getConnection())을 수정해서 사용하게끔 할 수 있는가? Connection 부분을 추상메소드로 만들어 고객에게 직접 구현할 수 있게끔 한다. 즉, 상속을 통해 확장하는 것이다. 상속을 통한 확장에는 두 가지 패턴을 사용하게 된다. 템플릿 메소드 패턴 상속을 통해 슈퍼클래스의 기능을 확장할 때 사용하는 가장 대표적인 방법이다. 서브 클래스에서 필요에 맞게 추상 메소드를 구현해서 사용하는 방법을 디자인한 것이다. 팩토리 메소드 패턴 서브클래스에서 구체적인 오브젝트 생성 방법을..
Bean 등록에 필요한 어노테이션 @Component : 태그와 동일한 역할 @Repository : 퍼시스턴스 레이어, 데이터베이스 관련 클래스 @Service : 비즈니스 로직을 가진 클래스 @Controller : 웹 요청과 응답을 처리하는 클래스 Bean 의존관계 주입 어노테이션 @Autowired Spring DI 컨테이너에서 주입하고자 하는 Bean을 불러온다. Setter 메소드, 필드, 생성자에 적용할 수 있다. Bean 검색 할 때 우선순위는 1. byType, 2. byName 이다. 주입 받아올 Bean을 명시할 수 있다. @Autowired @Qualifier("CustService") //Type 다음 Name(변수명) @Resource Spring이 아닌 Java에서 객체에 주입..
IoC의 개념 Inversion of Control의 약자로서, 객체의 생성과 생명주기에 대한 권한이 역전되는 것을 말한다. IoC 컨테이너 객체의 생성과 생명주기를 관리하고, POJO의 생성과 초기화, 서비스, 소멸에 대한 권하을 가진다. DI의 개념 Dependency Injection의 약자로서, Bean 설정 정보를 바탕으로 객체간의 의존 관계를 연결해주는 것을 말한다. 빈 설정 방법 xml로 설정 //1. 객체마다 Bean 설정 //2. 패키지로 Bean 설저 CustService와 CustRepository를 Bean으로 등록한다. CustService와 CustRepoistory는 서로 의존 관계를 갖는다. mesung.springKeyTech 하위에 있는 모든 객체를 Bean으로 등록한다...
스프링 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 객체이다. 뷰 : 데이터를 보여주는 역할로서, 다양한 형태로 보여줄 수 있다. 이벤트 목록 이름 참가 인..
- Total
- Today
- Yesterday
- 이펙티브자바
- Effective Java
- effectivejava
- java8
- java
- 팩토리 메소드 패턴
- 빌더 패턴
- junit
- 복사 팩토리
- @Lazy
- jdk버전
- JPA
- try with resources
- package-private
- 자바8
- flatMap
- 인프런
- 정적팩터리메서드
- 점층적 생성 패턴
- 연관관계
- 생성자
- 이펙티브 자바
- 스프링부트
- try catch finally
- 빈 순환 참조
- springboot
- mustache
- Spring
- 김영한
- ifPresent
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |