Spring Boot Helper

Compatible with IntelliJ IDEA (Ultimate, Community), Android Studio and 1 more
Screenshot 1
Screenshot 2

Assist in Spring application development - Adds support for start initializr, autocomplete Spring Boot/Cloud configuration key/value, Spring reference configuration, Spring metadata documentation.(Support: Java, Kotlin, application.yml and bootstrap.properties)

Features:

Spring Initializr

  1. Allows you to bootstrap new project or new module using File / New / Project / Spring Initializr or File / New / Module / Spring Initializr wizards.

Spring Initializr in action

Autocomplete configuration properties

  1. Autocompletion of the configuration properties in your yaml/properties files based on the spring boot's autoconfiguration jars are present in the classpath
  2. Auto-completion of the configuration properties in your yaml/properties files if you have classes annotated with @ConfigurationProperties , if your build is properly configured
  3. Short form search & search for element deep within is also supported. i.e, sp.d will show you spring.data, spring.datasource, also, port would show server.port as a suggestion
  4. Quick documentation for groups & properties (not all groups & properties will have documentation, depends on whether the original author specified documentation or not for any given element)
Autocomplete in action

Go to configuration properties

  1. Ctrl+click to go to property or code
Goto in action
  1. goto placeholder
Goto in action

Action to Spring Configuration Files:

  • Clone as YAML 🔀 Properties File
  • Converter as YAML 🔀 Properties File
GIF: News

Action in editor configuration yml / properties:

  • Copy key to Clipboard
  • Copy key as environment variable to Clipboard
GIF: News

Copy request mappings as cURL @RestController/@Controller (beta)

GIF: News

Usage

Assuming that you have Spring boot's autoconfiguration jars are present in the classpath, this plugin will automatically allows you to autocomplete properties as suggestions in all your yml files

Suggestions would appear as soon as you type/press Ctrl+Space.

Short form suggestions are also supported such as, sp.d will show you spring.data, spring.datasource, e.t.c as suggestions that make your typing faster

In addition to libraries in the classpath, the plugin also allows you to have your own @ConfigurationProperties available as suggestions in all your yml files.

For this to work, you need to ensure the following steps are followed for your project/module

Configuring the Annotation Processor

What’s New

Unfortunately, eltonsandre didn’t leave any update notes.
Oct 24, 2024
Version 2023.1.5

Rating & Reviews

4.9
35 Ratings (782,983 Downloads)
5
4
3
2
1

Qiang Su

26.09.2024

