Sunday, 3 May 2026

squash and merge

 

🔹 Step-by-step (squash your 5 commits into 1)

1. Go to your branch

git checkout your-feature-branch

2. Start interactive rebase (last 5 commits)

git rebase -i HEAD~5

3. You’ll see something like:

pick a1b2c3 add login UI
pick b2c3d4 fix bug
pick c3d4e5 update API
pick d4e5f6 fix typo
pick e5f6g7 refactor code

4. Change it to:

👉 Keep first as pick, rest as squash (or s)

pick a1b2c3 add login UI
squash b2c3d4 fix bug
squash c3d4e5 update API
squash d4e5f6 fix typo
squash e5f6g7 refactor code

5. Save & close editor

Git will now ask for a final commit message

Replace with something clean:

Add login UI with API integration, bug fixes, and refactoring

6. Done 🎉

Now all 5 commits = 1 commit


🔹 Important (don’t skip this)

If your branch is already pushed to remote:

git push --force

⚠️ This rewrites history—only do this on your feature branch, not shared branches like main.


🔹 Shortcut (if you don’t care about messages)

You can also do:

git reset --soft HEAD~5
git commit -m "Add login feature with all fixes"

🔹 Pro tip (real-world)

  • Use rebase squash → before PR
  • Use Squash & Merge → during PR
  • Avoid messy commits in main

If you want next level:
I can show how companies enforce this using Git hooks / CI rules (very useful for team lead role).

what it mens

Got it—you’re asking what this actually means 👇

git reset --soft HEAD~5
git commit -m "Add login feature with all fixes"

🔹 Simple Meaning

👉 This is a shortcut way to squash commits into one

Instead of using rebase -i, this does:

  1. Go back 5 commits
  2. Keep all changes in staging
  3. Create 1 new commit

🔹 Step-by-step explanation

git reset --soft HEAD~5

👉 Break it down:

  • HEAD~5 = go back 5 commits
  • reset = move branch pointer backward
  • --soft = DO NOT delete changes, keep them staged

So after this command:

✔ All 5 commits are removed
✔ But their code changes are still there
✔ And already staged (ready to commit)


git commit -m "..."

Now you create one new clean commit:

Add login feature with all fixes

🔹 Visual understanding

Before:

commit1 -> commit2 -> commit3 -> commit4 -> commit5 (HEAD)

After reset:

(no commits)
but all changes are staged

After new commit:

single commit (combined work)

🔹 Key difference vs rebase

MethodControlUse case
rebase -iFull controlBest for clean history
reset --softQuick & simpleFast squash

🔹 Important warning ⚠️

If already pushed:

git push --force

Otherwise remote will still have old commits.


🔹 One-line understanding

👉 git reset --soft HEAD~5 = remove last 5 commits but keep their changes staged


If you want, I can explain:

  • difference between --soft, --mixed, --hard (very important for interviews)

Tuesday, 28 April 2026

AWS S3 bucket tier.

 S3 Storage Classes

├── Standard (manual, hot data)

├── Intelligent-Tiering (auto-managed)

│     ├── Frequent Tier ✅

│     ├── Infrequent Tier ✅

│     ├── Archive Tier ❌

│     └── Deep Archive Tier ❌

├── Standard-IA (manual, low cost, retrieval fee)

├── Glacier Flexible Retrieval ❌ (restore required)

└── Glacier Deep Archive ❌ (slow restore)



Wednesday, 15 April 2026

Wednesday, 18 March 2026

Design pattern

Let’s simplify everything from Refactoring Guru Design Patterns into very easy (lemon 😄) terms + real-world + Java/Spring examples.


🧠 First: What is a Design Pattern?

👉 A design pattern = proven solution to common coding problem

Think like:

“This problem already happened before → smart people solved it → reuse that solution”


🧩 3 Types of Design Patterns

1. 🏗️ Creational (Object banana ka tareeka)

How objects are created

2. 🧱 Structural (Object ko kaise jode)

How objects are structured/connected

3. 🔄 Behavioral (Object kaise behave kare)

How objects communicate


🏗️ 1. CREATIONAL PATTERNS (Creation)

1. Singleton 🧍

👉 Only one object in whole system

🍋 Lemon Example:

There is only one Aadhaar database

💻 Java Example:

class Config {
    private static Config instance = new Config();
    private Config() {}
    public static Config getInstance() {
        return instance;
    }
}

🔥 Real Use:

  • DB connection pool

  • Redis client

  • Spring Beans (default singleton)


2. Factory 🏭

👉 Object create karne ka decision system lega

🍋 Example:

You order coffee

  • Latte / Cappuccino / Espresso
    System decides what to create

💻 Java Example:

interface Notification {}
class Email implements Notification {}
class SMS implements Notification {}

class Factory {
    public static Notification get(String type) {
        if (type.equals("email")) return new Email();
        return new SMS();
    }
}

