Adapted from VSCode Spring Boot extension, integrating some of its features into Neovim.
- Find Beans using Spring annotations
- Discover Web Endpoints
- Code completion hints and navigation for
application.properties/application.yml - Dependency hints/completion for Spring annotations
- Code Actions
lazy.nvim-- Using autocmd launch (default) -- Default uses jars from mason or ~/.vscode/extensions/vmware.vscode-spring-boot-x.x.x { "JavaHello/spring-boot.nvim", ft = {"java", "yaml", "jproperties"}, dependencies = { "mfussenegger/nvim-jdtls", -- or nvim-java, nvim-lspconfig "ibhagwan/fzf-lua", -- optional, for UI features like symbol picking. Other pickers (e.g., telescope.nvim) can also be used. }, ---@type bootls.Config opts = {} },
- Install VSCode Spring Boot in Visual Studio Code (optional)
Refer to nvim-jdtls for detailed configuration
local jdtls_config = {
bundles = {}
}
-- Add spring-boot jdtls extension jars
vim.list_extend(jdtls_config.bundles, require("spring_boot").java_extensions())-- Add global command handlers
require('spring_boot').init_lsp_commands()
-- Add spring-boot jdtls extension jars
require("lspconfig").jdtls.setup {
init_options = {
bundles = require("spring_boot").java_extensions(),
},
}- Find Beans using Spring annotations:
This feature leverages LSP workspace symbols. You can use your preferred fuzzy finder that supports displaying LSP workspace symbols.
For example:
- If you are using
fzf-lua::FzfLua lsp_live_workspace_symbols
- If you are using
telescope.nvim::lua require'telescope.builtin'.lsp_workspace_symbols{}

- If you are using