Spring Framework란?
| 스프링프레임워크 | 스프링부트 | |
|---|---|---|
| 특징 | IOC, DI, AOP | auto/내장서버 |
| 복잡도 | 설정 복잡 | 최소한의 설정 |
| 프젝go | 수동으로 설정 | initalizer 프젝 생성 |
| 배포 | 외부서버 배포 | 내장서버 인한 단독 실행 가능 |
⇒ Spring Framework는 기반 기술, Spring Boot는 Spring을 더 쉽고 빠르게 쓰게 해주는 도구다.
객체생성이나 관리 그런 부분이 Spring이 다 해줌. 개발자는 그걸 요청하는 코딩만 하면 되는 것. (예전에는 객체생성이나 관리까지 개발자가 함)
제어의 역전
스프링 컨테이너 객체 생성
개발 효율성(up) 유지보수 용이
<주요 특징>
→ 객체 생성, 초기화 자동 관리
→ 의존 관계를 자동으로 연결 편리 제공
→ 유연한 구조로 설정 변경 용이
→ 낮은 결합도로 유지보수 용이
⇒IoC는 매니저(소속사)가 있다는 느낌 (직접스케줄관리X)
자바에서의 모든 객체는 부모클 참조변수나 구현한 인터페이스 변수에 담을 수 있다. ⇒ 이러한 참조변수를 통해 메서드를 호출하면 오버라이딩된 메서드가 호출된다.
Spring Framework 장점
스프링은 요리사 개발자는 사장넴
spring application에 필요한 라이브러리: spring-context
스프링의 maven 라이브러리들이 모아져 있는 곳에서 다운받아야함.
Java에서 class 에서 활용되는 get set이 Spring에서는 getBean()이런 느낌으로 활용이 된다.
XML 기반으로 프로젝트 빌드와 라이브러리를 자동 관리하는 도구
| Maven | Grable | |
|---|---|---|
| 비유 | 공공기관 메뉴얼식 운명 | 스타트업식 자동화 |
| 특징 | 정해진 규칙 | 자유도 높음 |
| 설정 | XML | Groovy/ Kotilin |
| 속도 | 보통 | 빠름 |
IoC 컨테이너 : 객체 생성과 의존성 관리를 수행하는 스프링의 핵심 구성 요소
POJO Class
Spring Bean 객체 생성
인터페이스
MVC(Model,View,Controller)
*** dispatcher Servlet: 모든 요청을 받아서 적절한 controller에 보내는 애
MVC 장점
분업화: 요리사(모델)가 바뀌어도 서빙 방식(컨트롤러)은 그대로 유지
유지보수: "접시만 바꾸고 싶어(뷰 수정)" 할 때 요리 방법(모델)을 건드릴 필요가 없음
유연성: 같은 요리(데이터)를 접시에도 담을 수 있고, 포장 박스(다양한 뷰)에도 담을 수 있음
@SpringBootApplication
1. @component-scan : 클래스들을 스캔해서 반으로 만들어서 컨테이너에 보관
사용자가 입력한 데이터를 받아오는 방법
@ResponseBody이란?
return “abc”;
⇒ abc.html파일로 인식하는 것이 아니라, 단순 문자열로 인식하여 그대로 브라우저에 실행
springboot 주요 파일
@springbooApplication (1+2번을 포함하는 어노테이션)
<context:component-scan basePackgages=“kr.hs.study.beans”/>
kr.hs.study.beans패키지아래에 있는 클래스들을 스캔해서 어노테이션을 분석한 후, 객체 생성하고, 컨테이너에 보관해라!
프로젝트 실행에 필요한 기본적인 bean 들을 생성한 후, 객체에 보관해라
그렇게 그녀는 한 달 동안 자취를 감췄다고 한다…