🔥 Real Use:

  • Payment methods

  • Notification service


3. Builder 🧱

👉 Complex object step-by-step banana

🍋 Example:

Ordering pizza

  • size

  • cheese

  • toppings

💻 Example:

User user = User.builder()
    .name("Pawan")
    .age(30)
    .build();

🔥 Real Use:

  • DTO creation

  • Immutable objects


🧱 2. STRUCTURAL PATTERNS

4. Adapter 🔌

👉 Incompatible cheez ko compatible banana

🍋 Example:

Indian charger → US socket adapter

💻 Example:

Old API → New API wrapper

🔥 Real Use:

  • Third-party API integration (very important for you!)


5. Decorator 🎁

👉 Existing object ko extra feature dena

🍋 Example:

Coffee + milk + chocolate

💻 Example:

class Coffee {}
class MilkDecorator extends Coffee {}

🔥 Real Use:

  • Logging

  • Security layers


6. Facade 🏢

👉 Complex system ko simple interface dena

🍋 Example:

Swiggy app → kitchen, delivery, payment sab hide

💻 Example:

class OrderService {
    void placeOrder() {
        payment();
        inventory();
        delivery();
    }
}

🔥 Real Use:

  • Microservice orchestration


🔄 3. BEHAVIORAL PATTERNS

7. Strategy 🎯

👉 Multiple ways to do same task

🍋 Example:

Travel options:

  • Car

  • Bike

  • Train

💻 Example:

interface PaymentStrategy {
    void pay();
}
class UPI implements PaymentStrategy {}
class Card implements PaymentStrategy {}

🔥 Real Use:

👉 Your AWS SES email system can use this!


8. Observer 👀

👉 One change → multiple systems notified

🍋 Example:

YouTube subscribe → notification

💻 Example:

observer.update();

🔥 Real Use:

  • SNS, Kafka, Event-driven systems


9. Command 📦

👉 Request ko object bana do

🍋 Example:

Remote control button

💻 Example:

interface Command {
    void execute();
}

🔥 Real Use:

  • Queue (SQS)

  • Task execution


🚀 Most Important for YOU (Based on your work)

Since you're working with:

  • Spring Boot

  • AWS SES, SQS

  • Microservices

👉 Focus on:

  1. Strategy → email sending logic

  2. Factory → notification type

  3. Observer → event system (SNS/SQS)

  4. Facade → service layer

  5. Builder → DTO creation


🎯 Simple Memory Trick

TypeMeaning
CreationalObject kaise banega
StructuralObject kaise judega
BehavioralObject kaise behave karega

💡 Real-world Example (Your Project)

