如何使用 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?
中有解释
我在 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?
中有解释