Spring Framework 3

Spring AnnotationConfigApplicationContext AnnotationConfigWebApplicationContext 차이

기본적으로 스프링 부트는 컴포넌트 스캔을 지원한다. 이때 사용하는 application context는 AnnotationConfigApplicationContext 이다. 그리고 스프링 부트이면서 Spring MVC 의존성을 가진 프로젝트는 AnnotationConfigWebApplicationContext 을 사용한다. javadoc 을 보면 그 둘은 web이냐 web이 아니냐의 차이만을 가질 뿐 equivalent 하다고 되어 있다. 그렇다면 둘은 WebApplicationContext 와 ApplicationContext의 차이점과 동일한 차이점을 가진다고 할 수 있다. 소스를 보면 둘은 인터페이스 AnnotationConfigRegistry 를 동일하게 implements 하고 있다. 이 인터페..

Spring Framework 2022.01.02

JPA, Hibernate, Spring Data JPA 의 차이

JPA Java Persistence API 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 (=구현체가 아님) javax.persistence 패키지의 대부분은 interface, enum, Exception, Annotation으로 이루어져 있다. Hibernate JPA의 구현체 (Hibernate만 있는 것은 아님) javax.persistence.EntityManager와 같은 JPA의 인터페이스를 직접 구현한 라이브러리 Spring Data JPA JPA를 한 단계 더 추상화시킨 모듈. (Spring Data JPA의 Repository의 구현에서 JPA를 사용하고 있다는 뜻) Repository라는 인터페이스를 제공한다. Repository가 Spring Data..

Spring Framework 2020.02.28

Spring Framework의 DI (Dependency Injection, 의존성 주입)과 AOP (Aspect Oriented Programming)

인프런 백기선님의 스프링 프레임워크 입문을 듣고 필기한 내용입니다:) DI Spring의 IoC 컨테이너 자체를 꺼내오는 법 (쓸 일 별로 없음) @Autowired ApplicationContext applicationContext; 컨테이너에서 빈 가져와 사용하는 법 applicationContext.getBean(_______.class) 의존성 주입 방법 1. 생성자 (1순위) 생성자가 하나만 있고 생성자의 매개변수 타입이 빈으로 등록되어 있으면 @Autowired가 없어도 빈을 주입해준다. 이 클래스에서 꼭 필요한 클래스라면 생성자 방법을 추천한다고 하셨다. private final VisitRepository visits; private final PetRepository pets; publi..

Spring Framework 2020.02.27