Transactions, Spring.
UserService, the one you wrote. And other beans, like your UserRestController will never know that they are talking to a proxy, and not the real thing. Imagine the following two transactional classes. @Service public class UserService { @Autowired private InvoiceService invoiceService; @Autowired