If you are new to Spring Framework, or you know Spring but are new to Java configuration, take this as your first course. In this step-by-step video tutorial, we are first going to learn how to quickly create a new Spring application, and then we are going to dive into the fundamentals of the dependency injection (IoC) features of Spring using Java and annotation based configuration, which is going to be extremely useful to you when taking any other course on Spring Framework. Dependency Injection in Spring Framework is very vast, and a common real world developer needs to be readily knowing only a handful of commonly useful features. We are going to cover that handful of useful things here, to get you started developing real world applications fast. Later, when you need, you can always refer to Spring's documentation for the less commonly used features. That said, here we are going to cover many key features useful in real world development, like Spring profiles, externalizing configuration etc., which are important for real world development, but you will not find those covered in many other tutorials. Also, as a bonus, I am going to show you how simple it has become to send SMTP mails after the release of Spring Boot 1.2. If you are new to Spring or Java configuration, I would highly recommend that before taking any other Spring course, you should take this course first. You should be knowing Java to be able to follow this course. Knowledge of web development will help, because in some examples we have used a bit of Spring MVC, but is not needed. This course also serves as the Module I of our full course "Spring Framework Rapid Tutorial For Real World Development."