Spring

Duration : 72Hrs

Fee      : 12,000/- + GST

Course Details:

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE (Enterprise Edition) platform. Although the framework does not impose any specific programming model, it has become popular in the Java community as an alternative to, replacement for, or even addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is open source.

Syllabus

Module 1. CONTAINER, DEPENDENCY, AND IOC
1. What is dependency injection and what are the advantages?
2. What is an interface and what are the advantages of making use of them in Java?
3. What is meant by application-context and how do you create one?
4. What is the concept of a container and what is its life cycle?
5. Dependency injection using Java configuration
6. Dependency injection in XML, using constructor or setter injection
7. Dependency injection using annotations (@Component, @Autowired)
8. Component scanning, Stereotypes and Meta-Annotations
9. Scopes for Spring beans. What is the default?
10. What is an initialization method and how is it declared in a Spring bean?
11. What is a destroy method, how is it declared and when is it called?
12. What is a BeanFactoryPostProcessor and what is it used for?
13. What is a BeanPostProcessor and how is the difference to a BeanFactoryPostProcessor? What do they do? When are they called?
14. Are beans lazily or eagerly instantiated by default? How do you alter this behavior?
15. What does component-scanning do?
16. What is the behavior of the annotation @Autowired with regards to field injection, constructor injection and method injection?
17. How does the @Qualifier annotation complement the use of @Autowired?
18. What is the role of the @Post Construct and @Pre Destroy annotations? When will they get called?
19. What is a proxy object and what are the two different types of proxies Spring can create?
20. What is the power of a proxy object and where are the disadvantages?
21. What are the limitations of these proxies (per type)?
22. How do you inject scalar/literal values into Spring beans?
23. How are you going to create a new instance of an ApplicationContext?
24. What is a prefix?
25. What is the lifecycle on an ApplicationContext?
26. What does the "@Bean annotation do?
27. How are you going to create an ApplicationContext in an integration test or a JUnit test?
28. What do you have to do, if you would like to inject something into a private field?
29. What are the advantages of JavaConfig? What are the limitations?
30. What is the default bean id if you only use "@Bean"?
31. Can you use @Bean together with @Profile?
32. What is Spring Expression Language (SpEL for short)?
33. What is the environment abstraction in Spring?
34. What can you reference using SpEL?
35. How do you configure a profile. What are possible use cases where they might be useful?
36. How many profiles can you have?
37. How do you enable JSR-250 annotations like @PostConstruct?
38. Why are you not allowed to annotate a final class with @Configuration
39. Why must you have a default constructor in your @Configuration annotated class?
40. Why are you not allowed to annotate final methods with @Bean?
41. What is the preferred way to close an application context?
42. How can you create a shared application context in a JUnit test?
43. What does a static @Bean method do?
44. What is a ProperyPlaceholderConfigurer used for?
45. What is @Value used for?
46. What is the difference between $ and # in @Value expressions?
Module 2. ASPECT ORIENTED PROGRAMMING
1. What is the concept of AOP? Which problem does it solve?
2. What is a pointcut, a join point, an advice, an aspect, weaving?
3. How does Spring solve (implement) a cross cutting concern?
4. Which are the limitations of the two proxy-types?
5. How many advice types does Spring support. What are they used for?
6. What do you have to do to enable the detection of the @Aspect annotation?
7. Name three typical cross cutting concerns.
8. What two problems arise if you don't solve a cross cutting concern via AOP?
9. What does @EnableAspectJAutoProxy do?
10. What is a named pointcut?
11. How do you externalize pointcuts? What is the advantage of doing this?
12. What is the JoinPoint argument used for?
13. What is a ProceedingJoinPoint?
14. What are the five advice types called?
15. Which advice do you have to use if you would like to try and catch exceptions?
Module 3. JDBC, TRANSACTIONS, AND ORM
1. What is the difference between checked and unchecked exceptions?
2. Why do we (in Spring) prefer unchecked exceptions?
3. What is the data access exception hierarchy?
4. How do you configure a DataSource in Spring? Which bean is very useful for development/test databases?
5. What is the Template design pattern and what is the JDBC template?
6. What is a callback? What are the three JdbcTemplate callback interfaces described in the notes? What are they used for? (You would not have to remember the interface names in the exam, but you should know what they do if you see them in a code sample).
7. Can you execute a plain SQL statement with the JDBC template?
8. Does the JDBC template acquire (and release) a connection for every method called or once per template?
9. Is the JDBC template able to participate in an existing transaction?
10. What is a transaction? What is the difference between a local and a global transaction?
11. Is a transaction a cross cutting concern? How is it implemented in Spring?
12. How are you going to set up a transaction in Spring?
13. What does @Transactional do? What is the Platform Transaction Manager?
14. What is the TransactionTemplate? Why would you use it?
15. What is a transaction isolation level? How many do we have and how are they ordered?
16. How does the JdbcTemplate support generic queries? How does it return objects and lists/maps of objects?
17. What does transaction propagation mean?
18. What happens if one @Transactional annotated method is calling another @Transactional annotated method on the same object instance?
19. Where can the @Transactional annotation be used? What is a typical usage if you put it at class level?
20. What does declarative transaction management mean?
21. What is the default rollback policy? How can you override it?
22. What is the default rollback policy in a JUnit test, when you use the SpringJUnit4ClassRunner and annotate your @Test annotated method with @Transactional?
23. Why is the term "unit of work" so important and why does JDBC AutoCommit violate this pattern?
24. What does JPA mean - what is ORM? What is the idea behind an ORM?
25. What is a PersistenceContext and what is an EntityManager. What is the relationship between both?
26. Why do you need the @Entity annotation. Where can it be placed?
27. What do you need to do in Spring if you would like to work with JPA?
28. Are you able to participate in a given transaction in Spring while working with JPA?
29. What is the PlatformTransactionManager?
30. What does @PersistenceContext do?
31. What are disadvantages or ORM? What are the benefits?
32. What is an "instant repository"?
33 How do you define an �instant� repository?
34 What is @Query used for?
Module 4. SPRING MVC AND THE WEB PLAYER
1. MVC is an abbreviation for a design pattern. What does it stand for and what is the idea behind it?
2. Do you need spring-mvc.jar in your classpath or is it part of spring-core?
3. What is the DispatcherServlet and what is it used
4. Is the DispatcherServlet instantiated via an application context?
5. What is the root application context? How is it loaded?
6. What is the @Controller annotation used for? How can you create a controller without an annotation?
7. What is the ContextLoaderListener and what does it do?
8. What are you going to do in the web.xml. Where do you place it?
9. How is an incoming request mapped to a controller and mapped to a method?
10. What is the @RequestParam used for?
11. What are the differences between @RequestParam and @PathVariable?
12. What are some of the valid return types of a controller method?
13. What is a View and what's the idea behind supporting different types of View?
14. How is the right View chosen when it comes to the rendering phase?
15. What is the Model?
16. Why do you have access to the model in your View? Where does it come from?
17. What is the purpose of the session scope?
18. What is the default scope in the web context?
19. Why are controllers testable artifacts?
20. What does the InternalResourceViewResolver do?
Module 5. SECURITY
1. What is the delegating filter proxy?
2. What is the security filter chain?
3. In the notes several predefined filters were shown. Do you recall what they did and what order they occurred in?
4. Are you able to add and/or replace individual filters?
5. Is it enough to hide sections of my output (e.g. JSP-Page)?
6. Why do you need the intercept-url?
7. Why do you need method security? What type of object is typically secured at the method level (think of its purpose not its Java type).
8. Is security a cross cutting concern? How is it implemented internally?
9. What do @Secured and @RolesAllowed do? What is the difference between them?
10. What is a security context?
11. In which order do you have to write multiple intercept-url's?
12. How is a Principal defined?
13. What is authentication and authorization? Which must come first?
14. In which security annotation are you allowed to use SpEL?
15. Does Spring Security support password hashing? What is salting?
Module 6. REST
1. What does REST stand for?
2. What is a resource?
3. What are safe REST operations?
4. What are idempotent operations? Why is idempotency important?
5. Is REST scalable and/or interoperable?
6. What are the advantages of the RestTemplate?
7. Which HTTP methods does REST use?
8. What is an HttpMessageConverter?
9 . Is REST normally stateless?
10. What does @RequestMapping do?
11. Is @Controller a stereotype? Is @RestController a stereotype?
12. What is the difference between @Controller and @RestController?
13. When do you need @ResponseBody?
14. What does @PathVariable do?
15. What is the HTTP status return code for a successful DELETE statement?
16. What does CRUD mean?
17. Is REST secure? What can you do to secure it?
18. Where do you need @EnableWebMVC?
19. Name some common http response codes. When do you need @ResponseStatus?
20. Does REST work with transport layer security (TLS)?
21. Do you need Spring MVC in your classpath?
Module 7. SPRING BOOT
1. What is Spring Boot?
2. What are the advantages of using Spring Boot?
3. Why is it �opinionated�?
4. How does it work? How does it know what to configure?
5. What things affect what Spring Boot sets up?
6. How are properties defined? Where?
7. Would you recognize common Spring Boot annotations and configuration properties if you saw them in the exam?
8. What is the difference between an embedded container and a WAR?
9. What embedded containers does Spring Boot support?
10. What does @EnableAutoConfiguration do? What about @SpringBootApplication?
11. What is a Spring Boot starter POM? Why is it useful?
12. Spring Boot supports both Java properties and YML files. Would you recognize and understand them if you saw them?
13. Can you control logging with Spring Boot? How?
14. Note that the second Spring Boot section (Going Further) is not required for this exam.
Module 8. MICROSERVICES
1. What is a microservices architecture?
2. What are the advantages and disadvantages of microservices?
3. What sub-projects of Spring Cloud did we cover in the course? Spring Cloud is a large umbrella project � only what we covered in the course will be tested.
4. Would you recognize the Spring Cloud annotations and configuration we used in the course if you saw it in the exam?
5. What Netflx projects did we use?
6. How do you setup Service Discovery?
7. How do you access a RESTful microservice?

Mind Bling

Presents

Codeathon 2017