springframeworks

    컴포넌트 스캔

    컴포넌트 스캔 설정정보 없이도 자동으로 스프링 빈을 등록해주는 기능 (원래는 개발자가 설정정보에 등록할 스프링 빈을 매번 나열해야했는데 누락될 가능성도 있고, 반복적인 작업이라는 단점이 있어 생겨난 기능이다) 원하는 위치부터 컴포넌트 스캔하는 방법 @ComponentScan{ basePackages = "hello.core", } 패키지 위치를 지정하지 않고, 설정 정보 클래스의 위치를 프로젝트 최상단에 두는 것도 괜찮은 방법이다. 필터 includeFilters : 컴포넌트 스캔 대상을 추가로 지정. excludeFilters : 컴포넌트 스캔에서 제외할 대상을 지정. 중복등록과 충돌 자동 빈 등록 vs 자동 빈 등록 : ConflictingBeanDefinitionException 발생 수동 빈 등록..

    싱글톤

    싱글톤 패턴 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴 public class SingletonService { //1. static 영역에 객체를 딱 1개만 생성해둔다. private static final SingletonService instance = new SingletonService(); //2. public으로 열어서 객체 인스턴스가 필요하면 이 static 메서드를 통해서만 조회하도록 허용 public static SingletonService getInstance() { return instance; } //3. 생성자를 private으로 선언해서 외부에서 new 키워드를 사용한 객체 생성을 못하게 막는다. private SingletonService() { } ..

    스프링 컨테이너와 빈

    구현체가 여러개라면? 만약 OrderService 인터페이스에 대한 구현체가 하나라면, 일반적으로는 구현체의 이름을 OrderServiceImpl이라고 한다. 하지만, 구현체가 여러개라면 각 구현체의 특성에 맞게 이름을 생성한다. @BeforeEach : 테스트 코드 실행 전 반드시 실행되는 것으로, 테스트 코드가 2개면 2번 실행된다. class MemberServiceTest { MemberService memberService; @BeforeEach public void beforeEach() { AppConfig appConfig = new AppConfig(); memberService = appConfig.memberService(); } } 스프링 컨테이너와 빈 스프링 컨테이너 Applica..

    @AfterEach, 어노테이션, MVC패턴의 호출 경로

    test 코드 test/java 밑에는 test코드를 만들어서 실행하는데, 이 때 test코드의 실행 순서는 랜덤이다. 따라서 일부 테스트가 db 데이터의 영향으로 제대로 실행되지 않을 수 있다. 이 현상을 해결하기 위해 아래 코드를 삽입해준다. @AfterEach //테스트가 끝날 때마다 db데이터를 삭제해줌 public void afterEach() { repository.clearStore(); } 위 코드는 테스트 메서드가 하나가 끝날 때마다 db 데이터를 삭제해준다. 어노테이션 @Controller, @Service와 같은 어노테이션은 스프링 빈에 자동으로 등록해주는 것이고, @Autowired는 스프링 컨테이너에 대입해서 바로 사용할 수 있게 하는 어노테이션이다. MVC 패턴의 호출 경로 vi..