Initial implementation with Spring annotation support