說明

The project uses Spring Boot 3.x. All code must use the jakarta.* namespace (not javax.*) and follow Spring Boot 3 conventions.

為什麼重要

  • Jakarta EE — Spring Boot 3 requires Jakarta EE 9+ (jakarta.* namespace)
  • Performance — Spring Boot 3 has significant startup and memory improvements
  • Security — Spring Security 6 has improved defaults

Enforcement

Custom rules for javax.* imports that should be jakarta.* in Spring Boot 3.

Remediation

mvn rewrite:run -DactiveRecipe=org.openrewrite.java.migrate.spring-boot.UpgradeSpringBoot_3_2

正例

import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.validation.constraints.NotBlank;

@Entity
public class Order {
    @Id
    private Long id;

    @NotBlank
    private String name;
}

反例

import javax.persistence.Entity;    // ❌ javax is Spring Boot 2
import javax.persistence.Id;
import javax.validation.constraints.NotBlank;

@Entity
public class Order {
    @Id
    private Long id;
}