Spring Interview Question is one of the first thing Java programmer should prepare before appearing on any Java or Spring interview. With growing popularity of Spring framework in Java world, Interview questions on Spring are getting more important day by day. For those who don't know, Spring framework is one of the most popular Java programming framework, which not only provided dependency Injection and Inversion of Control but also provides useful API to Java programmers. Spring framework is divided into many different modules e.g. Spring MVC, Spring Integration, Spring Batch, Spring LDAP, Spring Security and several other modules. Based upon your work experience, Interviewer can asked questions from core Spring or these modules. That's why, while preparing Spring interview question focus on Spring core, Spring Security and Spring API, these are main areas from where interviewer ask questions. If you have working experience in Spring based Java projects, you can easily answer most of these Spring questions asked in Java interview, but if you don't have any prior experience and just learning Spring, you need to not only prepare answers of these Spring questions but also some follow-up questions, which may stem from your answers.
Spring Questions and AnswersAnyway let's see frequently asked questions on Spring framework on Java interviews :
1) What is spring framework? Why Java programmer should use Spring framework
Very common Spring interview question, Spring is a framework which helps Java programmer in development. Spring provides dependency Injection and IOC container, Spring MVC flow and several useful API for Java programmer.
2) What is default scope of bean in Spring framework ?
default scope of bean is Singleton, you can read this article which explains about all possible scope of a spring bean : What is bean scope in Spring
3) Does Spring singleton beans are thread-safe ?
No, Spring singleton beans are not thread-safe. Singleton doesn't mean bean would be thread-safe.
4) What is dependency Injection?
Dependency Injection is one of the design pattern, which allows to inject dependency on Object, instead of object resolving dependency.
5) What is Inversion of Control concept, how does Spring support IOC?
6) What is Spring MVC ? Can you explain How one request is processed ?
7) How to you create controller in Spring ?
8) What is view Resolver pattern ? how it work in Spring MVC
View Resolver patter is a J2EE pattern which allows a web application to dynamically choose it's view technology e.g. HTML, JSP, Tapestry, JSF, XSLT or any other view technology. In this pattern, View resolver holds mapping of different views, controller return name of view, which is than passed to View Resolver for selecting appropriate view. Spring MVC framework supplies inbuilt view resolver for selecting views.
9) What is Spring Security ?
Spring security is a project under spring framework umbrella, which provides support for security requirements of enterprise Java projects. Spring Security formerly known as aegis security provides out of box support for creating login screen, remember me cookie support, securing URL, authentication provider to authenticate user from database, LDAP and in memory, concurrent active session management support and many more. In order to use Spring security in a Spring MVC based project, you need to include spring-security.jar and configure it in application-Context-security.xml file, you can name it whatever you want, but make sure to supply this to ContextLoaderListener, which is responsible for creating Spring context and initializing dispatcher servlet.
10) How do you control concurrent Session on Java web application using Spring Security.
You can use Spring Security to control number of active session in Java web application. Spring security framework provides this feature out of box and when enabled , a user can only have one active session at a time. See this Spring Security example to learn more about How to control concurrent user session using Spring security
11) What types of dependency injection is supported by Spring Framework? When do you use Setter and Constructor Injection, pros and cons?
There are 2 types of dependency injection supported by Spring, constructor based injection and setter based injection. Both types have their own advantages and disadvantages, you should use Constructor injection when object's dependencies are not optional and they must be initialized with their dependencies. Also use constructor injection if order of initialization or dependency matters because in Setter based injection you cannot impose any order. Use setter injection when dependencies are optional. See difference between setter and constructor injection in Spring for more detailed answer.
12) What is difference between ApplicationContext and BeanFactory in Spring framework?
13) How do you call stored procedure by using Spring framework?
14) What does JdbcTemplate and JmsTemplate class offer in Spring?
15) Can we use more than one configuration file for our Spring project?
16) Explain Spring MVC flow with a simple example e.g. starting from Container receives request and forward to your Java application ?
17) What is difference in Spring MVC and Spring core?
18) Can you use Spring MVC framework along with Struts ? I have an existing Java MVC application which is based in Struts, Can I migrate that to use Spring MVC ? How ?
19) What is advantage of Spring MVC framework over Struts 1.0 or Struts 2.0 ? is it worth to convert an existing Struts application to Spring MVC ?
20) How does Spring resolves view returned by ModelAndView class ?
Some Spring MVC questions are tricky e.g. Struts and Spring integration and can be only answered by experienced Java program with 2 to 4 year experience in Spring MVC framework.
21) IF User checked in CheckBox and got validation error on otherfields and than he unchecked the CheckBox, what would be selection status in command object in Spring MVC ? How do you fix this issue?
Since during HTTP post, if checkbox is unchecked than HTTP does include a request parameter for checkbox, which means updated selection won't be picked up. you can use hidden form field, starting with _ to fix this in Spring MVC. quite tricky question to answer if you are not aware of HTTP POST behavior and Spring MVC.
22) What are different implementation of View interface you have used in Spring MVC?
ULBased View e.g. JSP , JSTLView,
23) How to escape HTML special characters using Spring MVC?
There are some methods in Spring tag library, can't remember now.
These were some of the Core Spring framework and MVC Interview questions from my collection, I have given short answers for most of these Spring interview question. I suggest to research more or read along those Spring question to prepare for follow up Spring interview questions.
Other Interview questions and answer for Java programmer:
5 Thread interview questions answers in Java
10 Java Coding Interview questions and Answer
10 Advanced core Java interview questions
What are difference between wait and sleep in Java