LENATeam / bom-project

Apache License 2.0
1 stars 0 forks source link

recipe_i_8_iv 에러 #3

Open seosej opened 1 year ago

seosej commented 1 year ago

config/SequenceConfiguration.java 파일에서 dependsOn 애너테이션을 설명하고 있는데 일부러 없는 bean 에 dependsOn 을 걸어서 에러가 발생하게 하려고 한 코드인지는 모르겠지만...

정상적으로 실행되게 하려면 아래 코드 처럼 datePrefixGenerator 빈 생성하는 로직도 추가하고 또 메인에서 빈 호출할 때 빈 이름을 sequence 로 호출해서 해당하는 빈을 찾을 수 없다고 나와서 메인 함수안에서 빈 이름을 sequence -> sequenceGenerator 로 변경해주거나 SequenceConfiguration.java 파일 내에서 sequenceGenerator() 를 sequence() 로 수정해주어야 정상적으로 실행됩니다.

[기존] config/SequenceConfiguration.java

package com.apress.spring6recipes.sequence.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;

import com.apress.spring6recipes.sequence.Sequence;

@Configuration
public class SequenceConfiguration {

    @Bean
    @DependsOn("datePrefixGenerator")
    public Sequence sequenceGenerator() {
        return new Sequence("A", 100000);
    }
}

main.java

            var generator = context.getBean("sequence", Sequence.class);

[변경안] config/SequenceConfiguration.java

package com.apress.spring6recipes.sequence.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;

import com.apress.spring6recipes.sequence.DatePrefixGenerator;
import com.apress.spring6recipes.sequence.Sequence;

@Configuration
public class SequenceConfiguration {

    @Bean
    @DependsOn("datePrefixGenerator")
    public Sequence sequenceGenerator() {
        return new Sequence("A", 100000);
    }
    @Bean
    public DatePrefixGenerator datePrefixGenerator(){
        return new DatePrefixGenerator();
    }
}

main.java

            var generator = context.getBean("sequenceGenerator", Sequence.class);