feat(config): Add @ConditionalOnMissingBean annotation to service beans in configuration classes

This commit is contained in:
extio-de
2025-12-22 19:54:55 +01:00
parent 8c9c4d85e6
commit 1e4ebb08a4
5 changed files with 10 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
package de.extio.game_engine.event;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
@@ -19,6 +20,7 @@ public class EventsAutoConfiguration {
}
@Bean
@ConditionalOnMissingBean
EventService eventService(final EventHandlerRegistry registry, final EventExecutor executor) {
final EventService eventService = new EventServiceImpl(registry, executor);
return eventService;

View File

@@ -1,6 +1,7 @@
package de.extio.game_engine.keyboard;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
@@ -9,6 +10,7 @@ import org.springframework.context.annotation.Bean;
public class KeycodeAutoConfiguration {
@Bean
@ConditionalOnMissingBean
KeycodeRegistry keycodeRegistry() {
return new KeycodeRegistryImpl();
}

View File

@@ -3,6 +3,7 @@ package de.extio.game_engine.module;
import java.util.List;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
@@ -11,6 +12,7 @@ import org.springframework.context.annotation.Bean;
public class ModuleManagerAutoConfiguration {
@Bean
@ConditionalOnMissingBean
ModuleManager moduleManager(final List<AbstractModule> initialModules) {
return new ModuleManagerImpl(initialModules);
}

View File

@@ -7,11 +7,11 @@ import java.util.function.Consumer;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import de.extio.game_engine.event.EventService;
import de.extio.game_engine.event.EventService;
import de.extio.game_engine.keyboard.KeycodeRegistry;
import de.extio.game_engine.renderer.model.RenderingBo;
@@ -23,6 +23,7 @@ public class RendererAutoConfiguration {
@SuppressWarnings("unchecked")
@Bean
@ConditionalOnMissingBean
RenderingBoPool renderingBoPool(final List<RenderingBo> renderingBoImplementations) {
final Map<Class<? extends RenderingBo>, Class<? extends RenderingBo>> mapping = new HashMap<>();
for (final var impl : renderingBoImplementations) {

View File

@@ -1,6 +1,7 @@
package de.extio.game_engine.storage;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
@@ -9,6 +10,7 @@ import org.springframework.context.annotation.Bean;
public class StorageServiceAutoConfiguration {
@Bean
@ConditionalOnMissingBean
StorageService storageService() {
return new StorageServiceImpl();
}