NetBeans IDE plugin supporting programming with Spring Boot
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

NB-SpringBoot

NetBeans IDE plugin supporting programming with Spring Boot.

Requirements and Installation

This plugin requires NetBeans 8.1 or above running on JDK 7 or above.

The plugin is available in the Plugin Portal Update Center thus it can be downloaded and installed trough Tools > Plugins > Available Plugins. Please note that new releases become available on the Update Center after they are verified by the folks at the NetBeans Plugin Portal. You can check the verification status looking at the plugin page on the portal.

To perform a manual install download the desired nbm package from the releases page , go to Tools > Plugins > Downloaded and click the Add Plugins... button. Choose the downloaded nbm package file then click Install.

Features

  • New Spring Boot Maven project wizards:
    • Basic project
    • Project generated by Spring Initializr service
  • Specific editor for configuration properties files with:
    • extended syntax highlighting (dot separated keys, array notation)
    • error highlighting for: syntax errors, duplicate properties, data type mismatches and unknown properties
    • completion and documentation of configuration properties names
    • completion and documentation of configuration properties values (hints in configuration metadata)
    • quick fixes for: removing deprecated, unknown and duplicate properties or substituting deprecated properties with their replacement
  • Java editor error highlighting and fixes for missing starter dependencies:
    • @ConfigurationProperties annotation without spring-boot-configuration-processor dependency
    • Imports of Spring MVC annotations and Spring Data interfaces without relevant starter dependencies (e.g. JpaRepository without spring-boot-starter-data-jpa dependency)
  • Code templates:
    • Java templates for web request mapping annotations, Webflux router functions and CommandLineRunner beans
    • Configuration properties templates for commonly used sets of properties
  • Spring Boot file templates:
    • CommandlineRunner components
    • ApplicationRunner components
    • InfoContributor components
    • application.properties files
    • @ConfigurationProperties annotated classes
    • additional-spring-configuration-metadata.json files
  • Spring Boot Actuator file templates:
    • Actuator endpoints
    • Classes implementing InfoContributor
    • Classes implementing HealthIndicator
  • Additional Spring Framework file templates:
    • @Component annotated classes
    • @Configuration annotated classes
    • @Service annotated classes
    • @Controller annotated classes (Spring MVC)
    • @RestController annotated classes (Spring MVC)
    • Reactive @RestController annotated classes (Spring Webflux)
    • Reactive handler classes (Spring Webflux)
    • Interfaces extending Repository both imperative and reactive (Spring Data)
  • Additional code generators in pom.xml files:
    • Add Spring Boot dependencies (dependency metadata is taken from the Spring Initializr web service)
    • Add basic Spring Boot setup
  • Toolbar button to trigger Spring Boot devtools reload
  • Specific Spring Boot project properties page to:
    • Specify command line run arguments and launch VM options
    • Enable/disable manual devtools reload trigger
    • Toggle debug mode and color output
    • Assisted override of configuration properties at launch
  • Additional navigator panel to show request URL mappings of a Controller / RestController class

Issues and Documentation

Bug tracking: GitHub Issues

Getting Started: Quick Tour

Reference: GitHub Wiki

License

The plugin and its source code are licensed under Apache 2.0 license.

Acknowledgements

Completion of Spring Boot configuration properties feature is based on Keevosh plugin.

Templates and code generators were inspired by those found on Spring Boot Tools 4 NetBeans.

Requestmappings navigator panel feature contributed by Michael Simons.

Changelog

See the separate file