com.intellij.diagnostic.PluginException: Short name 'return' is not unique class 'dev.eltonsandre.A.new.D.OoOO.return' in PluginDescriptor(name=Spring Boot Helper, id=dev.eltonsandre.intellij.spring.assistant.plugin, descriptorPath=plugin.xml, path=~/Library/Application Support/JetBrains/IntelliJIdea2024.2/plugins/spring-boot-helper, version=2023.1.2, package=null, isBundled=false) and class 'dev.eltonsandre.A.new.D.C.return' in PluginDescriptor(name=Spring Boot Helper, id=dev.eltonsandre.intellij.spring.assistant.plugin, descriptorPath=plugin.xml, path=~/Library/Application Support/JetBrains/IntelliJIdea2024.2/plugins/spring-boot-helper, version=2023.1.2, package=null, isBundled=false) conflict at com.intellij.codeInspection.ex.InspectionToolRegistrarKt.checkForDuplicateShortName(InspectionToolRegistrar.kt:167) at com.intellij.codeInspection.ex.InspectionToolRegistrarKt.registerInspection(InspectionToolRegistrar.kt:126) at com.intellij.codeInspection.ex.InspectionToolRegistrarKt.access$registerInspection(InspectionToolRegistrar.kt:1) at com.intellij.codeInspection.ex.InspectionToolRegistrar.registerInspections(InspectionToolRegistrar.kt:58) at com.intellij.codeInspection.ex.InspectionToolRegistrar.(InspectionToolRegistrar.kt:40) at com.intellij.platform.instanceContainer.instantiation.InstantiateKt$instantiate$2.invoke(instantiate.kt:45) at com.intellij.platform.instanceContainer.instantiation.InstantiateKt$instantiate$2.invoke(instantiate.kt:42) at com.intellij.platform.instanceContainer.instantiation.InstantiateKt.instantiate(instantiate.kt:313) at com.intellij.platform.instanceContainer.instantiation.InstantiateKt.instantiate(instantiate.kt:42) at com.intellij.serviceContainer.LightServiceInstanceSupport$LightServiceInstanceInitializer.createInstance(LightServiceInstanceSupport.kt:47) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1$1.invokeSuspend(LazyInstanceHolder.kt:162) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1$1.invoke(LazyInstanceHolder.kt) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1$1.invoke(LazyInstanceHolder.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:62) at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:163) at kotlinx.coroutines.BuildersKt.withContext(Unknown Source) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1.invokeSuspend(LazyInstanceHolder.kt:160) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1.invoke(LazyInstanceHolder.kt) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1.invoke(LazyInstanceHolder.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:27) at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:90) at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:123) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:52) at kotlinx.coroutines.BuildersKt.launch(Unknown Source) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.initialize(LazyInstanceHolder.kt:145) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.access$initialize(LazyInstanceHolder.kt:13) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.tryInitialize(LazyInstanceHolder.kt:135) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.getInstance(LazyInstanceHolder.kt:95) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.getInstanceInCallerContext$suspendImpl(LazyInstanceHolder.kt:87) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.getInstanceInCallerContext(LazyInstanceHolder.kt) at com.intellij.serviceContainer.ComponentManagerImplKt$doGetOrCreateInstanceBlocking$1.invokeSuspend(ComponentManagerImpl.kt:1568) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:277) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:111) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$BuildersKt__BuildersKt(Builders.kt:84) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:52) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) at com.intellij.serviceContainer.ComponentManagerImplKt$runBlockingInitialization$1.invoke(ComponentManagerImpl.kt:1686) at com.intellij.serviceContainer.ComponentManagerImplKt$runBlockingInitialization$1.invoke(ComponentManagerImpl.kt:1677) at com.intellij.openapi.progress.ContextKt.prepareThreadContext(context.kt:82) at com.intellij.serviceContainer.ComponentManagerImplKt.runBlockingInitialization(ComponentManagerImpl.kt:1677) at com.intellij.serviceContainer.ComponentManagerImplKt.doGetOrCreateInstanceBlocking(ComponentManagerImpl.kt:1567) at com.intellij.serviceContainer.ComponentManagerImplKt.getOrCreateInstanceBlocking(ComponentManagerImpl.kt:1562) at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:746) at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:690) at com.intellij.codeInspection.ex.InspectionToolRegistrar$Companion.getInstance(InspectionToolRegistrar.kt:198) at com.intellij.codeInspection.ex.InspectionToolRegistrar.getInstance(InspectionToolRegistrar.kt) at com.intellij.codeInspection.ex.InspectionProfileImpl.(InspectionProfileImpl.java:84) at com.intellij.codeInsight.daemon.DaemonCodeAnalyzerSettingsImpl.loadState(DaemonCodeAnalyzerSettingsImpl.kt:46) at com.intellij.codeInsight.daemon.DaemonCodeAnalyzerSettingsImpl.loadState(DaemonCodeAnalyzerSettingsImpl.kt:17) at com.intellij.configurationStore.ComponentStoreImpl.doInitComponent(ComponentStoreImpl.kt:593) at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:493) at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:160) at com.intellij.configurationStore.ComponentStoreWithExtraComponents.initComponent(ComponentStoreWithExtraComponents.kt:46) at com.intellij.serviceContainer.ComponentManagerImpl.initializeService$intellij_platform_serviceContainer(ComponentManagerImpl.kt:651) at com.intellij.serviceContainer.ServiceInstanceInitializer.createInstance$suspendImpl(ServiceInstanceInitializer.kt:70) at com.intellij.serviceContainer.ServiceInstanceInitializer.createInstance(ServiceInstanceInitializer.kt) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1$1.invokeSuspend(LazyInstanceHolder.kt:162) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1$1.invoke(LazyInstanceHolder.kt) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1$1.invoke(LazyInstanceHolder.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:62) at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:163) at kotlinx.coroutines.BuildersKt.withContext(Unknown Source) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1.invokeSuspend(LazyInstanceHolder.kt:160) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1.invoke(LazyInstanceHolder.kt) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1.invoke(LazyInstanceHolder.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:27) at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:90) at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:123) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:52) at kotlinx.coroutines.BuildersKt.launch(Unknown Source) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.initialize(LazyInstanceHolder.kt:145) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.access$initialize(LazyInstanceHolder.kt:13) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.tryInitialize(LazyInstanceHolder.kt:135) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.getInstance(LazyInstanceHolder.kt:95) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.getInstance$suspendImpl(LazyInstanceHolder.kt:83) at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.getInstance(LazyInstanceHolder.kt) at com.intellij.platform.instanceContainer.internal.InstanceContainerImpl.instance(InstanceContainerImpl.kt:68) at com.intellij.serviceContainer.ComponentManagerImpl.getServiceAsync(ComponentManagerImpl.kt:694) at com.intellij.openapi.project.impl.ProjectFrameAllocatorKt$restoreEditors$2$daemonCodeAnalyzerSettingsJob$1.invokeSuspend(ProjectFrameAllocator.kt:582) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:608) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:873) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:763) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:750)

+1

43789190

17.05.2024

What a incredible plugin,which help me a lot! Thx for amazing work!

+1

Michelli P.

20.08.2022

It is very useful in the community, the autocompletion of spring settings properties, references and annotations, in Kotlin has helped a lot in productivity!

+1

Additional Information

Vendor:
eltonsandre(Non-trader)
Plugin ID:
dev.eltonsandre.intellij.spring.assistant.plugin