Explyt Spring Plugin supercharges your IntelliJ IDEA Community Edition with advanced Spring Framework features—usually only available in the Ultimate Edition. Develop Spring applications faster and smarter with enhanced tools for beans, configurations, endpoints, and more.
Plugin Status: The plugin is completely FREE for both non-commercial and commercial use.
👉 Visit the official Explyt website.
- Features
- Installation
- Usage
- Learn More
- Integrations
- Contributing
- Community and Support
- License
- Acknowledgments
- Accurate Bean Detection: Understand your Spring application with real bean data, even for complex configurations.
- Built-in HTTP Client: Test APIs using Swagger UI directly in your IDE.
- Advanced Inspections: Detect and fix issues in Spring configurations, beans, and annotations.
- Spring Boot & Web Support: Enhanced tools for Spring Boot, MVC, WebFlux, and more.
- Kotlin-Friendly: Full support for Kotlin Spring applications.
- Lightweight & Fast: Runs a lightweight version of your app for accurate insights without slowing down your IDE.
Explyt Spring Plugin uses a unique method to understand your Spring application thoroughly. Instead of analyzing only the source code, our plugin runs a lightweight version of your application to get accurate information about your Spring beans. This means:
- Accurate Bean Detection: We can detect beans that are conditionally loaded or defined through complex configurations.
- Better Inspections: By having real bean data, we reduce false warnings and provide more precise code inspections.
- Improved Navigation and Completion: Navigate to beans and get code completion suggestions based on actual bean definitions.
This approach ensures that even if your application uses advanced Spring features like @Conditional
, complex @ComponentScan
configurations, or custom conditions, the plugin understands them correctly.
We are excited to introduce our built-in HTTP client for IntelliJ IDEA Community Edition, integrated directly into the Explyt Spring Plugin. This feature allows you to test and interact with HTTP APIs seamlessly within your IDE.
- No Custom DSL Needed: Use familiar Spring Web annotations to define HTTP requests instead of learning a new domain-specific language (DSL).
- Leverage Swagger UI: We utilize Swagger UI to provide a rich interface for executing and analyzing HTTP requests.
- Quick Setup: Write methods with Spring annotations, and the plugin generates OpenAPI specifications automatically.
- Familiar Tools: Benefit from well-known technologies like Spring Web, OpenAPI, and Swagger UI.
-
Define HTTP Methods Using Spring Annotations
Write methods in Java or Kotlin using standard Spring Web annotations to describe the HTTP requests you want to make.
@GetMapping("https://api.openweathermap.org/data/2.5/weather") public String getWeather() { // Implementation is not important }
-
Generate OpenAPI Specification
The plugin analyzes your annotated methods and generates an OpenAPI file representing the API definitions.
-
Launch Swagger UI in IntelliJ IDEA
With a simple click on the Run icon next to your method, the plugin opens Swagger UI inside the IDE using the generated OpenAPI file.
-
Execute HTTP Requests
Use Swagger UI to fill in parameters, execute the requests, and view the responses—all within the IDE.
- Simplifies API Testing: Quickly test external services or APIs without leaving your development environment.
- No Extra UI Development: By using Swagger UI, we avoid the need to create and maintain a custom user interface.
- Familiar Workflow: Developers comfortable with Spring and Swagger will find this approach intuitive.
-
Code Generators
- Generate Methods from URLs or cURL Commands: Use the Generate menu (
Alt+Ins
) inside a Java class or Kotlin file to create Spring Web methods based on a given URL or cURL command. - Supports Java and Kotlin: Works seamlessly with both languages.
- Generate Methods from URLs or cURL Commands: Use the Generate menu (
-
Supports OpenAPI Editing
- Edit OpenAPI Files: If needed, you can directly edit the generated OpenAPI files. The plugin provides code completion and validation support for OpenAPI specifications.
-
Handles Common Issues
- CORS Handling: We implemented a custom request handler to bypass CORS issues when making web requests from the embedded browser.
- Testing External APIs: Ideal for experimenting with third-party services like weather APIs, payment gateways, etc.
- Quick Prototyping: Easily create and test API calls during development without switching tools.
- Learning and Documentation: Helps new team members understand API interactions by providing a visual interface.
- Swagger UI Integration (recommended for Spring annotation workflows).
.http
/.rest
File Execution (ideal for users familiar with IntelliJ HTTP Client or HttpYac).
Choose the method that best fits your workflow!
-
Advanced Inspections and Quick Fixes:
- Property Key Validations: Detects unused properties, duplicate keys, and keys that don't follow the kebab-case convention.
- Configuration Properties Support: Navigate, complete, and validate
@ConfigurationProperties
classes.- Nullable Parameters Check: Warns if constructor parameters in
@ConfigurationProperties
classes are not nullable. - Invalid Prefix Detection: Finds empty, duplicate, or incorrectly formatted prefixes in
@ConfigurationProperties
. - Configuration Verification: Ensures
@ConfigurationProperties
classes are correctly registered with Spring.
- Nullable Parameters Check: Warns if constructor parameters in
- Bean Autowiring Checks:
- Reports if no beans are found for autowiring.
- Alerts if multiple candidate beans cause ambiguity.
- Checks for invalid use of
@Autowired
annotations.
- Proxy Method Usage Inspection: Warns about incorrect use of proxy methods when
proxyBeanMethods
is set to false. - Resource Reference Validation: Validates file and classpath resource references in annotations like
@Value
. - AOP Method Call Inspection: Alerts if AOP-advised methods are called within the same class, which may not work as expected.
- Meta-Annotation Checks: Ensures custom annotations used as meta-annotations have the correct settings.
-
Code Completion and Navigation:
- Property Files: Enhanced suggestions for properties, including relaxed binding and nested properties.
- Annotation Attributes: Completion and navigation for package names in annotations like
@ComponentScan
. - Bean Methods: Navigate from bean usage to their definitions, even across different configuration classes.
- Query Languages: Supports JPQL and SQL queries with syntax highlighting and code assistance.
-
Line Markers and Gutter Icons:
- Visual markers for beans, configurations, and
@Scheduled
methods. - Easily navigate between bean definitions and their usages.
- Visual markers for beans, configurations, and
-
Endpoints Tool Window: Access all your Spring MVC and WebFlux endpoints in one place. View, navigate, and analyze your controllers and router functions.
-
Inspections and Quick Fixes:
- Duplicate Endpoint Detection: Warns about duplicate
@RequestMapping
paths. - Controller Method Checks: Finds missing
@PathVariable
s, unsupported method signatures, and more. - OpenAPI Specification Support:
- Validates OpenAPI files (JSON and YAML).
- Provides navigation and completion for
$ref
references. - Checks OpenAPI version compatibility.
- Duplicate Endpoint Detection: Warns about duplicate
-
Code Completion and Navigation:
- WebClient and WebTestClient: Enhanced suggestions for methods, including parameters and URI templates.
- Router Functions: Support for
RouterFunctions
and KotlincoRouter
. - MockMvc Integration: Improved handling of multipart requests and parameter checks.
-
Line Markers and Gutter Icons:
- Visual indicators for controller methods and router functions.
- Navigate between HTTP requests and their handling methods.
-
Execute HTTP Requests via
.http
or.rest
Files
Explyt Spring Plugin now supports .http
and .rest
files with seamless integration for both:
- JetBrains HttpClient CLI
- HttpYac (open-source alternative)
Key Features:
- Run Line Markers: Click the
▶️ Run icon next to request sections in.http
/.rest
files to execute them using your configured runner. - Minimal Setup: No complex configuration needed—just choose your preferred runner.
- Flexible Execution: Works with both JetBrains’ HttpClient (Ultimate) and HttpYac.
Example:
### Get a sample
GET https://httpbin.org/anything
Accept: application/json
Click the
-
JetBrains HttpClient CLI (Recommended for Community Edition):
- Go to Settings > Tools > Explyt Spring.
- Click Download HttpClient CLI – the plugin handles installation and path configuration automatically.
- Done! The CLI is now ready to execute
.http
/.rest
files.
-
HttpYac (Alternative):
- Install globally via npm:
npm install -g httpyac
- Ensure
httpyac
is in your system PATH. - Setup in Settings > Tools > Explyt Spring runner executable path
httpyac
- Install globally via npm:
To switch runners, go to Settings > Tools > Explyt Spring and select your preferred tool.
- Repository Method Name Validation: Ensures your repository methods follow naming conventions and match actual entity properties.
- Return Type and Parameter Checks: Validates that repository methods have correct return types and parameters that match the query.
- Language Injection: Offers JPQL and SQL syntax support within repository query methods.
- Bean Recognition: Detects Spring Data repositories as beans, helping with navigation and autowiring checks.
- Repository Method Autocomplete: Offers autocompletion for new Repository methods using method naming conventions and entity properties.
- AOP Method Call Inspection: Warns when methods with annotations like
@Transactional
or@Async
are called from within the same class. - Line Markers: Visual markers for aspects, pointcuts, and advice methods, making navigation easier.
-
Kotlin Support:
- Handles Spring-specific features in Kotlin code, such as
internal
modifier usages and constructor validations. - Warns against using
object
components as Spring beans. - Alerts when internal bean methods need explicit bean names.
- Handles Spring-specific features in Kotlin code, such as
-
Configuration Metadata Support:
- Completion and validation in
additional-spring-configuration-metadata.json
. - Schema support for additional configuration metadata files.
- Completion and validation in
-
Profile Validation:
- Checks
@Profile
annotations for errors, empty profiles, and misuse of operators.
- Checks
-
Async Method Return Type Inspection:
- Ensures methods annotated with
@Async
have valid return types (void
orFuture
inheritors).
- Ensures methods annotated with
-
Cache Annotation Inspection:
- Reports incorrect usage of cache annotations on interfaces and suggests using them on classes or methods instead.
-
Dependency Analyzer:
- Analyze bean dependencies and navigate through their relationships.
- Helps understand complex bean interactions and resolve issues.
-
Experimental Scala Support:
- Allows to create and develop projects using Scala lang.
- Open IntelliJ IDEA and go to Settings > Plugins.
- Click the ⚙️ icon and select Manage Plugin Repositories.
- Add the Explyt repository: https://repository.explyt.dev/.
- Search for Explyt Spring Plugin in Marketplace tab and click Install.
- Restart the IDE.
(Note: In this case, you will not receive automatic updates.)
- Download the plugin from the Releases Page.
- Go to Settings > Plugins > ⚙️ > Install Plugin from Disk.
- Select the downloaded
.zip
file and restart the IDE.
For additional details, go to Installation Guide.
-
Endpoints Tool Window
Access the Explyt Endpoints tool window from the right sidebar to see all endpoints in your project, including controllers and REST endpoints.
-
Native Bean Loading
Use the Explyt Spring Run Configuration to load bean definitions directly from your Spring application. This process compiles your project and runs it in a special mode to get bean information without fully starting the application.
- Click on the Load Beans icon (a Spring Boot icon with a magnifying glass) to start loading.
- After loading, a panel showing all beans in your application will appear. Double-click any bean to navigate to it.
-
Built-in HTTP Client with Swagger UI
-
Create HTTP Methods Using Spring Annotations
Write methods in Java or Kotlin using Spring Web annotations to define HTTP requests. These methods can be placed in any class.
@GetMapping("https://api.openweathermap.org/data/2.5/weather") public void getWeather() { // Implementation is not necessary }
-
Run HTTP Requests
A Run icon will appear next to methods with absolute URLs. Clicking this icon opens Swagger UI within IntelliJ IDEA.
-
Use Swagger UI
- Fill in parameters and execute the HTTP request directly from the Swagger UI interface.
- View the response, headers, and other details.
- Copy the cURL command generated by Swagger UI for use elsewhere if needed.
-
Edit OpenAPI Files
- Switch to the OpenAPI definition if you need to make manual adjustments.
- The plugin provides code completion and validation for OpenAPI files.
-
Generate Methods from URLs or cURL Commands
- Use the Generate menu (
Alt+Ins
) inside a Java class or Kotlin file. - Choose "Spring Web Method from URL" or "Spring Web Method from cURL".
- This helps you quickly create methods without manually typing code.
- Use the Generate menu (
-
-
Inspections and Quick Fixes
The plugin automatically detects potential issues in your Spring application. Use
Alt+Enter
when an issue is highlighted to see quick fixes. -
Code Completion and Navigation
Enjoy improved code completion throughout your Spring application, including in properties files and annotations. Navigate easily between beans, configurations, and endpoints.
-
Line Markers and Gutter Icons
Visual markers appear in the gutter to help you identify Spring components, endpoints, scheduled tasks, and more. Click these icons to navigate directly to related code.
-
Dependency Analyzer
Analyze bean dependencies and navigate through their relationships. This is useful for understanding complex interactions and solving dependency issues.
-
Kotlin Support
Take advantage of specialized features and inspections designed for Kotlin Spring applications.
-
Execute
.http
or.rest
Files with JetBrains HttpClient- Create a
.http
file:- Right-click your project > New > File
- Name it with extension
.http
- Write requests:
### Get weather data GET https://api.openweathermap.org/data/2.5/weather?q=London Accept: application/json
- Run requests:
- Click the
▶️ Run icon next to a request section. - View responses directly in the IDE’s Run Tool Window.
- Click the
- Create a
For a detailed overview of the plugin's features and how it can improve your development experience, check out our articles:
-
Enhancing Spring Development in IntelliJ IDEA Community Edition with Explyt Spring Plugin
-
Our Version of the HTTP Client for IntelliJ IDEA Community Edition
(Note: The articles are in Russian.)
The articles include explanations, screenshots, and examples showing how the Explyt Spring Plugin can boost your productivity.
- Lombok support for Java projects
- Support for Jakarta and Javax annotations from JSR-330 standard
- JAX-RS annotations
- Retrofit annotations
- IntelliJ IDEA Ultimate
- To use Explyt Spring Plugin with IntelliJ IDEA Ultimate, you have to disable the built-in Spring plugin to avoid conflicts.
We welcome contributions! If you'd like to contribute to this project, please follow these steps:
-
Fork the Repository
Click the Fork button at the top of the GitHub repository page to create your own copy.
-
Clone Your Fork
git clone https://github.com/your-username/spring-plugin.git
-
Create a Feature Branch
git checkout -b feature/your-feature-name
-
Make Changes
Implement your feature or fix a bug.
-
Commit and Push
git add . git commit -m "Description of your changes" git push origin feature/your-feature-name
-
Create a Pull Request
Open a pull request against the
main
branch of the original repository.
Thank you for helping us make Explyt Spring Plugin better! ⭐
- GitHub Issues: Found a bug or have a feature request? Open an issue.
- Telegram: Join our Telegram channel for real-time support and discussions.
- Contributing: Want to contribute? Check out our Contributing Guide.
Explyt Spring Plugin is free for both commercial and non-commercial use. However, redistribution or modification of the plugin is not allowed without explicit permission. For details, see the Explyt License.
And if You want to utilise the source code of the Plugin, you must read and accept our Explyt Source License.
- Inspiration: Created to enhance Spring development in the IntelliJ IDEA Community Edition.
- Contributors: Thank you to all contributors who have helped improve this plugin. Your efforts are greatly appreciated.
For more information, issues, or to contribute, please visit the GitHub repository.
Made with ❤️ by the Explyt Team.