Your Email System:

  • Factory → choose Email/SMS

  • Strategy → SES / SMTP

  • Observer → Bounce/Delivery events

  • Command → SQS message

  • Facade → EmailService




    Perfect — let’s go deep into Creational Patterns (this is where strong backend engineers stand out in interviews + system design).

    I’ll explain:

    • Core idea (simple 🍋)

    • When to use (important!)

    • Internal thinking (how it works)

    • 6+ real-world examples (with Java/Spring mapping)


    🏗️ CREATIONAL DESIGN PATTERNS (Deep Dive)

    👉 These patterns solve:

    “Object kaise banega — simple, controlled, flexible way mein?”


    1. 🧍 Singleton Pattern (One instance only)

    🍋 Simple Idea:

    System mein sirf ek hi object allowed


    🧠 Why needed?

    • Avoid multiple expensive objects

    • Maintain shared state


    ⚙️ Internal Concept:

    • Private constructor

    • Static instance

    • Global access method


    💻 Production-Ready Java (Thread-safe)

    public class ConfigManager {
    
        private static volatile ConfigManager instance;
    
        private ConfigManager() {}
    
        public static ConfigManager getInstance() {
            if (instance == null) {
                synchronized (ConfigManager.class) {
                    if (instance == null) {
                        instance = new ConfigManager();
                    }
                }
            }
            return instance;
        }
    }
    

    🔥 Real-world examples (6+)

    1. DB Connection Pool

    DataSource ds = DataSourceSingleton.getInstance();
    

    2. Redis Client

    Jedis jedis = RedisManager.getInstance().getClient();
    

    3. Logger (Log4j / SLF4J)

    👉 Only one logger config

    4. Spring Beans (Default)

    @Service
    class UserService {}
    

    👉 Spring internally uses Singleton

    5. Cache Manager

    CacheManager.getInstance().put(key, value);
    

    6. Configuration Loader

    ConfigManager.getInstance().get("db.url");
    

    ⚠️ When NOT to use:

    • When object needs different states (use prototype)


    2. 🏭 Factory Pattern (Object creation decision hidden)

    🍋 Simple Idea:

    “Tum bas bolo kya chahiye — system bana ke dega”


    🧠 Why needed?

    • Remove new keyword everywhere

    • Loose coupling


    💻 Example (Advanced)

    interface Payment {
        void pay();
    }
    
    class UPI implements Payment {
        public void pay() { System.out.println("UPI"); }
    }
    
    class Card implements Payment {
        public void pay() { System.out.println("Card"); }
    }
    
    class PaymentFactory {
        public static Payment getPayment(String type) {
            switch(type) {
                case "UPI": return new UPI();
                case "CARD": return new Card();
                default: throw new IllegalArgumentException();
            }
        }
    }
    

    🔥 Real-world examples

    1. Payment System

    Payment p = PaymentFactory.getPayment("UPI");
    

    2. Notification System

    Notification n = NotificationFactory.get("EMAIL");
    

    3. Spring BeanFactory

    👉 Spring internally uses Factory


    4. AWS SDK Clients

    AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();
    

    5. JDBC DriverManager

    Connection con = DriverManager.getConnection(url);
    

    6. Parser System

    Parser parser = ParserFactory.get("JSON");
    

    ⚠️ Problem solved:

    👉 No if-else everywhere


    3. 🧱 Builder Pattern (Complex object creation)

    🍋 Simple Idea:

    “Step-by-step object banana”


    🧠 Why needed?

    • Too many constructor arguments

    • Optional fields


    💻 Example

    class User {
        private String name;
        private int age;
        private String email;
    
        public static class Builder {
            private String name;
            private int age;
            private String email;
    
            public Builder setName(String name) {
                this.name = name;
                return this;
            }
    
            public Builder setAge(int age) {
                this.age = age;
                return this;
            }
    
            public Builder setEmail(String email) {
                this.email = email;
                return this;
            }
    
            public User build() {
                User u = new User();
                u.name = this.name;
                u.age = this.age;
                u.email = this.email;
                return u;
            }
        }
    }
    

    🔥 Real-world examples

    1. HTTP Request (Spring)

    ResponseEntity.ok().header("x","y").body(data);
    

    2. Lombok Builder

    User user = User.builder()
        .name("Pawan")
        .email("p@test.com")
        .build();
    

    3. AWS SES Email

    SendEmailRequest request = new SendEmailRequest()
        .withDestination(...)
        .withMessage(...);
    

    4. Kafka Message Builder

    ProducerRecord record = new ProducerRecord(topic, key, value);
    

    5. Query Builder (JPA)

    criteriaBuilder.createQuery(User.class);
    

    6. Docker Config (Your project!)

    👉 step-by-step container config


    4. 🧬 Prototype Pattern (Clone object)

    🍋 Simple Idea:

    “Naya object banane ke bajaye copy karo”


    🧠 Why needed?

    • Object creation expensive hai


    💻 Example

    class User implements Cloneable {
        String name;
    
        public Object clone() throws CloneNotSupportedException {
            return super.clone();
        }
    }
    

    🔥 Real-world examples

    1. Template Email Copy

    Email copy = original.clone();
    

    2. Spring Prototype Scope

    @Scope("prototype")
    @Bean
    public User user() { return new User(); }
    

    3. Object Copy in Cache

    return cachedObject.clone();
    

    4. Game Development (Characters)


    5. Document Templates


    6. Request Retry Copy

    👉 same request clone


    5. 🏢 Abstract Factory (Factory of factories)

    🍋 Simple Idea:

    “Factory bhi dynamically choose hogi”


    🧠 Why needed?

    • Multiple related object families


    💻 Example

    interface UIFactory {
        Button createButton();
    }
    
    class WindowsFactory implements UIFactory {
        public Button createButton() { return new WindowsButton(); }
    }
    
    class MacFactory implements UIFactory {
        public Button createButton() { return new MacButton(); }
    }
    

    🔥 Real-world examples

    1. Multi-cloud system (AWS/Azure)

    CloudFactory factory = getFactory("AWS");
    factory.createS3();
    

    2. DB Support (MySQL / Mongo)

    DAOFactory factory = getFactory("MYSQL");
    

    3. UI Themes


    4. Payment Gateway Providers

    GatewayFactory.get("RAZORPAY");
    

    5. Messaging Systems

    Factory → Kafka / RabbitMQ
    

    6. Your Microservice Design

    👉 Per-tenant implementation


    🧠 Interview-Level Insight

    Difference:

    PatternKey Idea
    SingletonOne instance
    FactoryObject creation logic
    BuilderStep-by-step creation
    PrototypeCopy object
    Abstract FactoryGroup of factories

    🚀 YOUR PROJECT MAPPING (VERY IMPORTANT)

    For your AWS Email System:

    ComponentPattern
    SES / SMTP switchStrategy + Factory
    Email RequestBuilder
    Event handlingObserver
    ConfigSingleton
    Multi-providerAbstract Factory


    Perfect, Pawan — let’s design a real production-level Spring Boot microservice using ALL creational patterns together.

    I’ll build this around something relevant to your work:
    👉 Email Notification Service (AWS SES / SMTP / Future providers)


    🚀 🏗️ SYSTEM OVERVIEW

    🎯 Goal:

    Send emails using different providers dynamically:

    • AWS SES

    • SMTP

    • Future: SendGrid


    🧩 WHERE EACH PATTERN FITS

    PatternUsage
    SingletonConfig / AWS clients
    FactoryChoose provider
    Abstract FactoryCloud provider family
    BuilderEmail request creation
    PrototypeRetry email copy

    📦 HIGH-LEVEL FLOW

    Controller → Service → Factory → Provider → Send Email
                             ↓
                        Builder (email)
                             ↓
                      Prototype (retry)
    

    1️⃣ 🧍 Singleton → Config Manager

    👉 One config across system

    @Component
    public class AppConfig {
    
        private final Map<String, String> config = new HashMap<>();
    
        public AppConfig() {
            config.put("provider", "SES");
        }
    
        public String get(String key) {
            return config.get(key);
        }
    }
    

    ✅ Spring makes it singleton automatically


    2️⃣ 🧱 Builder → Email Object

    👉 Complex object (to, subject, body, attachments)

    public class Email {
    
        private String to;
        private String subject;
        private String body;
    
        private Email() {}
    
        public static class Builder {
            private String to;
            private String subject;
            private String body;
    
            public Builder to(String to) {
                this.to = to;
                return this;
            }
    
            public Builder subject(String subject) {
                this.subject = subject;
                return this;
            }
    
            public Builder body(String body) {
                this.body = body;
                return this;
            }
    
            public Email build() {
                Email email = new Email();
                email.to = this.to;
                email.subject = this.subject;
                email.body = this.body;
                return email;
            }
        }
    }
    

    3️⃣ 🏭 Factory → Provider Selection

    public interface EmailProvider {
        void send(Email email);
    }
    

    Implementations:

    @Component
    public class SESProvider implements EmailProvider {
        public void send(Email email) {
            System.out.println("Sending via SES");
        }
    }
    
    @Component
    public class SMTPProvider implements EmailProvider {
        public void send(Email email) {
            System.out.println("Sending via SMTP");
        }
    }
    

    Factory

    @Component
    public class EmailProviderFactory {
    
        @Autowired
        private SESProvider ses;
    
        @Autowired
        private SMTPProvider smtp;
    
        public EmailProvider getProvider(String type) {
            if ("SES".equalsIgnoreCase(type)) return ses;
            return smtp;
        }
    }
    

    4️⃣ 🏢 Abstract Factory → Cloud Providers

    👉 Suppose future:

    • AWS (SES, SQS)

    • Azure (Email, Queue)


    public interface CloudFactory {
        EmailProvider createEmailProvider();
    }
    

    AWS Factory

    @Component
    public class AWSFactory implements CloudFactory {
    
        @Autowired
        private SESProvider ses;
    
        public EmailProvider createEmailProvider() {
            return ses;
        }
    }
    

    Azure Factory (future)

    @Component
    public class AzureFactory implements CloudFactory {
    
        public EmailProvider createEmailProvider() {
            return new SMTPProvider();
        }
    }
    

    5️⃣ 🧬 Prototype → Retry Email

    👉 Same email clone for retry

    public class Email implements Cloneable {
    
        public Email clone() {
            try {
                return (Email) super.clone();
            } catch (CloneNotSupportedException e) {
                throw new RuntimeException(e);
            }
        }
    }
    

    Retry Logic

    public void retry(Email email) {
        Email copy = email.clone();
        send(copy);
    }
    

    6️⃣ 🎯 SERVICE LAYER (Putting everything together)

    @Service
    public class EmailService {
    
        @Autowired
        private AppConfig config;
    
        @Autowired
        private EmailProviderFactory factory;
    
        public void sendEmail(String to, String subject, String body) {
    
            // Builder
            Email email = new Email.Builder()
                    .to(to)
                    .subject(subject)
                    .body(body)
                    .build();
    
            // Factory
            String providerType = config.get("provider");
            EmailProvider provider = factory.getProvider(providerType);
    
            provider.send(email);
        }
    }
    

    7️⃣ 🌐 CONTROLLER

    @RestController
    @RequestMapping("/email")
    public class EmailController {
    
        @Autowired
        private EmailService service;
    
        @PostMapping
        public String send() {
            service.sendEmail("test@mail.com", "Hello", "Body");
            return "Sent";
        }
    }
    

    🔥 REAL PRODUCTION ENHANCEMENTS (VERY IMPORTANT)

    Since you're working on large-scale email system, add:


    ✅ 1. Strategy (Bonus pattern)

    Switch providers dynamically:

    Map<String, EmailProvider> providers;
    

    ✅ 2. Add SQS (Command pattern)

    queue.send(emailRequest);
    

    ✅ 3. Observer (SES events)

    • Bounce

    • Delivery

    • Complaint


    ✅ 4. Rate Limiting

    Avoid SES blocking (you faced this already)


    ✅ 5. Retry with Backoff

    retry after 1s → 5s → 10s
    

    🧠 HOW INTERVIEWER WILL TEST YOU

    They will ask:

    👉 “Design email system supporting multiple providers”

    Your answer:

    • Builder → Email object

    • Factory → provider selection

    • Strategy → sending logic

    • Singleton → config

    • Prototype → retry

    🔥 This is staff-level answer


    🚀 NEXT LEVEL (I recommend)

    If you want to go even deeper:

    👉 I can upgrade this to:

    • Kafka-based event system

    • Fully async microservices

    • Circuit breaker (Resilience4j)

    • Multi-tenant email system (VERY IMPORTANT FOR YOU)

    Just tell me:
    👉 “Make it production-level architecture”

