Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 한다.spring-boot-starter-webspring-boots-starter-tomcat: 톰캣(웹서버)spring-webmvc: 스프링 웹 MVCspring-boot-starter-thymeleaf: 타
이 상태에서 서버 재시작을 해본다.무슨 일이 일어날까?data 변수의 값인 hello가 잘 전달된 모습이다.그런데 index.html에서 딱히 hello.html의 url을 지정해준적은 없다. 단지 /hello 라고 지정했을 뿐인데, 어떻게 hello.html로 라우팅
스프링 제대로 다뤄보는건 처음인데꽤 재밌다.ㅎㅎ실제 서버에 배포할 때는 위 빌드 파일(jar 파일)만 배포하게 된다.
static 아래에 hello-static.html 이라는 이름으로 아래와 같이 생성localhost:8080/hello-static.html 결과index.html 와 이어준 적도 없고 컨트롤러에 정의도 안 했는데,어떻게 가능한걸까?먼저 hello-static 이라는
김영한님 강의를 일반적인 MVC의 컨트롤러와 달리 객체를 반환하는게 특징이다.Spring 에서 객체를 반환할 때는 json 형태로 변환되는게 디폴트다.@Responsebody 를 사용하면 ViewResolver 를 사용하지 않고, HTTP Body에 문자 내용을 직접
컨트롤러 : 웹 MVC의 컨트롤러서비스 : 핵심 비즈니스 로직구현리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장/관리도메인 : 비즈니스 도매인 객체 (회원, 주문, 쿠폰 등등... 주로 DB에 저장되고 관리됨)
@Component 애노테이션이 있으면 스프링 빈으로 자동 등록되기 때문@Component 를 포함하고 있는 annotation@Controller@Service@Repository등등... 모두 스프링 컨테이너에 자동 등록된다.생성자에 @Autowired annota
편하다.각 컴포넌트의 역할을 쉽게 정의 가능구현체를 중간에 바꿀 가능성이 존재할 때 더 편하다.의존관계를 보다 명확히 정의할 수 있다.
DiscountPolicy (interface) \- rateDiscountPolicy \- fixDiscountPolicy위와 같이 인터페이스와 구현체가 있고,모두 스프링 빈으로 등록한 상태다.그리고 위 코드로 호출을 했을 때,충돌이 난다고 가정한다.위와 같이,
스프링이 나오고 시간이 갈 수록 자동이 선호되고, 발달하고 있다.최근 스프링 부트는 컴포넌트 스캔 방식으로 기본으로 사용한다.수동의 장점? 당연히 있다.인터페이스와 구현체가 한 눈에 명확히 보인다는 것이 가장 큰 장점이다.그러나 개발자 입장에서 상대적으로 번거롭고,설정
스프링으로 개발해보면서도, 스프링의 실체에 대해서 잘 모르고 개발하는 감이 있었다.이 강의로 스프링이 뭘 하고자 하는지, 어떤 기능을 왜 만들었는지 그림을 그릴 수 있게 됐다.스프링의 목적은 바로 객체 지향 원칙 SOLID를 고수하는 것이다. DI, IoC 등의 개념이