iTestJava.com |
SpringSource Certified Spring Professional (Spring 3) |
|
Categories |
Sections and pages (not complete) which are related. |
core-spring-3.0-certification-study-guide_0.PDF |
spring-framework-reference.PDF Reference Documentation 3.0.7 |
springsecurity.PDF Spring Security Reference Documentation 3.0.7 |
1 |
Container -basics |
1.1 |
General |
The potential advantages of using Spring's dependency injection |
|
1, 3.1-3.5 |
|
|
|
|
|
Dependency injection in XML, using constructor or setter injection |
|
|
|
|
|
Default scope for Spring beans. What are the main scopes that can be used alternatively? |
|
|
|
1.2 |
Lifecycle |
How to declare an initialization method in a Spring bean |
|
3.6, 3.8 |
|
|
|
|
|
How to declare a destroy method in a Spring bean |
|
|
|
|
|
Default bean instantiation policy: when are beans instantiated? |
|
|
|
|
|
Note: you should have a good understanding of the lifecycle in general. What are BeanFactoryPostProcessors and BeanPostProcessors? When are they called in the startup process? |
|
|
|
1.3 |
Annotations |
Enabling component-scanning |
|
3.9, 3.10 |
|
|
|
|
|
Behavior of the annotation @Autowired with regards to field injection, constructor injection and method injection |
|
|
|
|
|
How does the @Qualifier annotation complement the use of @Autowired |
|
|
|
|
|
What is the role of the @PostConstruct and @PreDestroy annotations |
|
|
|
|
|
Enabling the scanning of annotations such as @Required and @PreDestroy |
|
|
|
1.4 |
Miscellaneous |
How to inject scalar/literal values into Spring beans |
|
Page 42 Straight values (primitives, Strings, and so on), Page 45 Collections, Page 48 XML shortcut with the p-namespace, 3.7, 3.13, 3.14, 4, C.1, Pages 702-709 C.2 XML Schema-based configuration |
|
|
|
|
|
How to refer to a collection in a Spring bean definition |
|
|
|
|
|
How to create an ApplicationContext. What are the resource prefixes that can be used. How to refer to a Spring configuration file inside a package. The different implementations of ApplicationContext that can be used in an application. |
|
|
|
|
|
How to externalize constants from a Spring XML configuration file into a .properties file |
|
|
|
|
|
Purpose and usage of bean definition inheritance |
|
|
|
|
|
How to use the p namespace |
|
|
|
1.5 |
JavaConfig |
Usage of the @Bean and @Configuration annotations |
|
3.11 |
|
|
|
|
|
How to write a bean definition method |
|
|
|
1.6 |
Testing |
How to use Spring's integration testing support in a JUnit 4 test |
|
9 |
|
|
|
|
|
How to a declare that a test should run in a transaction in spring-enabled JUnit 4 |
|
|
|
|
|
Differences between a Unit test and an Integration test. Which of them is supposed to interact with Spring? |
|
2 |
AOP |
2.1 |
Recommendations |
In order to work successfully with AOP, it is important to understand the theory behind the scenes. Consequently you should understand the four main AOP keywords taught in this course: Aspect, Advice, Pointcut and Joinpoint. |
|
7, 8 |
|
|
|
2.2 |
Pointcuts |
You should have a deep understanding of poincut expressions. It is important to understand all poincut examples in the slides (apart from the ones in the “advanced topics” section at the end of the module). |
|
Page 188 Declaring a pointcut, Page 207 Declaring a pointcut, 8.2 |
|
|
|
2.3 |
Advices |
Different kinds of Advice. How do they differ from each other? |
|
Page 196 Declaring advice, 8.3, 8.11 |
|
|
|
2.4 |
Configuration |
Enabling the detection of @Aspect annotated classes. Is it possible to set up Spring AOP using XML configuration only (as opposed to annotations)? |
|
7, 8 |
|
|
|
2.5 |
Proxies |
When are they generated in the Spring lifecycle? How do they resemble the target object that they advice? What limitations does Spring-AOP's proxy-based approach have? |
|
7.6, 7.7, 8.5-8.10 |
|
3 |
Data Access and transactions |
3.1 |
General |
The rationale for having the DataAccessException hierarchy |
|
11, 12.1, 12.3, 12.9, 13.1, 13.2 |
|
|
|
|
|
Definition of a DataSource in the Spring configuration |
|
|
|
3.2 |
The JdbcTemplate |
Usage of the JdbcTemplate with regards to exception handling, querying, resultset parsing |
|
12.2 |
|
|
|
3.3 |
Hibernate |
Configuration of a SessionFactoryBean in xml |
|
13.3 |
|
|
|
3.4 |
Transactions |
Configuration to declare a local transaction manager |
|
10 |
|
|
|
|
|
Configuration to declare a JTA transaction manager |
|
|
|
|
|
The different ways to do declarative transaction management with Spring (xml, annotations) |
|
|
|
|
|
Usage of TransactionTemplate for programmatic transaction management (you simply need to understand a basic example based on the TransactionTemplate). |
|
|
|
|
|
Transactions and exception management: what is the default rollback policy? Can it be overridden? |
|
|
|
|
|
The @Transactional annotation: what are the main attributes that can be used for a transaction definition? Can this annotation also be used with a JTA Transaction Manager? |
|
|
|
|
|
Regarding propagation modes, what is the difference between PROPAGATION_REQUIRED and PROPAGATION_REQUIRES_NEW |
|
|
|
|
|
Regarding isolation levels, what is the difference between READ_COMMITTED and READ_UNCOMMITTED? |
|
4 |
Spring MVC |
4.1 |
General configuration |
This module shows how to configure a ViewResolver,a HandlerMapping and the DispatcherServlet. You won't be asked any question on how to configure those classes. However, you need to know what the goal of each of those components is. |
|
15, 16.1, 17.1 |
|
|
|
|
|
You also need to understand the relationship between a DispatcherServlet ApplicationContext and a root ApplicationContext. |
Bootstrapping a root WebApplicationContext using the ContextLoaderListener |
|
|
|
|
|
General usage of the @Controller and @RequestMapping annotations |
|
|
|
|
|
A method annotated with @RequestMapping can return a String. What does it refer to? What are the main parameter types that this method can accept? (based on what you've seen in the class) |
|
|
|
|
|
Goal of the @RequestParam annotation |
5 |
Advanced topics |
5.1 |
Remoting |
Advantages of using Spring Remoting rather than plain RMI? |
|
19.2, 19.4 |
|
|
|
|
|
Goal and general configuration of the RMI Service Exporter |
|
|
|
|
|
Goal and general configuration of RMI Proxy Generator |
|
|
|
|
|
Difference between the RMI Service Exporter and the HttpInvoker |
|
|
|
|
|
Does the HttpInvoker require to run a web server on the client side? On the server side? |
|
|
|
5.2 |
Security |
What is the “Security filter chain” used in Spring Security? |
|
|
Search the pdf using keywords on the left side. E.g. "@Secured" Note: @RolesAllowed is not on this PDF. You can Google for "@RolesAllowed". |
|
|
|
|
Syntax to configure Spring Security to intercept particular URLs? (you need to have a good understanding of the various examples using intercept-url in the course) |
|
|
|
|
|
Syntax to configure method level security |
|
|
|
|
|
Method level security using @Secured or @RolesAllowed |
|
|
|
|
|
Possible mechanisms to store user details: database? LDAP? Others? |
|
|
|
|
|
When working with an authentication provider, is it possible to use a password encoder? |
|
|
|
|
|
In the security tag library, what is the purpose of the <security:authorize /> tag? |
|
|
|
5.3 |
JMS |
Purpose of the JmsTemplate |
|
19.6, 21 |
|
|
|
|
|
How to declare a JMS Listener? Can a JMS Listener be a POJO? |
|
|
|
|
|
Is it possible to run JMS inside a plain Servlet container without full Java EE support (such as Tomcat or Jetty)? |
|
|
|
5.4 |
JMX |
Role of the MBeanExporter |
|
22 |
|
|
|
|
|
Using Spring JMX, is it possible to export a POJO as an MBean? |
|
|
|
|
|
Using Spring JMX, is it possible to automatically register an existing MBean with an MbeanServer? |
|
|
|
|
|
Purpose of the @ManagedResource, @ManagedAttribute and @ManagedOperation annotations |
|