Tuesday, 17 February 2026

Spring boot annotation list

✅ 1. Core Spring / IOC & Bean Management

Stereotype annotations

@Component

@Service

@Repository

@Controller

@RestController

Configuration & Beans

@Configuration

@Bean

@Import

@ImportResource

@ComponentScan

@PropertySource

@Profile

@Scope

@Lazy

@DependsOn

@Primary

@Qualifier

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 1/2417/02/2026, 16:47 Spring Boot Annotations List

Dependency Injection

@Autowired

@Value

@Required

✅ 2. Spring Boot Specific

@SpringBootApplication

@EnableAutoConfiguration

@ConfigurationProperties

@EnableConfigurationProperties

@SpringBootTest

@TestConfiguration

@MockBean

@SpyBean

✅ 3. Web / MVC / REST

Controller & Mapping

@RequestMapping

@GetMapping

@PostMapping

@PutMapping

@DeleteMapping

@PatchMapping

Request handling

@RequestParam

@PathVariable

@RequestBody

@ResponseBody

@ResponseStatus

@RequestHeader

@CookieValue

@ModelAttribute

@MatrixVariable

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 2/2417/02/2026, 16:47 Exception Handling

@ExceptionHandler

@ControllerAdvice

@RestControllerAdvice

Spring Boot Annotations List

