Spring MVC Interview Questions and Answers

A Java programmer must know the answers to a few of the popular Spring questions before appearing for the interview. There are some popular interview questions for any level Java Programmer. For web applications Spring Framework is one of the popular Java EE frameworks. Two most popular concepts of Java programming are Aspect Oriented Programming and Dependency Injection. Let’s see mostly asked interview questions for freshers.

Questions for Spring MVC Interview:

Before appearing for an interview if you will know the answers to these questions, then it will be good. While reading these spring MVC interview questions for experienced and freshers you will surely like them and will not like to miss them et al. Few are those interesting questions.

Spring MVC Interview Questions & Answers for Freshers

Q1). What do you understand by Spring Framework?

With the two core concepts of Aspect-Oriented and Dependency Injection, Spring is one of the most popular and widely used Java EE frameworks. Through dependency injection it can provide tight coupling between various components. The cross-cutting tasks such as authentication and logging can be provided through Spring framework and the aspect-oriented programming can be implemented through this as well. Spring framework is a featured framework which can provide several modules and lots of features for the specific tasks such as Spring JDBC and Spring MVC. Working with Spring is quite easy and a fun activity due to the presence of a number of online communities and resources.

Q2). What are the features of Spring Framework?

Spring framework is based on two main concepts known as aspect-oriented programming and dependency injection. Few features of Spring framework are:

Spring framework is lightweight and with little overhead for the developers

The container manager of Spring framework can manage Spring Bean life cycle and any project specific configurations like JNDI lookup.

It can support JDBC operations, transaction management, exception handling and file uploading like little configurations either by using annotations or with the help of Spring bean configuration file.

This framework can be used to develop the web applications and web services both which can return JSON and XML responses

Through inversion of control and dependency injection concepts you can develop the independent components easily. Through spring containers these components can be wired easily.

Q3). What is dependency injection?

Dependency injection is a concept which is implemented through the design patterns. It can remove the hard-coded dependency and can make the application loosely coupled, maintainable and extendable. The dependency resolution can also be moved from compile time to run time through these design patterns. It provides following benefits:

Boilerplate Code Reduction

Separation of Concerns

Easy Unit Testing

ConfigurableComponents

Google Guice can also be used for dependency injection and the processes can be automated through this. If we want to implement any additional concept along with dependency injection then Spring is the best choice for that.

Q4). What are the advantages of Spring Framework?

Spring framework offers a number of advantages which includes the following:

The direct dependency among several components can be reduced through Spring IoC containers. They are responsible to create the beans, which are injected between the components and to reduce the dependency.

As the business logic does not have any direct dependency on the implementation class of actual resource so it becomes quite easier to write the Unit test cases. The test configurations can be easily written and the configurations can be injected easily for testing purposes.

The amount of boilerplate code is also reduced e,g. to open or close the resource or to initialize an JdbcTemplate class can also remove the boilerplate code required in JDBC programming.

Spring framework can help us in keeping the application lightweight say e.g if Spring transaction management feature is not required, then the user needs not to add that dependency to the project.

Spring framework can support a number of Java EE framework features even more than Spring is always top of the technologies like to write better naïve android application user can use Spring project for Android. So it can be a complete package and user need not have any separate package for the work.

Q5). Name some popular and mostly used Spring Modules.

Some important and mostly used Spring modules are:

Spring Context- Used for Dependency Injection

Spring AOP- Used to implement aspect-oriented programming

Spring DAO- Used for database operations with the help of DAO patterns

Spring JDBC- uSed for DataSource and JDBC support

Spring ORM- Used for creating web applications

Spring Web Module- Used to create the web applications

Spring MVC- It is also known as Model-View-Controller used to create and implement the web applications

Q6). Explain Aspect Oriented Programming.

Some cross-cutting concerns for any enterprise level application like transaction management, data validation, authentication and logging in for various application modules and objects are most valuable. In case of object-oriented programming such application modularity is implemented by classes while in AOP it is achieved by Aspects.

Q7). What is the difference between AspectJ AOP and Spring AOP?

The industry standard implementation of Aspect-oriented programming is called AspectJ while implementation of AOP can also be done with the help of Springs. The major difference between AspectJ and Spring AOP are listed below:

Use of AspectJ is easier than Spring AOP as weaving process is not required in this implementation.

