본문 바로가기

Java/Spring10

[6] 스프링 프레임워크 핵심 - Component Scan, Bean Scope ComponentScan Spring 에서 자동으로 컴포넌트 Scan이 되는 이유는 위 ComponentScan 어노테이션 덕분인데요 Component Scan에서 가장 중요한 값이 basePackages 입니다. basePackage 값이 문자열인데, 이는 type-safe 하지 않아서 클래스를 전달하려면 basePackageClasses를 이용합니다. 컴포넌트 스캔의 시작점은 위 @SpringBootApplication 에서부터 시작합니다. 위 클래스를 담는 패키지와 그 하위 패키지에 명시된 @Component들을 모두 스캔합니다. (밖에 있는 건 안됩니다) 간혹 스프링을 쓰다가 Bean 주입이 잘 안되면 어디서부터 어디까지 Component Scan이 되는지 잘 살펴보아야 합니다 . Componen.. 2020. 12. 5.
[5] 스프링 프레임워크 핵심 - Autowired IoC Container는 의존성을 주입할 때 필요한 의존 객체의 "타입"에 해당하는 빈을 찾아서 주입해줍니다. 생성자를 이용하기 @Service public class BookService { BookRepository bookRepository; @Autowired public BookService(BookRepository bookRepository) { this.bookRepository = bookRepository; } } 다음과 같이 생성자를 정의한 후 @Autowired 어노테이션을 명시하여 사용합니다. Setter를 이용하기 @Service public class BookService { BookRepository bookRepository; @Autowired public void se.. 2020. 12. 4.
[4] 스프링 프레임워크 핵심 - IOC 컨테이너와 Bean 스프링의 디자인 철학 - 모든 선택은 개발자의 몫이다 (특정 기술을 강요하지 않는다) - 다양한 관점을 지향한다 (유연성) - 하위 호환성을 지킨다 (노력) - API를 신중하게 설계 한다 - 높은 수준의 코드를 지향한다 IoC 컨테이너 IoC 컨테이너를 사용하는 이유를 여럿 찾아봤는데 stackoverflow.com/questions/871405/why-do-i-need-an-ioc-container-as-opposed-to-straightforward-di-code 이 글에서 대화를 나눈게 가장 적합한 대답이 아닐까 생각됩니다. 스프링에서는 어노테이션 기반의 DI가 수행되는데요 google guice에서 처음 선보인 거라고 하네요 (역시 구글) BeanFactory IoC 컨테이너의 최상위 인터페이스.. 2020. 11. 30.
[3] 간략한 스프링 개요 - PSA 1. PSA PSA란 Portable Service Abstraction 이라고 합니다 자바 스프링은 서블릿 어플리케이션을 만듦에도 불구하고 서브릿을 직접 프로그래밍하지 않습니다. 일반적으로 하나의 엔드포인트에 여러 메소드를 대응시키기 위해 java에 구현된 HttpServlet 을 상속받아 해당 HttpServlet의 doGet, doPost 메소드를 오버라이딩하여 비즈니스 로직을 작성하게 됩니다. public class OwnerCreateServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException .. 2020. 11. 30.