CO

RS

@CrossOrigin

✅ 4. Validation (JSR-303 / Hibernate Validator)

@Valid

@Validated

@NotNull

@NotEmpty

@NotBlank

@Size

@Min

@Max

@Positive

@Negative

@Email

@Pattern

@Future

@Past

@Digits

@AssertTrue

@AssertFalse

✅ 5. Spring Data JPA / Persistence

Repository

@Repository

@EnableJpaRepositories

Entity mapping (JPA)

@Entity

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 3/2417/02/2026, 16:47 Spring Boot Annotations List

@Table

@Id

@GeneratedValue

@Column

@Transient

@Lob

@Enumerated

@Temporal

Relations

@OneToOne

@OneToMany

@ManyToOne

@ManyToMany

@JoinColumn

@JoinTable

@MapsId

@Embedded

@Embeddable

Query

@Query

@NamedQuery

@Modifying

@Param

@Procedure

Transactions

@Transactional

✅ 6. Security (Spring Security)

@EnableWebSecurity

@EnableMethodSecurity

@Secured

@RolesAllowed

@PreAuthorize

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 4/2417/02/2026, 16:47 Spring Boot Annotations List

@PostAuthorize

@PreFilter

@PostFilter

@AuthenticationPrincipal

✅ 7. Scheduling & Async

@EnableScheduling

@Scheduled

@EnableAsync

@Async

✅ 8. Caching

@EnableCaching

@Cacheable

@CachePut

@CacheEvict

@Caching

✅ 9. Spring Cloud / Microservices (very common)

@EnableDiscoveryClient

@FeignClient

@EnableFeignClients

@LoadBalanced

@CircuitBreaker

@Retryable

@Recover

@RefreshScope

✅ 10. Messaging (Kafka / JMS / RabbitMQ)

@EnableKafka

@KafkaListener

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 5/2417/02/2026, 16:47 Spring Boot Annotations List

@SendTo

@EnableJms

@JmsListener

@RabbitListener

@RabbitHandler

✅ 11. Testing

@RunWith

@ExtendWith

@WebMvcTest

@DataJpaTest

@JdbcTest

@JsonTest

@RestClientTest

@AutoConfigureMockMvc

@AutoConfigureTestDatabase

@TestPropertySource

@ActiveProfiles

@DirtiesContext

@BeforeEach

@AfterEach

@BeforeAll

@AfterAll

@Test

✅ 12. AOP (Aspect Oriented Programming)

@Aspect

@Before

@After

@AfterReturning

@AfterThrowing

@Around

@Pointcut

