Introduction
Angular 1 gave you a hodgepodge of different service types. Many of them had a great deal of overlap. Many of them were confusing. And all of them were singletons.
Angular 2 has totally thrown away this concept. In its place, there is a shiny new dependency injection system that is far more extensible and sensible than its predecessor. It allows you to have atomic and non-atomic service types, aliasing, factories, and all kinds of incredibly useful tools for use in your application.
If you are looking to use services much in the same way as earlier, you will find that your understanding of service types will easily carry over to the new system. But for developers who want more out of their applications, the new world of dependency injection is incredibly powerful and obviously built for applications that can scale.