@Transactional is implemented via Spring AOP proxies: before entering the method Spring opens a transaction, and on exit it commits or rolls back based on exceptions and rollback rules. Propagation and isolation are configurable; self‑invocation bypasses the proxy.