목록전체 글 (155)
개발 기록
스프링 빈의 이벤트 라이프 사이클 (싱글톤의 경우) 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용(애플리케이션 동작) -> 소멸전 콜백 -> 스프링 종료 *스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해 초기화 시점을 알려주는 기능 제공 *방법은 여러가지이지만 애노테이션을 주로 사용 //의존관계 주입 완료 후 실행 메소드 @PostConstruct public void init() { connect(); call("초기화 연결 메세지"); } //컨테이너 종료시 호출 @PreDestroy public void close() { disconnect(); } * 객체 생성시 생성자에서 처리하면 되지 않을까?! ( 의존관계 주입을 다 생성자 주입..
보호되어 있는 글입니다.
동적으로 빈을 선택해야 할때 map이나 list으로 받아서 사용하면 편리함 @RequiredArgsConstructor static class DiscountService { private final Map policyMap; private final List policies; public int discount(Member member, int price, String discountCode) { DiscountPolicy discountPolicy = policyMap.get(discountCode); return discountPolicy.discount(member, price); } } ex ; 가격 정책 두 가지를 고객이 선택해서 사용할 수 있을때 map 에 다 넣어서 선택한 정책을 받아와 그..
생성자 주입 -생성자 호출시점에 딱 1번만 호출되는 것이 보장 -불변, 필수 의존관계에 사용 수정자 주입 -setter 메서드를 통해 의존관계 주입 -선택, 변경 가능성이 있는 의존관계에서 사용 private MemberRepository memberRepository; private DiscountPolicy discountPolicy; @Autowired public void setMemberRepository(MemberRepository memberRepository) { this.memberRepository = memberRepository; } @Autowired public void setDiscountPolicy(DiscountPolicy discountPolicy) { this.disc..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
싱글톤 패턴 -클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴 -그래서 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 한다 : private 생성자를 사용해서 외부에서 임의로 new 키워드를 사용하지 못하도록 막아야 한다 싱글톤 컨테이너 -스프링 컨테이너는 싱글톤 패턴을 적용하지 않아도, 객체 인스턴스를 싱글톤으로 관리 -이미 만들어진 객체를 공유해서 효율적으로 재사용 스프링 컨테이너는 싱글톤 레지스트리 - 스프링 빈이 싱글톤이 되도록 보장 스프링은 클래스의 바이트코드를 조작하는 라이브러리를 사용 @Configuration을 붙이면 바이트코드를 조작하는 CGLIB 기술을 사용해서 싱글톤 보장 출처 인프런 스프링 핵심 원리 - 기본편
https://kgu0724.tistory.com/71 리눅스 에러 Could not get lock /var/lib/dpkg/lock-frontend 이 글은 nodejs 설치시에 발생된 에러들입니다. E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable) E: Unable to acquire the dpkg frontend .. kgu0724.tistory.com E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable) E: Unable to acquire the dpkg ..