Spring(71)
-
빈 생명주기 콜백 - 애너테이션(@PostConstruct, @PreDestory)
-> 스프링에는 3가지 방법의 빈 생명주기 콜백을 지원한다. 1. 인터페이스(InitializingBean, DisposableBean) 2. 설정 정보에 초기화 메서드, 종료 메서드 지정 3. @PostConstruct, @PreDestroy 애너테이션 ◎ 애너테이션(@PostConstruct, @PreDestory) import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; public class NetworkClient{ private String url; // 접속할 서버의 url public NetworkClient() { System.out.println("생성자 호출, url = " + url); } public vo..
2023.08.24 -
빈 생명주기 콜백 - 빈 등록 초기화, 소멸 메서드
-> 스프링에는 3가지 방법의 빈 생명주기 콜백을 지원한다. 1. 인터페이스(InitializingBean, DisposableBean) 2. 설정 정보에 초기화 메서드, 종료 메서드 지정 3. @PostConstruct, @PreDestroy 애너테이션 ◎ 빈 등록 초기화, 소멸 메서드 지정 -> 설정 정보에 @Bean(initMethod = "init", destroyMethod = "close")와 같이 초기화와 소멸 메서드를 지정할 수 있다. 해당 코드에서는 초기화 메서드를 "init", 소멸 메서드를 "close"라는 이름으로 지정하였다. public class NetworkClient{ private String url; // 접속할 서버의 url public NetworkClient() { ..
2023.08.23 -
빈 생명주기 콜백 - 인터페이스(InitializingBean, DisposableBean)
-> 스프링에는 3가지 방법의 빈 생명주기 콜백을 지원한다. 1. 인터페이스(InitializingBean, DisposableBean) 2. 설정 정보에 초기화 메서드, 종료 메서드 지정 3. @PostConstruct, @PreDestroy 애너테이션 ◎ 인터페이스(InitializingBean, DisposableBean) -> InitialzingBean인터페이스는 afterPropertiesSet()메서드로 초기화를 지원한다. -> DisposableBean인터페이스는 destroy()메서드로 소멸을 지원한다. public class NetworkClient implements InitializingBean, DisposableBean { private String url; // 접속할 서버의 ..
2023.08.23 -
빈 생명주기 콜백
-> 데이터베이스 커넥션 풀, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리하고, 애플리케이션 종료 시점에 연결을 종료하는 작업을 하려면 객체의 초기화 및 종료 작업이 필요하다. -> 예제로 NetworkClient라는 클래스에서 connect()를 호출하여 연결을 하고, disconnect()를 호출하여 연결을 종료하도록 한다. public class NetworkClient { private String url; // 접속할 서버의 url public NetworkClient() { System.out.println("생성자 호출, url = " + url); connect(); call("초기화 연결 메시지"); } public void setUrl(String url) { this..
2023.08.22 -
조회한 빈이 모두 필요한 경우 (List, Map)
-> 해당 타입의 스프링 빈이 모두 필요한 경우가 있다. -> fix, rateDiscountPolicy 이렇게 두 개의 할인 정책 중 하나를 클라이언트가 선택할 수 있다고 가정하면 일단 두 개의 스프링 빈이 모두 필요하게 된다. public class AllBeanTEst { @Test void findAllBean(){ ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class, DiscountService.class); DiscountService discountService = ac.getBean(DiscountService.class); Member member = new Member(1L, "UserA",..
2023.08.01 -
애노테이션 직접 만들기
-> 이전에 @Qualfier를 통해 @Qualifier("mainDiscountPolicy)을 사용했는데 이렇게 사용하면 컴파일 시 타입체크가 안된다. 이럴 때는 애너테이션을 직접 만들어 해결한다. ☆ 참고 [인프런]스프링 핵심 원리 - 기본편
2023.08.01