Autowired spring bean is not a proxy

Viewed 12582

I'm working on a very small application connecting to a MySQL database.

I'm trying to create table record but getting 'no transaction in progress'.

I have all the right stuff in place:

  • a service interface MyService and its implementation MyServiceImpl
  • I have annotated the service impl with @Service
  • In the controller I used the interface name for the field @Autowired MyService
  • I have the correct transaction configuration as it was originally generated by roo
  • There is a public method MyService.create(...) which MyServiceImpl implements

But,

When I remote debug and inspect the controller's myService field what I see is something like com.some.package.services.MyService@12345 (and NOT something like $Proxy73) which to me is not right, because what should be autowired is the proxy not he target bean (which is what I think this is). If I'm correct then it makes sense that there is no transaction as the annotation would only kick in when invoking a public method annotated with @Transactional on a proxy.

Please tell me why is spring injecting the target bean in this setup.

Thanks

2 Answers
Related