Spring AOP itself supports AspectJ as the weaving process is not involved so familiarity with AspectJ can be helpful in Spring AOP itself.

Only Proxy based AOPs are supported in Spring AOP so it is used only for join points of method execution. AspectJ supports pointcuts of all types.

Unlike Aspect the Spring AOP can only be applied to the Spring Context beans

Q8). What is Spring Bean?

Any class of Spring framework, which is initialized by Spring IoC container is known as Spring Bean. We can get the Spring Bean instance through Spring Application Context. The life-cycle of Spring Bean can be managed by Spring IoC container.

Q9). Define Spring Bean Scope

Following five are the main scopes of Spring Beans:

Prototype: Whenever a bean is requested a separate prototype is created each time

Request: It is quite like prototype scope while used for web applications only. For each HTTP request a new bean instance is created.

Singleton: For every container only one instance of the bean is created and they act as the default scope for the bean containers. In these instances the beans cannot have shared instance variables. As these instances are not threaded safe so can lead to data-inconsistency.

Session: For every HTTP session a bean is created by the containers

Global-session: For Portlet applications the global session is created

The Spring framework is extendable user can also create his own scope as well. While the Spring defined scope is also used by the developers. The “scope” attribute of the bean element is used to define its scope. The above-listed ones are mostly asked for spring MVC interview questions and answers. Apart from these there can be other spring MVC interview questions as well. You can find other questions to clear the interview.

spring MVC Interview Questions & Answers for Experienced Candidates

Q10). Define Spring Bean.

When a normal java class starts with IoC container it is called Spring Bean. To get the Spring Bean instance we can use Spring Application Context. The life cycle of Spring Bean is managed by IoC container, it also manages the scope of bean and the dependencies required in case of bean injection in any module.

Q11). Why is Spring Bean configuration file important?

All beans that are initialized by Spring Context are defined in Spring Bean configuration file. When an instance of Spring Application Context is created it reads spring bean XML file and initializes all of them. The context is initialized once in the bean life cycle and then it can be used to get different bean instances throughout its lifecycle. This file not only contains Spring Bean configuration instead it also contains Spring MVC view resolvers, interceptors and other annotations which can support other configuration based elements.

Q12). How can you configure any class as a Spring Bean?

We can configure any java class to Spring Bean by following three ways:

XML Configuration: XML configuration is the most popular one and the bean element can be used in the contextfile to configure a Spring Bean. The example is given below: Java Based Configuration : The beans can also be configured by using @Bean annotations. It is used with @Configuration classes through which you can configure the bean. An example is given below: Annotation Based Configuration: We can use @Service, @Component, @Controller and @Repository annotations with the normal java classes if we want to configure them as a Bean. To provide such annotation the base package class location has to be specified for these classes. An example is given below:

Q13). Define Bean @Autowired annotation and Bean wiring.

The complete process of injecting a bean dependency at the time of its initialization is known as Spring Bean wiring. Though the user can do theexplicit wiring for all the beans in spring framework you can also use autowiring. For this the annotation @Autowired can be used with filesautowiring byType. For this we will also have to enable annotation-based configuration located in the Spring bean file

Q14). Explain various types of Spring Bean Auto wiring.

In Spring framework following four types of autowiring is defined:

Autowire byname

Autowire byType

Autowire by constructor

Autowire by @Autowired and @Qualifier annotations

Q15). Is thread safety provided by Spring bean?

Default scope of any bean in the Spring framework is asingleton, so only one instance per context can be there. Therefore the class level variables which can be updated through thread may lead to inconsistent data so Spring beans are not threaded safe. To achieve thread safety the bean scope can be changed to prototype, request or session and for that the performance may have to be compromised.

Q16). Explain Spring Bean Controllers.

Like MVC design patterns Spring Bean Controller class take care of the requests coming from any client and it sends them to the configured resources which can handle it. The front controller class org.springframework.web.servlet.DispatcherServlet initializes the contexts on the basis of spring bean configurations. A Controller class can handle various kind of client requests on the basis of request mapping. By using @Controller annotation the controller class can be created.

Conclusion

This blog covers the questions which you can read and solve if you want to crack the interview for Spring bean professional. Java professionals also have to get practical knowledge along with theoretical concepts. The questions are covered for both fresher and experienced professionals and you can also find many others questions if you want to be a proficient Java developer and want to crack Spring interview.