@EnableAspectJAutoProxy

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 6/2417/02/2026, 16:47 Spring Boot Annotations List

✅ 13. Internationalization / Formatting

@DateTimeFormat

@NumberFormat

✅ 14. Conditional Annotations (Auto-Config magic)

@Conditional

@ConditionalOnBean

@ConditionalOnMissingBean

@ConditionalOnProperty

@ConditionalOnClass

@ConditionalOnMissingClass

@ConditionalOnWebApplication

@ConditionalOnNotWebApplication

@ConditionalOnExpression

✅ 15. Actuator

@Endpoint

@ReadOperation

@WriteOperation

@DeleteOperation

Reality Check

There is NO single official list called “all Spring Boot annotations” because:

Spring = Core + Web + Data + Security + Cloud + Test + Integration

JPA & Validation annotations come from Java EE / Jakarta

New annotations added every

version

If you really want absolute every annotation, you must scan packages:

org.springframework.*

jakarta.persistence.*

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 7/2417/02/2026, 16:47 jakarta.validation.*

org.springframework.boot.*

Spring Boot Annotations List

🎯 What I recommend for you (as a senior dev)

Master these 30 first:

less

Copy code

@SpringBootApplication

@Component

@Service

@Repository

@RestController

@Autowired

@Configuration

@Bean

@RequestMapping

@GetMapping

@PostMapping

@RequestBody

@PathVariable

@Transactional

@Entity

@Id

@OneToMany

@ManyToOne

@JoinColumn

@Query

@ExceptionHandler

@ControllerAdvice

@Scheduled

@Async

@Cacheable

@PreAuthorize

@FeignClient

@Test

@SpringBootTest

If you

want, next I can give you one of these (your choice):

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 8/2417/02/2026, 16:47 A) 📄 B) 🧠 C) 🔥 D)

Spring Boot Annotations List

PDF cheat sheet of all annotations category-wise

Diagram of Spring annotation layers

Interview-focused annotation list (top 50)

🧪

Example project showing 30 annotations used

E) Full table (Annotation | Purpose | Example)

Just reply with: A / B / C / D / E 😄

A and E

Awesome choice, Pawan 😎

Here is:

wise)

✅ A) Spring Boot Annotations – Cheat Sheet (Category-

and

✅ E) Full Table (Annotation | Purpose | Example)

You can copy this and I can convert it into a PDF for you next if you say:

👉 “Convert this into PDF”

Copy code

🅐 Spring Boot Annotation Cheat Sheet 📄

🔹 Core & IOC

less

@Component, @Service, @Repository, @Controller, @RestController

@Configuration, @Bean, @ComponentScan

@Autowired, @Qualifier, @Primary

@Value, @PropertySource

@Profile, @Scope, @Lazy, @DependsOn

🔹 Spring Boot

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 9/2417/02/2026, 16:47 less

Spring Boot Annotations List

Copy code

@SpringBootApplication

@EnableAutoConfiguration

@ConfigurationProperties

@EnableConfigurationProperties

@SpringBootTest

@TestConfiguration

@MockBean, @SpyBean

🔹 Web / REST

less

@RequestMapping

@GetMapping, @PostMapping, @PutMapping, @DeleteMapping, @PatchMapping

Copy code

@RequestParam, @PathVariable

@RequestBody, @ResponseBody

@ResponseStatus

@RequestHeader, @CookieValue

@ModelAttribute

@CrossOrigin

🔹 Exception Handling

less

@ExceptionHandler

@ControllerAdvice

@RestControllerAdvice

Copy code

🔹 Validation

less

Copy code

@Valid, @Validated

@NotNull, @NotEmpty, @NotBlank

@Size, @Min, @Max

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 10/2417/02/2026, 16:47 @Email, @Pattern

@Positive, @Negative

@Future, @Past

@Digits

Spring Boot Annotations List

🔹 JPA / Hibernate

less

@Entity, @Table

@Id, @GeneratedValue

@Column, @Transient, @Lob

@OneToOne, @OneToMany, @ManyToOne, @ManyToMany

@JoinColumn, @JoinTable

@Embedded, @Embeddable

@Enumerated, @Temporal

Copy code

🔹 Spring Data

less

@Repository

@EnableJpaRepositories

@Query

@Modifying

@Param

@Transactional

Copy code

🔹 Security

less

@EnableWebSecurity

@EnableMethodSecurity

@PreAuthorize

@PostAuthorize

@Secured

Copy code

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 11/2417/02/2026, 16:47 @RolesAllowed

@AuthenticationPrincipal

Spring Boot Annotations List

🔹 Scheduling & Async

less

Copy code

@EnableScheduling

@Scheduled

@EnableAsync

@Async

🔹 Cache

less

Copy code

@EnableCaching

@Cacheable

@CachePut

@CacheEvict

@Caching

🔹 Messaging

