Spring Boot 기초에서 주로 사용하는 dependency?
- Lombok
- Spring Web
- Spring Data JPA(기초일때만 사용)
- H2 Database(다른 DB 이용 시 사용 가능)
- MySQL Driver
POJO
: Ioc/DI, AOP, PSA 통해 달성, OOP에 충실하면서, 특정 환경과 기술에 종속되지 않고 재사용가능하도록 설계된 Object
예, 툼캣으로 세팅해서 사용중이다가 네티로 변환되더라도, 어플리케이션 레벨에서의 수정은 없어야한다.
-> 테스트 간편화, 확장가능한 유연한 코드사용, 원활한 디버깅 가능
(Spring 은 POJO프로그래밍을 지향하는 프레임 워크!)
느슨한 결합(DIP의 원칙적용)
: 직접적으로 구현체를 의존성 주입해서 사용하는 것이 아닌 추상체를 두어 사용
(new 연산자 제거)
IoC(제어의 역전)
: 객체의 생명주기를 Spring 이 관리
DI(의존성 주입)
: IoC 개념을 적용하기 위해 사용
Spring 관련 어노테이션(주석처럼 쓰이나, 특별한 기능이 탑재된 기술, from Java 5)
: 컴파일러에게 코드 작성 문법 에러를 점검 하도록 정보를 제공받고, 빌드나 매치시 코드를 자동으로 생성할 수 있는
정보를 제공, 실행시 해당 기능을 실행할 수 있도록 보장 함
1. @ComponentScan (@SpringBootApplication 내부 기본 패키지로 설정)
: @Configuration, @Component, @Controller, @service, @Repository 이 있는 클래스 Bean을 찾아 Context에 bean등록을 해주는 역할
(Spring의 Component Scan에 의해 자동으로 Bean(Java 객체, Application의 구성요소를 관리하는 기본단위) 등록)
2. @Component
: 사용자가 직접 작성한 클래스를 Bean으로 등록 (Bean을 생성하여 ApplicationContext에 등록)
3. @Autowired
: 의존성 주입을 자동으로 수행(필드, 생성자, 메소드를 붙여서 Spring이 해당 의존성을 자동으로 주입)
(순환참조 발생 > 생성자 주입방식 사용)
4. @Qualifier
: 같은 type의 Bean이 두개이상 존재할 경우 사용, @ Autowired와 함께 사용됨
(Bean의 이름이나, 식별자를 명시하여 주입할 Bean을 정확하게 지정 가능)
5. @Bean
: 개발자가 직접 제어할 수 없는 외부 라이브러이를 Bean으로 만들려고 할때 사용
6. @Configuration
: 클래스에서 1개 이상의 Bean을 생성할 때 사용
'Java Spring' 카테고리의 다른 글
영속성 이란? (Java Spring Boot 완전기초) (1) | 2024.09.16 |
---|---|
Spring Boot 완전 기초 (2) | 2024.09.15 |
Java 완전 기초 (1) | 2024.09.13 |
POJO 란 무엇인가? (0) | 2024.09.13 |
Java 에 대해서 (0) | 2024.09.13 |