springBoot
Group: 프로젝트를 만들고 관리할 단체나 회사 정보(도메인 이름)
Package: 프로젝트 생성 시 기본적으로 생성할 패키지 경로 지정(com밑에 바로 불가능/com.boot 상위 불가능)
그룹과 패키지
코드를 수정하면 자동으로 재시작하게 하기위해 Spring Boot DevTools(의존성 관리를 하기 위해)
static: 이미지, css,.. 정적인 파일
templates: springBoot에서 권장하는 파일
application.properties에서 오른쪽 클릭 properties Other:UTF-8
pom.xml에서 의존성 관리
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
스프링의 핵심 가치: 개발자가 비즈니스 로직 구현에만 집중할 수 있게 하는 것
제어의 역전(IoC)
객체를 생성하고 사용하는 일련의 작업을 개발자가 직접 제어하는 구조
하지만 제어의 역전을 특징으로 하는 스프링은 사용할 객체를 직접 생성하지 않고 객체의 생명주기 관리를 외부에 위임
객체의 관리를 컨테이너에 맡겨 제어권이 넘어간 것을 제어의 역전(개발자가 하지 않는다.)
제어의 역전을 통해 의존성 주입, 관점 지향 프로그래밍 등이 가능해 짐
의존성 주입DI: 제어의 역전의 방법 중 하나, 사용할 객체를 개발자가 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입 받아 사용하는 형식
생성자를 통한 의존성 주입
필드 객체 선언을 통한 의존성 주입
SETTER 메서드를 통한 의존성 주입
@Autowired라는 어노테이션을 통해 의존성을 주입. 생성자를 통해 의존성을 주입할 때는 @Authowired 어노테이션을 생략할 수 있다. 하지만 가독성을 위해 어노테이션을 명시하기를 권자한다.
생성자를 통한 의존성 주입
@Authowired
puglic DIController(MyService myService){
this.myService = myService;
}
필드 객체 선언을 통한 의존성 주입
@Authowired
private MyService myService;
setter메서드
MyService myService;
@Authowired
public void setMyServiece(MyService myService){
this.myService = myService;
}
공식 문서에서 권장하는 의존성 주입 방법을 생성자를 통해 의존성을 주입 받는 방식
다른 방식과는 다르게 생성자를 통해 의존성을 주입 받는 방식은 레퍼런스 객체 없이는 객체를 초기화할 수 없게 설계할 수 있기 때문이다.
관점지향 프로그래밍(AOP): 객체 지향 프로그램을 더욱 잘 사용하도록 돕는 개념
관점: 어떤 기능을 구현할 때 그 기능을 핵심 기능과 부가 기능으로 구분해 각각을 하나의 관점으로 보는 것을 의미
AOP관점에서는 부가 기능은 핵심 기능이 어떤 기능인지에 무관하게 로직이 수행되기 전 또는 후에 수행하면 된다.
AOP: 비즈니스 로직에서 반복되는 부가 기능을 하나의 공통 로직으로 처리하도록 모듈화해 삽입하는 방식
1.의존성 관리: spring-boot-starter라는 의존성 제공, 각 라이브러리 기능과 관련해서 자주 사용되고 서로 호환되는 버전의 모듈 조합을 제공
2. 자동설정
스프링 프레임워크의 기능을 사용하기 위한 자동 설정을 지원, 애플리케이션에 추가된 라이브러리를 실행하는 데 필요한 환경 설정을 자동으로 찾아준다. => 애플리케이션을 개발하는 데 필요한 의존성을 추가하면 프레임워크가 이를 자동으로 관리해준다.
@SpringBootApplication어노테이션은 세 개의 어노테이션을 합쳐 놓은 구성
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
@Component 시리즈
@Controller, RestController,Service, Repository, Configuration
내장 WAS: 톰캣이 내장되어 있다.
@Controller //인스턴스를 만들기 위해 필요
들여쓰기 템플릿 수정 필요
실행 방법: Boot Dashboard > local > 첫번째
이미 구동되고 있는데 다시하면 오류남