[스프링(spring)]옵션처리

allnight5·2023년 2월 13일
0

스프링

목록 보기
50/62

스프링 빈 없이도 동작해야할때가있다
@Atutowired만 사용하면 required의 옵션 기본값이 false가 아니라면 오류가 발생한다.
그러니까 만약

    private final MemberRepository memberRepository;
    private final DiscountPolicy discountPolicy;

    @Autowired
    public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
        this.memberRepository = memberRepository;
        this.discountPolicy = discountPolicy;
    }

이렇게 생성자로 의존성 주입을 해주는데 만약에 주입대상이 없으면 오류가 발생하게된다. 이것을 방지 하기위한것이 @Atutowired(required = false)로 없다면 메서드자체가 호출되지 않는다.

        @Autowired(required = false)
        public void setNoBean1(Member noBean1){
            System.out.println("noBean1" + noBean1);
        }
        @Autowired
        public void setNoBean2(Member noBean2){
            System.out.println("noBean1" + noBean2);
        }
        @Autowired
        public void setNoBean3(Optional<Member> noBean3){
            System.out.println("noBean1" + noBean3);
        }

이렇게 3가지 방법이있는데
IDE가 인식못할수도있으니 @Autowired이아닌
그냥 생성자 주입으로 하자

profile
공부기록하기

0개의 댓글