For the past decade, Spring has been famous for its dependency injection feature which helps Java developers build loosely coupled system. Put simply, users just need to focus on abstraction provided by interface, then instance of concrete implementation will be ready for use. As cloud become increasingly popular in recent years, how to exploit the auto-scaling and auto-provisioning features provided by cloud environment and loose coupling with specific cloud vendors becomes an interesting challenge.