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