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

Tuesday, 3 February 2026

AWS SES DKIM & Route 53 Integration Guide

AWS SES DKIM & Route 53 Integration Guide

1. Purpose

This document explains how to configure DKIM (DomainKeys Identified Mail) for a domain using:

  • AWS Simple Email Service (SES)

  • Amazon Route 53 (DNS provider)

DKIM improves email deliverability and prevents emails from being marked as spam by verifying that messages are authorized by the domain owner.


2. Prerequisites

  • AWS account with access to:

    • SES

    • Route 53

  • A domain name (example: sendproperty.com)

  • Domain hosted in Route 53 Hosted Zone

  • SES configured in the correct region (ex: us-east-1)


3. What is DKIM?

DKIM adds a digital signature to outgoing emails.
Receiving mail servers (Gmail, Outlook, Yahoo, etc.) validate this signature using DNS records published for your domain.

AWS SES provides 3 CNAME records for DKIM authentication.


4. Step 1: Verify Domain in AWS SES

  1. Login to AWS Console

  2. Go to Simple Email Service (SES)

  3. Select the correct region

  4. Navigate to:

    Configuration → Verified identities
  5. Click Create identity

  6. Choose:

    • Identity type: Domain

    • Enter your domain (example: sendproperty.com)

  7. Enable:
    ✅ DKIM authentication

  8. Click Create identity


5. Step 2: Get DKIM CNAME Records from SES

After creating the identity, SES generates 3 DKIM CNAME records:

Example:

Record NameTypeValue
abc123._domainkey.sendproperty.comCNAMEabc123.dkim.amazonses.com
def456._domainkey.sendproperty.comCNAMEdef456.dkim.amazonses.com
ghi789._domainkey.sendproperty.comCNAMEghi789.dkim.amazonses.com

These records must be added in Route 53.


6. Step 3: Add DKIM Records in Route 53

  1. Open AWS Console → Route 53

  2. Go to:

    Hosted zones → yourdomain.com
  3. Click Create record

  4. For each DKIM record:

Record 1

  • Record name: abc123._domainkey.sendproperty.com

  • Record type: CNAME

  • Value: abc123.dkim.amazonses.com

  • TTL: Default

  • Routing policy: Simple

Click Create record

Repeat the same for all 3 records.


7. Step 4: Verify DKIM Status

  1. Go back to:

    SES → Verified identities → your domain
  2. Check DKIM status

It should change from:

Pending → Verified

This may take:

  • 5 to 30 minutes (sometimes up to 24 hours)


8. (Optional but Recommended) Add SPF Record

Add this TXT record in Route 53:

  • Type: TXT

  • Name: @

  • Value:

    v=spf1 include:amazonses.com ~all

This allows SES servers to send emails on behalf of your domain.


9. (Optional) Enable DMARC

Add TXT record:

  • Type: TXT

  • Name: _dmarc.yourdomain.com

  • Value:

    v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com;

DMARC improves security and reporting.


10. Common Issues & Troubleshooting

❌ DKIM stuck in Pending

Possible causes:

  • Records not added correctly

  • Wrong SES region

  • Domain added twice in record name

  • Not using CNAME type

  • DNS propagated delay

✅ Check using dig/nslookup

nslookup abc123._domainkey.yourdomain.com

Should return:

abc123.dkim.amazonses.com

11. Best Practices

  • Always enable DKIM for production domains

  • Use a dedicated subdomain for sending emails (example: mail.yourdomain.com)

  • Configure SPF + DKIM + DMARC together

  • Monitor bounce and complaint notifications in SES


12. Architecture Flow

Application → AWS SES → Recipient Mail Server ↓ DKIM verified via Route53 DNS

13. Conclusion

After successful configuration:

  • SES can sign emails with DKIM

  • Mail servers trust your domain

  • Email deliverability improves

  • Spam probability reduces


If you want, I can generate this same document in:
PDF format
Word document (.docx)
Confluence / Wiki style
Short version (1-page checklist)

Just say which format you want:

PDF / Word / Wiki / Checklist 

Thursday, 8 January 2026

Git revert vs cherry pick

 I have a main branch and a development branch. I merged development into main, but later realized that the changes should not have gone into main. Even though several commits were added to main after the merge, the correct and safe way to roll back only the merged changes is to revert the merge commit, not reset the branch.

Using git revert -m 1 <merge_commit_hash> creates a new commit that undoes only the changes introduced by the merge while keeping all subsequent commits intact. This approach is safe for shared branches and preserves Git history.

git cherry-pick, on the other hand, is used to selectively copy specific commits from one branch to another. It is useful when only certain fixes or features are needed, but it should not be used for rolling back a merge. For rollback scenarios, git revert is the correct choice; for selectively applying commits, git cherry-pick is appropriate.

Wednesday, 7 January 2026

stream performance testing

 https://medium.com/javarevisited/high-performance-programming-with-java-streams-debeb374008f