Back to skills
SKILL.md
Swe Programming Java
ASecurityJava, Spring Framework, and Spring Boot coding standards from authoritative docs/explanation/ documentation
- 4 stars
- 0 votes
- 0 copies
- 0 views
- Added September 12, 2026
Works with
Security analysis
100/100Pro scans all 2 files and shows the line behind each finding
npx -y skills add aibot88/sec_skill_store --skill swe-programming-java --agent claude-codeAre you the author of Swe Programming Java?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-swe-programming-java)---
name: swe-programming-java
description: Java, Spring Framework, and Spring Boot coding standards from authoritative docs/explanation/ documentation
---
# Java Stack Coding Standards
## Purpose
Progressive disclosure of Java stack coding standards for agents writing Java code.
**Coverage**: Java language → Spring Framework → Spring Boot (full technology stack)
**Usage**: Auto-loaded for agents when writing any Java/Spring code. Provides quick reference to idioms, best practices, and antipatterns across the full stack.
---
## Java Language Standards
**Authoritative Source**: [docs/explanation/software-engineering/programming-languages/java/README.md](../../../docs/explanation/software-engineering/programming-languages/java/README.md)
### Naming Conventions
**Classes and Interfaces**: PascalCase
- Classes: `UserAccount`, `PaymentProcessor`
- Interfaces: `Comparable`, `Serializable` (adjective form preferred)
- Abstract classes: `AbstractProcessor`, `BaseEntity`
**Methods and Variables**: camelCase
- Methods: `calculateTotal()`, `findUserById()`
- Variables: `userName`, `totalAmount`
- Constants: `UPPER_SNAKE_CASE` (`MAX_RETRIES`, `DEFAULT_TIMEOUT`)
**Packages**: lowercase with dots
- `com.demo.domain.account`
- `com.demo.infrastructure.persistence`
### Modern Java Features (Java 17+)
**Records**: Use for immutable data carriers
```java
public record UserAccount(String id, String name, LocalDateTime createdAt) {}
```
**Sealed Classes**: Use for closed type hierarchies
```java
public sealed interface Payment permits CreditCard, BankTransfer {}
```
**Pattern Matching**: Use for type-safe casts
```java
if (obj instanceof String s) {
return s.toUpperCase();
}
```
**Text Blocks**: Use for multi-line strings
```java
String json = """
{
"name": "value"
}
""";
```
### Error Handling
**Checked Exceptions**: For recoverable errors
- Use for business logic failures
- Document with `@throws` javadoc
**Unchecked Exceptions**: For programming errors
- Use for validation failures, illegal state
- Extend `RuntimeException`
**Try-with-resources**: Always use for AutoCloseable
```java
try (var reader = Files.newBufferedReader(path)) {
// Use reader
}
```
### Testing Standards
**JUnit 5**: Primary testing framework
- `@Test` for test methods
- `@BeforeEach`, `@AfterEach` for setup/teardown
- `@ParameterizedTest` for data-driven tests
**AssertJ**: Fluent assertions
```java
assertThat(result)
.isNotNull()
.hasSize(3)
.containsExactly("a", "b", "c");
```
**Mockito**: Mocking framework
```java
@Mock
private UserRepository repository;
```
### Security Practices
**Input Validation**: Always validate external input
- Use Bean Validation annotations (`@NotNull`, `@Size`)
- Validate before processing
**Sensitive Data**: Never log secrets
- Use `SensitiveDataFilter` for logging
- Clear sensitive data after use
**SQL Injection**: Use prepared statements
```java
var stmt = connection.prepareStatement("SELECT * FROM users WHERE id = ?");
stmt.setString(1, userId);
```
### Java Comprehensive Documentation
- [Java README](../../../docs/explanation/software-engineering/programming-languages/java/README.md)
- [Functional Programming](../../../repo-governance/development/pattern/functional-programming.md)
---
## Spring Framework Standards
**Authoritative Source**: [docs/explanation/software-engineering/platform-web/tools/jvm-spring/README.md](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/README.md)
**Foundation**: Builds on Java language standards above.
### IoC Container and ApplicationContext
- Use `ApplicationContext` for production code
- Prefer annotation-based configuration (`@Configuration`, `@Bean`)
- Use component scanning with explicit base packages
### Dependency Injection Patterns
- **Constructor injection** (preferred): Use for required dependencies
- Field injection (avoid): Creates testing difficulties
- Setter injection: Use for optional dependencies
### Bean Lifecycle and Scopes
- Singleton (default): Stateless services
- Prototype: Stateful objects
- Request/Session: Web-scoped beans
- Use `@PostConstruct` and `@PreDestroy` for lifecycle callbacks
### AOP Patterns
- Use `@Aspect` for cross-cutting concerns
- Prefer declarative transactions (`@Transactional`)
- Apply aspects for logging, security, caching
### Data Access
- Use `JdbcTemplate` for SQL operations
- Prefer Spring Data JPA repositories
- Apply transaction management at service layer
- Use `@Transactional` for declarative transactions
### Web MVC
- Use `@RestController` for REST APIs
- Apply `@RequestMapping` for endpoint routing
- Use `@Valid` for request validation
- Implement `@ControllerAdvice` for global exception handling
### Spring Framework Comprehensive Documentation
**Core Patterns**:
- [Idioms](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/idioms.md)
- [Best Practices](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/best-practices.md)
- [Anti-Patterns](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/anti-patterns.md)
**Configuration & Architecture**:
- [Configuration](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/configuration.md)
- [Dependency Injection](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/dependency-injection.md)
- [AOP](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/aop.md)
- [Build Configuration](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/build-configuration.md)
**Data & Web**:
- [Data Access](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/data-access.md)
- [Web MVC](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/web-mvc.md)
- [REST APIs](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/rest-apis.md)
**Quality & Operations**:
- [Security](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/security.md)
- [Testing](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/testing.md)
- [Performance](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/performance.md)
- [Observability](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/observability.md)
- [Deployment](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/deployment.md)
- [Code Quality](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/code-quality.md)
**Domain & Design**:
- [DDD Standards](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/ddd-standards.md)
- [API Standards](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/api-standards.md)
- [Concurrency Standards](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/concurrency-standards.md)
- [Error Handling Standards](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/error-handling-standards.md)
- [Version Migration](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring/version-migration.md)
---
## Spring Boot Standards
**Authoritative Source**: [docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/README.md](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/README.md)
**Foundation**: Builds on Spring Framework standards above.
### Auto-configuration and Starters
- Use Spring Boot starters for dependency management
- Customize auto-configuration with `application.yml` properties
- Exclude unnecessary auto-configurations explicitly
- Document custom auto-configurations
### Configuration Properties
- Use `@ConfigurationProperties` for type-safe configuration
- Group related properties in dedicated classes
- Validate configuration with Bean Validation annotations
- Use profiles for environment-specific configuration
### REST API Development
- Use `@RestController` for REST endpoints
- Apply `@Valid` for request validation
- Implement global exception handling with `@ControllerAdvice`
- Use HATEOAS for hypermedia-driven APIs
- Document APIs with OpenAPI/Swagger
### Spring Boot Data Access
- Use Spring Data JPA repositories
- Prefer derived query methods over `@Query`
- Apply `@Transactional` at service layer
- Use `@DataJpaTest` for repository testing
### Spring Boot Security
- Use Spring Security with OAuth2/JWT
- Implement method-level security with `@PreAuthorize`
- Configure CORS for API access
- Use `@AuthenticationPrincipal` for user context
### Spring Boot Testing
- Use `@SpringBootTest` for integration tests
- Apply test slices: `@WebMvcTest`, `@DataJpaTest`, `@JsonTest`
- Use TestContainers for external dependencies
- Mock external services with `@MockBean`
### Observability
- Enable Spring Boot Actuator for monitoring
- Expose custom metrics with Micrometer
- Implement custom health indicators
- Use structured logging with Logback
### Spring Boot Comprehensive Documentation
**Core Patterns**:
- [Idioms](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/idioms.md)
- [Best Practices](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/best-practices.md)
- [Anti-Patterns](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/anti-patterns.md)
**Configuration & Architecture**:
- [Configuration](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/configuration.md)
- [Dependency Injection](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/dependency-injection.md)
- [AOP](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/aop.md)
**Data & Web**:
- [Data Access](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/data-access.md)
- [REST APIs](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/rest-apis.md)
- [WebFlux Reactive](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/webflux-reactive.md)
**Quality & Operations**:
- [Security](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/security.md)
- [Testing](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/testing.md)
- [Performance](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/performance.md)
- [Observability](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/observability.md)
- [Deployment](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/deployment.md)
**Domain & Design**:
- [Domain-Driven Design](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/domain-driven-design.md)
- [Functional Programming](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/functional-programming.md)
- [Version Migration](../../../docs/explanation/software-engineering/platform-web/tools/jvm-spring-boot/version-migration.md)
---
## Related Skills
- docs-applying-content-quality
- repo-practicing-trunk-based-development
Files in this skill
- SKILL.md
- source.json
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.