What is the function of the @Transactional annotation at the class level?
@Transactional
It's a transaction attribute configured by spring.security.transactions.xml config file that uses Spring's transaction implementation and validation code.
spring.security.transactions.xml
It's a transaction that must actively validate by the bytecode of a transaction using Spring's TransactionBytecodeValidator class. Default Transaction behavior rolls back on validation exception but commits on proper validation
TransactionBytecodeValidator
It creates a proxy that implements the same interface(s) as the annotated class, allowing Spring to inject behaviors before, after, or around method calls into the object being proxied.
It's a transaction that must be actively validated by Spring's TransactionValidator class using Spring's transaction validation code. Default Transaction behavior rolls back on validation exception.
TransactionValidator