less

Copy code

@KafkaListener

@EnableKafka

@JmsListener

@EnableJms

@RabbitListener

@RabbitHandler

🔹 Spring Cloud

less

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 12/2417/02/2026, 16:47 Spring Boot Annotations List

Copy code

@EnableDiscoveryClient

@FeignClient

@EnableFeignClients

@LoadBalanced

@RefreshScope

@Retryable

@Recover

🔹 AOP

less

@Aspect

@Before

@After

@AfterReturning

@AfterThrowing

@Around

@Pointcut

@EnableAspectJAutoProxy

Copy code

🔹 Testing

less

@RunWith / @ExtendWith

@Test

@SpringBootTest

@WebMvcTest

@DataJpaTest

@MockBean

@AutoConfigureMockMvc

@TestPropertySource

@ActiveProfiles

@DirtiesContext

@BeforeEach, @AfterEach

Copy code

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 13/2417/02/2026, 16:47 🔹 Actuator

less

Spring Boot Annotations List

@Endpoint

@ReadOperation

@WriteOperation

@DeleteOperation

Copy code

🅔 Full Table: Annotation | Purpose | Example

Annotation Purpose Example

Copy code

@SpringBootApplicatio

n

Main entry point @SpringBootApplication public

class App {}

@Component Generic bean @Component class MyBean {}

@Service Business logic layer @Service class UserService {}

@Repository DAO layer @Repository interface UserRepo

{}

@RestControllerREST controller @RestController class

UserController {}

@Autowired Inject dependency @Autowired UserService service;

@Bean Create bean manually @Bean DataSource ds()

@Configuration Config class @Configuration class AppConfig

{}

@GetMapping HTTP GET @GetMapping("/users")

@PostMapping HTTP POST @PostMapping("/users")

@RequestBodyMap JSON to object public save(@RequestBody User u)

@PathVariable U

R

L variable @PathVariable int id

@RequestParam Query param @RequestParam String name

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 14/2417/02/2026, 16:47 Spring Boot Annotations List

Annotation Purpose Example

@ResponseStatus Custom HTTP status @ResponseStatus(HttpStatus.OK)

@ExceptionHandler Handle exception @ExceptionHandler(Exception.clas

s)

@ControllerAdvice Global exception

handler

@ControllerAdvice class GlobalEx

{}

@Entity JPA entity @Entity class User {}

@Id Primary key @Id Long id;

@GeneratedValue Auto PK @GeneratedValue(strategy=AUTO)

@OneToManyRelationship @OneToMany List<Order>

@ManyToOneRelationship @ManyToOne User user

@JoinColumn FK column @JoinColumn(name="user_id")

@Query Custom query @Query("select u from User u")

@Transactional Transaction mgmt @Transactional public void

save()

@Valid Trigger validation public save(@Valid User u)

@NotNull Field validation @NotNull String name;

@EnableScheduling Enable scheduler @EnableScheduling

@Scheduled Cron job @Scheduled(cron="0 0 * * *")

@EnableAsync Enable async @EnableAsync

@AsyncR

un async @Async public void task()

@Cacheable Cache result @Cacheable("users")

@PreAuthorize Security rule @PreAuthorize("hasRole('ADMIN')"

)

@FeignClientREST client @FeignClient("order-service")

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 15/2417/02/2026, 16:47 Spring Boot Annotations List

Annotation Purpose Example

@Aspect AOP class @Aspect class LogAspect {}

@Before Before advice @Before("execution(*)")

@Test Unit test @Test void testSave()

@SpringBootTest Full context test @SpringBootTest class TestApp {}

@MockBeanMock bean @MockBean UserService service;

@Endpoint Actuator endpoint @Endpoint(id="custom")

🎁 Next Step (Free Bonus)

I can generate for you:

✅ PDF Cheat Sheet

✅ Excel table (Annotation | Purpose | Example)

✅ Printable A4 sheet

✅ Mind map diagram

Just reply one word:

PDF or EXCEL or DIAGRAM or ALL

And I’ll generate it for you 🚀

category-wise give me annotation list

Got it 👍 You

want a pure category-wise list of Spring Boot / Spring annotations (no

explanations, no examples — just clean grouped lists).

Here is the most complete practical catalog used in real Spring Boot applications.

🟢 1. Core / IOC / Bean Management

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 16/2417/02/2026, 16:47 Spring Boot Annotations List

@Component

@Service

@Repository

@Controller

@RestController

@Configuration

@Bean

@ComponentScan

@Import

@ImportResource

@DependsOn

@Lazy

@Scope

@Primary

@Qualifier

@Profile

@PropertySource

@Value

@Autowired

@Required

@Lookup

🟢 2. Spring Boot Specific

@SpringBootApplication

@EnableAutoConfiguration

@AutoConfiguration

@ConfigurationProperties

@EnableConfigurationProperties

