1. 스프링 프레임워크
(Spring Framework)
객체 관리가 핵심
-관점 지향 프로그래밍 / 관점 - 개발자의 공통적인 처리 부분
-프록시(proxy) : 대신하다, 대리하다.
spring-webmvc
JPA(Java Persistence API - ORM 표준 설계)
spring-context 의존성
spring6
-JDK 컴파일 버전 17
1) 생성자 매개변수
AnnotationConfigApplicationContext(Class<?> ...componentClasses)
AnnotationConfigApplicationContext(String... basePackages)
2) @Import
설정 클래스에서 다른 설정 클래스를 포함시킬때
-의존성을 주입해야되는 객체임을 알려주는 애노테이션
1) 멤버 변수 위에 정의
2) setter 메서드 위에 정의
3) Optional 정의된 멤버 변수, 메서드의 매개변수에 있어도 주입
4) 자동 스캔 적용(@ComponentScan)시
-@Autowired 미 적용 방식
-생성자의 매개변수로 정의 / 기본 생성자가 정의 되지 않아야 한다.
// lombok 사용
//NonNull도 가능
: 빈의 이름을 직접 지정
@Bean : 메서드 명
@Qualifier : 변경한 이름
클래스명 (자동 스캔의 경우) -> 앞 첫문자는 소문자
예) class JoinService -> joinService
false - 주입받는 객체 X -> setter 메서드 호출 X, 의존성 주입 X
@Component
@ComponentScan
-스프링 컨테이너가 자동으로 스캔할 패키지 범위 설정
기본 스캔 대상
@Component
@Service
-특정 기능과 관련된 애노테이션-
@Configuration
@Controller
@RestController
@ControllerAdvice
@RestControllerAdvice
@Aspect
-클래스명만 빈의 이름으로 고려
-다른 패키지에 있는 동일한 이름의 클래스가 있으면 충돌
같은 이름이면 충돌 오류
이름 변경해서 충돌 해결
수동 등록이 우선
컨테이너 초기화 : 빈 객체의 생성, 의존 주입, 초기화
컨테이너 종료 : 빈 객체의 소멸
빈 객체의 라이프 사이클
1) 객체 생성 -> 의존 설정 -> 초기화 -> 소멸
2) InitializingBean
3) DisposableBean
빈 객체의 초기화와 소멸 : 커스텀 메서드
1) initMethod
2) destroyMethod
빈 객체의 생성과 관리 범위
@Scope