Today I Learned_220429
Spring Framework
IntelliJ
iter : 입력하면 for문이 자동으로 완성됨.
command + D : 복사한 걸 아래에다가 그대로 붙여넣기.
메서드 안에서 control + R : 해당 메소드 실행
Bean 조회하기
ApplicationConfigApplicationContext는 ac로 축약
- ac.getBeanDefinitionNames() : config에 있는(스프링 컨테이너에 등록된) 모든 빈의 이름을 조회
- ac.getBean(beanDefinitionName) : 이름이 beanDefinitionName인 bean 객체 조회
- 모든 빈 조회 시, 스프링 내부에서 사용하는 빈과 사용자가 정의한 빈이 모두 출력 -> getRole()로 구분할 수 있다.
- ROLE_APPLICATION : 사용자가 정의한 빈
- ROLE_INFRASTRUCTURE : 스프링이 내부에서 사용하는 빈
- ac.getBean은 타입으로만 조회할 수도 있고, 빈 이름과 타입으로도 조회 가능하다.
- 타입 조회 시, 인터페이스 타입과 구체 클래스 타입 모두 조회가 가능하다. 하지만 구체 클래스 타입으로 직접 조회할 시, 유연성이 떨어지므로 유의할 것.
- ac.getBeansOfType(타입) : 해당 타입의 빈 모두 조회. 리턴 타입이 Map<String, Class> 타입이다. -> Autowired등 자동 의존 관계를 주입하기 위해서 사용이 된다.
JUnit5
JUnit5부터는 public 설정을 따로 하지 않아도 된다.
assertThrows : 예외가 터져야지 테스트를 통과하는 메소드. org.junit.jupiter.api.Assertions.assertThrows