/nb-springboot

NetBeans IDE plugin supporting programming with Spring Boot

Primary LanguageJavaApache License 2.0Apache-2.0

NB-SpringBoot

NetBeans IDE plugin supporting programming with Spring Boot.

Requirements and Installation

This plugin requires NetBeans 8.2 or above running on JDK 8 or above.

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.

The plugin may be 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. Note that current NetBeans Plugin Portal (http://plugins.netbeans.org) is undergoing migration at Apache Foundation. A new plugin portal is being set-up (currently at http://netbeans-vm.apache.org/pluginportal but subject to change) and may become the new official source of plugins.

Features

  • Spring Boot Maven project wizards:
  • 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
    • quick fixes for: removing deprecated, unknown and duplicate properties or substituting deprecated properties with their replacement
    • completion and documentation of configuration properties names and values (with support of hint value providers defined in configuration metadata)
  • 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 classes
    • ApplicationRunner classes
    • application.properties files
    • additional-spring-configuration-metadata.json files
    • @ConfigurationProperties annotated classes
  • 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
  • Custom 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.

Badge on projects icon feature initially contributed by Hector Espert.

Changelog

See the separate file