BMAD-METHOD/expansion-packs/bmad-java/data/java-tech-stack-kb.md

130 lines
3.6 KiB
Markdown

# Java Tech Stack Knowledge Base
## Java 21 Features
### Language Features
- **Pattern Matching**: Enhanced switch expressions and pattern matching
- **Records**: Immutable data carriers
- **Sealed Classes**: Restricted class hierarchies
- **Text Blocks**: Multi-line string literals
- **Local Variable Type Inference**: `var` keyword
- **Virtual Threads**: Lightweight concurrency
- **Foreign Function & Memory API**: Interop with native code
### Performance Improvements
- **ZGC**: Low-latency garbage collector
- **Shenandoah**: Concurrent garbage collector
- **JIT Compiler**: Enhanced optimization
- **Memory Management**: Improved heap management
## Spring Boot Ecosystem
### Core Modules
- **Spring Boot Starter Web**: Web applications and REST APIs
- **Spring Boot Starter Security**: Authentication and authorization
- **Spring Boot Starter Data JPA**: Data persistence with JPA
- **Spring Boot Starter Test**: Testing framework integration
- **Spring Boot Starter Actuator**: Production-ready features
### Spring Cloud Modules
- **Spring Cloud Gateway**: API Gateway
- **Spring Cloud Netflix**: Service discovery and load balancing
- **Spring Cloud Config**: Configuration management
- **Spring Cloud Sleuth**: Distributed tracing
- **Spring Cloud Stream**: Event-driven microservices
## Maven Configuration
### Project Structure
```
project/
├── src/
│ ├── main/
│ │ ├── java/
│ │ └── resources/
│ └── test/
│ ├── java/
│ └── resources/
├── pom.xml
└── README.md
```
### Essential Plugins
- **maven-compiler-plugin**: Java compilation
- **maven-surefire-plugin**: Unit testing
- **maven-failsafe-plugin**: Integration testing
- **spring-boot-maven-plugin**: Spring Boot packaging
- **dockerfile-maven-plugin**: Docker image building
## AWS Services
### Compute Services
- **Amazon EC2**: Virtual machines
- **AWS Lambda**: Serverless compute
- **Amazon ECS**: Container service
- **Amazon EKS**: Kubernetes service
- **AWS Fargate**: Serverless containers
### Database Services
- **Amazon RDS**: Relational databases
- **Amazon Aurora**: MySQL/PostgreSQL compatible
- **Amazon DynamoDB**: NoSQL database
- **Amazon DocumentDB**: MongoDB compatible
### Networking & Security
- **Amazon VPC**: Virtual private cloud
- **AWS API Gateway**: API management
- **AWS Load Balancer**: Traffic distribution
- **AWS IAM**: Identity and access management
- **AWS Secrets Manager**: Secrets management
### Monitoring & Logging
- **Amazon CloudWatch**: Monitoring and logging
- **AWS X-Ray**: Distributed tracing
- **Amazon CloudTrail**: API logging
- **AWS Config**: Resource configuration
## Best Practices
### Java 21 Development
- Use modern Java features (records, pattern matching)
- Implement proper exception handling
- Follow naming conventions
- Use immutable objects when possible
- Optimize for performance
### Spring Boot Development
- Use Spring Boot starters for dependencies
- Implement proper configuration management
- Use Spring profiles for environment-specific config
- Implement proper error handling
- Use Spring Boot Actuator for monitoring
### Maven Best Practices
- Use dependency management for version control
- Implement proper plugin configuration
- Use profiles for different environments
- Implement proper testing configuration
- Use Maven wrapper for consistent builds
### AWS Best Practices
- Design for failure and scalability
- Implement proper security practices
- Use AWS managed services when possible
- Implement proper monitoring and logging
- Optimize for cost and performance