pi-lens
Version:
Real-time code feedback for pi — LSP, linters, formatters, type-checking, structural analysis & booboo
73 lines (59 loc) • 1.75 kB
YAML
# SpringBootApplication Default Package
# Detects in default package
id: springboot-default-package
name: SpringBootApplication Should Not Be in Default Package
severity: error
category: reliability
defect_class: correctness
inline_tier: blocking
language: java
message: "@SpringBootApplication and @ComponentScan should not be used in default package"
description: |
Using or in the default package causes
component scanning issues and unexpected behavior. Always use a named package.
✅ FIX: Move to a named package
```java
package com.example.myapp; // GOOD - named package
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
query: |
(class_declaration
(modifiers
[(marker_annotation
name: (identifier) )
(annotation
name: (identifier) )])
name: (_)
(#match? "^(SpringBootApplication|ComponentScan)$"))
metavars:
- ANNOT
- CLASS
post_filter: in_default_package
tags:
- reliability
- java
- spring
- best-practice
examples:
bad: |
// No package declaration - default package
// BAD - in default package
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
good: |
package com.example;
// GOOD - named package
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
has_fix: false