JAVA Spring 입문

Kim yohan·2022년 11월 27일
0

TIL

목록 보기
11/16

김영한의 자바 스프링 입문 강의

  1. MVC 패턴 + 탬플릿
    localhost:8080/hello/ 로 들어올 경우
    -> Controller에서 hello와 매핑되는 클래스를 실행시킨다.
    -> 해당 클래스에서 "hi"(viewName)를 반환할 경우, viewResolver한테 던져서 resources/templates/hi(viewName).html을 찾아서 보여준다.

  2. model.addAttribute(attributeName, attributeValue)를 통해
    template에서 원하는 값을 사용할 수 있음.

3.정적 컨탠츠
resources/static/{staticName}.html 에 위치
작동 원리 :
localhost:8080/{staticName}.html로 들어옴
-> 톰캣 서버에서 받음
-> 스프링 컨테이너에서 {staticName}의 컨테이너가 있는지 찾음
-> 없으면 static/에서 {staticName}.html을 찾음.
-> 있으면 전달

4.API
@ResponseBody를 사용하면
controller의 return 값을 직접 변환할 수 있음.
대신 template로 연결되는 것이 아닌 return 값이 바로 찍힘.
즉, 대응되는 template가 있어도 그걸 가져오지 않는다.

위의 내용은 잘 사용안하고
보통 API방식할 때, class를 만들어 반환하는 듯.
그러면 json 방식으로 마지막에 전달됨.

@ResponseBody가 사용되면, viewResolver 대신 HttpMessageConverter가 작동하는데
controller의 반환값이 String이면, StringConverter에 던지고,
객체이면, JsonConverter에 던짐.

5.0과 0L
long 형식을 나타내기 위해 뒤에 L을 붙임.

6.Controller -> Service -> Repository -> DB

  • Domain

Controller는 Service에 의존, Service는 Repository에 의존
이런 의존 관계를 연결시켜주기 위해
각각 @Controller @Service @Repository tag를 달아주고,
생성자에 @Autowired를 걸어준다.
-> 컴포넌트 스캔과 자동 의존관계 설정.

7.컨테이너에 스트링 빈을 등록할 때 싱글톤으로 등록한다.
즉, 유일하게 하나의 인스턴스를 생성해서 공유하는 방식이다.
같은 스트링 빈이라면 같은 인스턴스이다.

  1. 스프링 빈에 추가하는 방법 두 가지
    (1)컴포넌트 스캔과 자동 의존관계 설정 :
    @Controller @Service @Repository / @Autowired 사용
    (2)자바 코드로 직접 추가
    Configure파일 따로 만들고, @Configure / @Bean 사용

각각 장단점 있음.
자바 코드로 직접 추가하면 나중에 repository를 바꾸거나 할 때 간편하다.

9.의존관계 주입(DI. Dependency Injection)의 3가지 방법
생성자 주입, 필드 주입, setter 주입이 있는데 주로 생성자 주입을 사용한다.

profile
꾸준히 성실하게

0개의 댓글