TLDR:我希望我的Spring Boot应用程序在启动时运行一些初始化代码。代码需要访问Spring bean和值。
我正在编写一个Spring Boot应用程序,它将同时使用来自队列的多条消息。为了做到这一点,它需要实例化多个消费者对象。Spring是否有一个好的方法来实例化相同类的可配置的实例数?
我考虑了下面的方法,但我觉得不对。这似乎是对@component
注释的滥用,因为initializer
实例在构造后没有使用。有什么更好的方法做这件事?
@Component
public class Initializer {
public Initializer(ConsumerRegistry registry, @Value("${consumerCount}") int consumerCount) {
for (int i = 0; i < consumerCount; i++) {
// Each registered consumer results in a thread that consumes messages.
// Incoming messages will be delivered to any consumer thread that's not busy.
registry.registerConsumer(new Consumer());
}
}
}
ApplicationListener
可以满足您的需要。它在注册的事件上得到通知,例如当ApplicationContext就绪时。您将拥有对所有bean和injection的完全访问权。
@Component
public class StartupApplicationListener implements ApplicationListener<ApplicationReadyEvent> {
@Inject
private ConsumerRegistry registry;
@Inject
@Value("${consumerCount}")
private int consumerCount;
@Override
public void onApplicationEvent(ApplicationReadyEvent event) {
//do your logic
for (int i = 0; i < consumerCount; i++) {
// Each registered consumer results in a thread that consumes messages.
// Incoming messages will be delivered to any consumer thread that's not busy.
registry.registerConsumer(new Consumer());
}
}
}
问题内容: 用RefluxJS异步初始化数据的正确方法是什么?是否有类似于AngularJS的解决方案,或者Flux的实现与此无关(路由器应该处理此职责)? 问题答案: 在应用程序的顶级组件中,使用方法(docs)触发获取数据的操作。最初渲染组件时将调用此方法。 例如:
我有以下配置类: 我希望能够从应用程序的主方法加载bean。像这样的东西: schedulerService类具有一个
问题内容: 要声明一个具有固定大小的空切片,最好这样做: 要么: 只想知道哪种方法是正确的。 问题答案: 您提供的两个选择在语义上是相同的,但是使用会导致内部调用 runtime.makeslice (Go 1.14)。 您还可以选择保留其值: 如Golang.org博客中所述: nil切片在功能上等效于零长度切片,即使它没有指向任何内容。它的长度为零,可以附加分配。 甲片段将然而入而空片将编组成
要声明大小不固定的空切片,最好执行以下操作: 或: 只是想知道哪一个是正确的方法。
本文向大家介绍详解SpringBoot程序启动时执行初始化代码,包括了详解SpringBoot程序启动时执行初始化代码的使用技巧和注意事项,需要的朋友参考一下 因项目集成了Redis缓存部分数据,需要在程序启动时将数据加载到Redis中,即初始化数据到Redis。 在SpringBoot项目下,即在容器初始化完毕后执行我们自己的初始化代码。 第一步:创建实现ApplicationListener接
我有一个jhipster项目,项目中定义了一个sonarqube任务。我们在/src/main/UI/src/目录下构建了一个react UI...和/src/main/ui/src/test/...sonarqube的资产如下: 目前,sonar只接收标准/src/main/java下的java。我尝试添加属性“sonar.sources”、“src/main/ui/src/*.js”、属性“s