Course Objectives
- After the completion of the 'Spring Framework training' Course at myTectra, you should be able to understand:
- Spring Framework training Architecture
- Spring's Dependency Injection and Autowiring feature
- Build application using Maven
- Aspect-Oriented Programming (AOP) and AspectJ
- Data access mechanisms provided by Spring
- Integrating Hibernate with Spring
- Spring MVC
- Create a web application using Spring MVC
- Integrating Apache tiles with Spring
- Integrating Struts2 and JSF with Spring
- Spring Web Flow
- Keeping your application secure
- Using log4j for logging
- Writing test cases with JUnit
- Spring Integration Framework
Who should go for this course?
This course can be taken by anyone who wants to be a Java Developer or wants to learn Spring Framework training.
Pre-requisites
Prerequisites for learning Spring Framework include basic knowledge of Java and databases.
Project Work
Towards the end of the course, you will focus on designing a CourseCalendar that provides a very optimal plan for scheduling courses.
How to schedule a large number of courses in an optimal way while fulfilling a number of constraints, such as limited availability of lecturers, student's selections of the courses. CourseCalendar should be implemented as an interactive program that
(i) Enables entering data, such as courses, the faculty members, the available facilities and some constraints related to the course schedule
(ii) Scheduling courses
(iii) Makes it possible to manually update the proposed schedule, but keeping track of the consistent scheduling
(iv) Provides a presentation of scheduled courses
Why learn Spring Framework?
Spring is the most popular open-source Java application Framework. Most of the existing frameworks like Struts or Hibernate take care of one layer or a part of the application development. As Struts take care of MVC model, Hibernate provides ease of working with databases. However, Spring Framework combines all the industry standard framework approaches (e.g. Struts and Hibernate) into one bundle.
Spring provides Dependency Injection, Aspect Oriented Programming and support for unit testing. This gives the developer time to work on main business logic rather than worrying about non-application code. Spring makes the application development fast and increases the productivity of developers.
Introduction to Spring
Learning Objectives - In this module, you will understand what Spring Framework is and why it is so popular. You will learn Spring Framework architecture and features it offers to developers. What are Inversion of Control (IOC) and famous Dependency Injection? Controlling a bean life cycle.
Topics - Introduction to Spring Framework, Why Spring, Java Frameworks, Spring Framework architecture, Object Coupling Problem, Loose coupling and Tight coupling, Dependency Injection and its types, Bean Life cycle, Bean scopes (singleton and prototype), Annie’s Quizzes, LAB, Q & A, Quick Recap.
Spring Configurations
Learning Objectives - In this module, you will learn about different ways of configuring the beans in Spring. In addition you will learn about the configuration mechanisms and the Application Programming Interfaces (APIs) provided by Spring for configuration using simple examples. You will learn to write expressions using various features provided by SpEL and using them to access the beans. You will also learn the core SpEL API that is in use in Spring applications.
Topics - What is Autowiring, Different types of autowiring, Implementing autowiring in different ways, Spring bean definition inheritance, Specifying default values using @value annotation, Autowiring bean using @Autowired, Resolving bean using @Qualifier, Defining a component using @Component, Using @PostConstruct and @PreDestroy, Automatic Bean discovery in a Spring application, Using Spring Expression Language(SpEL), Annie’s Quizzes, LAB, Q & A, Quick Recap.
Aspect-Oriented Programming and DAO
Learning Objectives - In this module, you will learn about the limitations of using OOPs and the need for Aspect Oriented Programming (AOP). Next, you will learn about the core functionalities of AOP and the problems it solves. You also use AOP with Spring framework.This module will introduce Spring framework support for using JDBC and discusses all the classes and interfaces provided by it.
Topics - What is Aspect Oriented Programming (AOP),AOP terminologies, Implementing MethodBeforeAdvice, Implementing AfterReturningAdvice, Implementing MethodInterceptor, Implementing ThrowsAdvice, What is AspectJ, AspectJ provided annotations like @Aspect,@Before etc., Data Access Object (DAO)pattern, Using property files, Annie’s Quizzes, LAB, Q & A, Quick Recap.
Data Access
Learning Objectives - In this module, we will learn the use of template classes and methods for JDBC operations with the help of examples. You will also learn about exception handling and executing stored procedures. We will develop a Spring application using the JDBC APIs. We will discuss the need of ORM framework and their advantages. We will look simple examples while discussing the Spring API for ORM. We will also discuss the use of transactions with frameworks using the Spring framework.
Topics - Using Jdbc Template, Binding variables in database query, Mapping database rows to Java class, Jdbc Batch Processing, What is Hibernate, Working With Hibernate, Integrating Hibernate with Spring, Database Transaction, Spring support for Database transactions, Annie’s Quizzes, LAB, Q & A, Quick Recap.
Spring Web
Learning Objectives - We will discuss the need of MVC pattern for web developers. We will discuss the spring MVC architecture and API. You also learn how to develop few applications using Spring MVC. We will use Java Server Pages as the view component and we will discuss using them in Spring MVC applications. As alternatives to JSP, we will take a look on Tiles framework to define a master layout for web applications.
Topics - Spring MVC Architecture, MVC Components, Setup Spring MVC Application, Writing a Spring MVC application, Exception Handling, Apache Tiles.
Integrating Struts 2, JSF with Spring, Spring Web Flow
Learning Objectives - In this module, we will start with introduction to Struts 2.x and JSF technologies. We will see how Strut 2.x applications configure to use Spring easily. We will see how JSF resolver resolves the value binding expressions used for performing a look up in the Spring configuration files. We will discuss details of mechanisms of using Spring with JSF and Struts applications. We will also understand how Spring Web Flow is motivated and how Spring Web Flow works.
Topics - Understand Struts 2 and JSF, Integration Spring with Struts, Developing a Struts 2 application, Integrating JSF with Spring, Developing a JSF application, Spring Web Flow.
Spring Security
Learning Objectives - In this module, we will learn how to integrate Spring Security with a Spring MVC web application to secure a URL access. Also learn how to limit login attempts in Spring Security, how to implement “Remember Me” login features, storing a hash a password and perform a login authentication. We will also see adding Log4j for Logging and writing test cases with JUnit.
Topics - Spring features for Securing applications, Implementing Remember me feature, Storing Encrypted Passwords, Restricting the number of login attempts, Logging with Log4j, Writing test cases with JUnit.
Spring Integration
Learning Objectives - In this module, we look into Enterprise Integration from a general standpoint. How Spring Integration enables lightweight messaging within Spring-based applications and supports integration with external systems via declarative adapters. We discuss the problem space that Spring Integration Framework is addressing and the introduction to the basic building blocks of the framework—the messages, channels, and endpoints. You will understand how Spring Integration Framework is a perfect fit for any Enterprise or standalone messaging application and how to start working on real world projects.
Topics - Introduction to messages, channels, and Endpoints, Receiving Messages, Common Endpoints, Endpoint API, Message Flow components, Introduction to Adapters.