@ConstructorBinding

@SpringBootConfiguration

@TestConfiguration

@SpringBootTest

@MockBean

@SpyBean

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 17/2417/02/2026, 16:47 Spring Boot Annotations List

🟢 3. Web / MVC / REST

Mapping

@RequestMapping

@GetMapping

@PostMapping

@PutMapping

@DeleteMapping

@PatchMapping

Request / Response

@RequestParam

@PathVariable

@RequestBody

@ResponseBody

@ResponseStatus

@RequestHeader

@CookieValue

@ModelAttribute

@MatrixVariable

@CrossOrigin

Exception

@ExceptionHandler

@ControllerAdvice

@RestControllerAdvice

🟢 4. Validation (Jakarta / Hibernate Validator)

@Valid

@Validated

@NotNull

@NotEmpty

@NotBlank

@Size

@Min

@Max

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 18/2417/02/2026, 16:47 Spring Boot Annotations List

@Positive

@Negative

@Email

@Pattern

@Future

@Past

@Digits

@AssertTrue

@AssertFalse

🟢 5. Persistence / JPA / Hibernate

Entity

@Entity

@Table

@Id

@GeneratedValue

@Column

@Transient

@Lob

@Enumerated

@Temporal

@Version

Relations

@OneToOne

@OneToMany

@ManyToOne

@ManyToMany

@JoinColumn

@JoinTable

@MapsId

@MapKey

@OrderBy

@OrderColumn

@Embedded

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 19/2417/02/2026, 16:47 Spring Boot Annotations List

@Embeddable

🟢 6. Spring Data

@Repository

@EnableJpaRepositories

@Query

@NamedQuery

@NamedNativeQuery

@Modifying

@Param

@Procedure

@Transactional

@Lock

@EntityGraph

🟢 7. Transaction Management

@Transactional

@EnableTransactionManagement

🟢 8. Security (Spring Security)

@EnableWebSecurity

@EnableMethodSecurity

@Secured

@RolesAllowed

@PreAuthorize

@PostAuthorize

@PreFilter

@PostFilter

@AuthenticationPrincipal

🟢 9. Scheduling & Async

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 20/2417/02/2026, 16:47 Spring Boot Annotations List

@EnableScheduling

@Scheduled

@EnableAsync

@Async

🟢 10. Cache

@EnableCaching

@Cacheable

@CachePut

@CacheEvict

@Caching

🟢 11. AOP

@Aspect

@Before

@After

@AfterReturning

@AfterThrowing

@Around

@Pointcut

@EnableAspectJAutoProxy

🟢 12. Messaging (Kafka / JMS / RabbitMQ)

@EnableKafka

@KafkaListener

@SendTo

@EnableJms

@JmsListener

@RabbitListener

@RabbitHandler

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 21/2417/02/2026, 16:47 Spring Boot Annotations List

🟢 13. Spring Cloud / Microservices

@EnableDiscoveryClient

@EnableEurekaClient

@FeignClient

@EnableFeignClients

@LoadBalanced

@RefreshScope

@Retryable

@Recover

@CircuitBreaker

🟢 14. Conditional (Auto Configuration)

@Conditional

@ConditionalOnBean

@ConditionalOnMissingBean

@ConditionalOnProperty

@ConditionalOnClass

@ConditionalOnMissingClass

@ConditionalOnWebApplication

@ConditionalOnNotWebApplication

@ConditionalOnExpression

🟢 15. Actuator

@Endpoint

@ReadOperation

@WriteOperation

@DeleteOperation

@EndpointWebExtension

🟢 16. Internationalization / Formatting

@DateTimeFormat

@NumberFormat

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 22/2417/02/2026, 16:47 Spring Boot Annotations List

🟢 17. Testing

@RunWith

@ExtendWith

@Test

@BeforeEach

@AfterEach

@BeforeAll

@AfterAll

@SpringBootTest

@WebMvcTest

@DataJpaTest

@JdbcTest

@JsonTest

@RestClientTest

@AutoConfigureMockMvc

@AutoConfigureTestDatabase

@TestPropertySource

@ActiveProfiles

@DirtiesContext

⚠ Note:

There is no official single list of “every annotation” because Spring = multiple

frameworks + Jakarta EE + Spring Cloud + Testing + new

versions.

This list covers 95% of annotations used in enterprise Spring Boot projects.

If you

want, next I can give you this in:

✅ PDF cheat sheet

✅ Excel sheet

✅ Mind map diagram

✅ Top 50 most important annotations only

✅ Module-wise (spring-core, spring-web, spring-data, spring-security) list

Just say which one: PDF / EXCEL / DIAGRAM / TOP50 / M

ODULE-WISE

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 23/2417/02/2026, 16:47 Spring Boot Annotations List

https://chatgpt.com/c/69944d3b-e6c4-83a3-bde2-f701e83c8151 24/24