I need to inject by @Autowired concrete implementation of a service class.
Service interface:
public interface PostService {
...
}
Implementation:
@Service("postServiceImpl")
public class PostServiceImpl implements PostService {
...
}
Methods in the service are with @ Transactional annotation
And now I want to inject postServiceImpl to my controller - because I need to use one method from the implementation, that is not in the interface:
@Autowired
@Qualifier("postServiceImpl")
private PostServiceImpl postService;
I get NoSuchBeanDefinitionException with the following message:
No qualifying bean of type [ (...) .PostServiceImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency.
when I change the field in my controller to:
private PostService postService
it works, but I can't use a specific method from PostServiceImpl.