如何使用 factorybean 创建服务 bean

How create service beans with factorybean

我在 appconfig 文件中创建服务 bean。如何用 FactoryBean 或其他方式创建这个 bean 而不是一个一个地创建它?

@SpringBootApplication(exclude = {SecurityAutoConfiguration.class })
@ComponentScan
public class Application {
    public static void main(String[] args) {

        SpringApplication.run(Application.class, args);
    }

    @Bean
    public SimpleService<Work> workService() { return new SimpleServiceImpl<Work>() { }; }

    @Bean
    public SimpleService<User> userService() { return new SimpleServiceImpl<User>() { }; }

    @Bean
    public SimpleService<Author> authorService() { return new SimpleServiceImpl<Author>() { }; }

    @Bean
    public SimpleService<Genre> genreService() { return new SimpleServiceImpl<Genre>() { }; }

    @Bean
    public SimpleService<BookCondition> bookConditionService() { return new SimpleServiceImpl<BookCondition>() { }; }

    @Bean
    public SimpleService<BookType> bookTypeService() { return new SimpleServiceImpl<BookType>() { }; }

    @Bean
    public SimpleService<Offer> offerService() { return new SimpleServiceImpl<Offer>() { }; }

除了这个服务我只有 genericService 和 genericsSrviseImpl。

可以使用@Service 注解。

假设您的 service/class 名称是 SimpleServiceImpl 然后定义 @Service("SimpleService") 在 class 名称之上。 Spring 将把它创建为一个 bean。

另一种方法是使用 factoryBean,这在 link How to get beans created by FactoryBean spring managed?

中有解释