2016-08-30 5 views
2

Я немного новичок в Spring Boot. У меня есть Application.java класса, где у меня есть некоторый код:Spring Boot: безопасно ли передавать многие экземпляры для CommandLineRunner

@SpringBootApplication(exclude = JpaRepositoriesAutoConfiguration.class) 
public class Application { 

    private static final Logger log = LoggerFactory.getLogger(Application.class); 

    ... 

    public static void main(String[] args) throws Exception { 
     SpringApplication.run(Application.class, args); 
    } 

    @Bean 
    public CommandLineRunner App(DBReportRepository dbReportRepository, 
            ClientRepository clientRepository, FileParser fileParser, 
             MessagingService messagingService, ClientReportFactoryImpl clientReportFactory) ... 

мне было интересно, это хорошая практика, чтобы передать так много параметров (которые @Services аннотированных классы) для CommandLineRunner.

Или я делаю Spring Boot слишком много, и есть другой способ заставить Spring Boot быть в курсе этих классов @Services.

ответ

0

Оказалось, что в конфигурации моей весенней загрузки отсутствует класс AppConfig. Без него я мог бы использовать @Autowired с классами @Component или классами @Service, которые были переданы в качестве аргументов CommandLineRunner. Я создал AppConfig.java глядя, как это:

@Configuration 
@ComponentScan(basePackages = "your.main.package") 
public class AppConfig { 
} 

И после того, что я мог бы использовать @Autowired везде возможно.

Смежные вопросы