Spring MVC Interview Questions: Spring MVC is an original web framework from Spring made on Servlet-API. This offers Model-View-Controller architecture which is used to make flexible web applications. For those that have already worked in Java & developing web-based apps, then there’s the best chance that you’ve already used Spring-MVC with your projects.
Top 30+ Best Spring MVC Interview Questions
Spring MVC depends on the classic Model-View-Controller (MVC) design pattern, though it’s much extra than that. There is a great demand for good Java developers that have knowledge & experience in Spring MVC. Among the ways of preparing yourself for this kind of job interview, you need to check for possible interview questions. Below are some of the questions that are likely to be encountered when in an interview.
Model-View-Controller (MVC) is a software-architectural design pattern. This separates application functionality into 3 interconnected sections. They include Model, Controller & View. The method facilitates reusability of code & parallel development.
What’s Spring MVC?
This is a Java-Framework that’s used to make dynamic web applications. It also implements every basic feature of a core-spring framework, including Inversion of Control & Dependency-Injection. This follows the Model-View-Controller design pattern.
- Model: It contains the data of an application. Moreover, data can be one object or a group of things.
- View: View denotes the offered information to a particular format. Thus, one can create some view pages using view tech like JSP+JSTL, Thymeleaf, Apache Velocity & FreeMarker.
- Controller: It contains the business logic of an application. The @Controller-annotation is utilized in marking the class as controller.
Why Should one Use Spring-MVC?
Spring MVC helps implement a clear parting of concerns which enables us to develop & unit test the app easily.
The concept includes:
- Dispatcher Servlet
- View Resolvers
- Views, Models
- Model & Session Attributes
These concepts are fully independent of every other, and they’re responsible for a single thing only. MVC offers us quite big flexibility. This is based on interfaces & one can configure every section of the framework using custom interfaces.
What’s the front-controller of Spring-MVC?
Front-controller is a DispatcherServlet-class that’s present in a package of org.springframework.web.servlet. These dispatches request to correct controller & manages flow of the application. This needs to specify DispatcherServlet-class in the web.xml file.
What’s the Spring framework?
This is an open-source framework that is made to simplify app development. It also has a layered structure that enables a developer to be choosy about the components that they use. Moreover, it also has 3 major features that include Spring AOP, Spring Core & Spring MV. Spring offers support to different frameworks, including EJB, JSF, Structs, Hibernate, and others.
There are about 20-modules which are spread into the following kinds:
- Data Access/Integration
- Core Container
- Aspect-Oriented Programming (AOP)
What’s the Spring-configuration file?
This is an XML file that mainly has classes information & describes how the classes are linked & configured to every other. XML configuration files are cleaner and verbose.
What’s meant by Inversion-of-Control (IoC) Container?
Spring container creates a core of Spring Framework. Spring container utilizes Dependency-Injection (DI) of managing the parts of the app via creating objects. One will also wire them together along with configuring & managing the overall life-cycles. Instructions for spring-container to perform the tasks can be offered either using XML configuration, Java code, or Java annotations.
Define Spring Beans?
These are objects that form the backbone of the user’s app & are accomplished by Spring-IoC container. Spring-beans are configured, instantiated, managed by IoC-container & wired. Furthermore, beans are made with configuration metadata which the client supply to the container with the help of java or XML annotations configurations.
What are the benefits of Spring-MVC Framework?
- Light-weight – Utilizes light-weight servlet-container to develop & deploy one’s application.
- Separate roles – Spring-MVC separates applications into 3 interconnected layers where every layer has its purpose.
- Flexible Mapping – This offers specific annotations which easily redirect the page.
- Powerful Configuration – This offers a strong configuration for all framework & application classes which includes simple referencing across-contexts, like from web-controllers to business objects & validators.
- Reusable business code – Instead of making new objects, this enables us to utilize the current business objects.
- Rapid development – Spring MVC eases fast & parallel development.
How one declares a class as a controller class at Spring MVC?
@Controller annotation is utilized in saying a class as controller class. It’s needed to specify the annotation on the class name. For instance:-
What does an extra configuration file have in Spring MVC-application?
Spring-MVC application has an extra configuration file that contains properties information. Moreover, the file can be made either in the form of a properties file or XML file. This file generally defines base-package & view-resolver, where DispatcherServlet looks for controller classes & view components-path. However, this can also consist of various configuration properties.
What’s the function of @ResponseBody-annotation at Spring-MVC?
The @ResponseBody-annotation is utilized to serialize returned-object automatically in JSON & bind it using the HTTP-response body. Here, it doesn’t need to invoke the model.
What does ModelAndView mean at Spring MVC?
ModelAndView is a class that holds both View & Model. The model represents data, & the View represents the representation of data. The class returns model & View in a single-return value.
What’s Spring-MVC form tag-library?
Spring MVC form-tags are seen as data-binding-aware tags which auto-set data-to-Java object/bean & also reclaim from it. The titles are configurable & reusable building blocks for the web pages. This offers view technologies, which is a simple way of developing, read, & maintain data.
What’s ModelMap at Spring MVC?
ModelMap is a class that offers execution of Map. This extends LinkedHashMap class which facilitates to pass-collection of values as if they are in a map.
What’s a Viewresolver-pattern & how does this work at MVC?
This is a J2EE pattern that enables applications to dynamically select tech for rendering information on the browser. Every tech like JSP, HTML, Tapestry, JSF, XSLT, or every other tech can be utilized for View. The view-Resolver pattern holds the mapping of various views. The controller returns the name of View that’s passed to View-Resolver for choosing the appropriate tech.
What are the bean scopes that are available in Spring?
Spring-Framework contains 5 scope supports. They include
- Prototype: Scope for single-bean definition is any-number of object-instances.
- Singleton: Scope of bean-definition while utilizing this would be a single-instance in a IoC container.
- Session: The scope of bean definition remains HTTP-session.
- Request: Scope of bean definition remains is an HTTP-request.
- Global-session: Scope of bean definition is a Global-HTTP session.
What are the various parts of a Spring-application?
- Bean class: It contains properties, its setter and getter methods, functions, etc.
- Interface: Defines functions.
- Bean-Configuration File: Consist of data of classes & the way to configure them.
- Spring Aspect Oriented-Programming: Offers functionality of cross-cutting-concerns.
- User program: Uses function.
What’s meant by Dependency-Injection?
Dependency Injection, one doesn’t have to form your objects, though have to define how they are made. One doesn’t connect the components & services together in one code directly though it explains which services are required by which part in file configuration. The IoC-container wires them together.
What’s Bean-Validation API?
Bean Validation-API is Java-specification that’s utilized in applying constraints on object-model through annotations. One can validate a number, length, regular expression, and more others. Aside from that, one can offer custom validations. Bean Validation-API is just a specification, which needs implementation. Thus, it utilizes Hibernate-Validator. Hibernate Validator is a complete compliant JSR-303/309, which has performance which enables one in expressing & validating application constraints.
Validating user’s input using a number range at Spring MVC?
At Spring-MVC Validation, one will validate the user’s input in a number range with the help of the following annotations: –
@Max annotation: This needs to pass an integer-value using @Max-annotation. Clients’ input needs to be the same to or smaller compared to this value.
@Min annotation: This needs to pass an integer-value which has @Min-annotation. Clients’ input needs to be the same or greater compared to this value.
What’s Spring MVC-Tiles?
Spring offers integration support using apache tiles-framework. Thus, one can manage the layout of the Spring-MVC app with the assistance of spring-tiles support. An advantage of Tiles-support at Spring MVC includes:
- Centralized control: One can control the layout of a page using a single template page only.
- Reusability: One can reuse a single component in numerous pages, including header & footer components.
- Easy to alter the layout: With the help of one single template page, one can change the page’s layout anytime. Therefore your website needs to be easily adapted to new technologies like bootstrap & jQuery.
What is the function of @EnableWebMVC?
It allows Spring-MVC through Java configuration. It is similar to <mvc: annotation-driven> in an XML-configuration. The annotation imports Spring-MVC-Configuration from WebMvcConfigurationSupport. This allows support for @Controller-annotated-classes which uses @RequestMapping for incoming mapping requests and allows the handler method.
What’s autowiring & name their various modes?
IoC-container auto wires relationships that are between application beans. Spring allows the collaborators to resolve the bean that has to be auto wired by inspecting the contents of BeanFactory.
Various modes of the process include
- byName: Bean-dependency is injected according to the bean name. The matches & wires its properties using the beans stated by the same names as with the configuration.
- no: This suggests no autowiring & is the default setting. An explicit bean-reference needs to be utilized for wiring.
- byType: it injects bean dependency depending on the kind.
- Autodetect: The container tries and wire with the help of autowire by a constructor; if it is not possible, then this tries to autowire through byType.
- Constructor: it injects bean dependency through calling the constructor of a class. This has big parameter numbers.
What are Spring Boot features?
- Starter Dependency – This feature helps; Spring-Boot aggregates shared dependencies & eventually increases productivity & decrease burden on
- Spring Boot-CLI – This enables one to Groovy/Maven for writing Spring-boot application & prevents boilerplate code.
- Logging & Security – It ensures every application is made using Spring-Boot & is well safeguarded minus every hassle.
- Spring-Initializer – It’s a web application which-assists a developer in making an internal-project structure. The developer doesn’t have to set-up the structure of the project manually as they make use of the feature.
- Spring-Actuator – Actuator is used by spring boot to offer “Management-EndPoints“. This assists in helping the developer moving through Application Internals, Metrics, and others.
- Auto-Configuration – It assists in loading default configurations depending on to project you’re working on. This way, unwanted WAR files are avoided.
What’s Spring-Boot dependency management system?
It’s basically utilized in managing configuration & dependencies automatically minus the need of specifying version for the dependencies.
What are the effects of operating Spring-Boot Application as “Java-Application”?
Application auto launches tomcat server immediately when it seems that we’re running web application.
What’s the Spring AOP-Proxy pattern?
This is a well-used design pattern where the proxy is an object which looks similar to another object though adds special features to it behind the scenes.
Moreover, Spring-AOP follows a proxy-based pattern & this is made by the AOP framework, which implements aspect contracts in runtime.
Standard JDK-dynamic proxies are auto AOP proxies that allow every interface(s) to be proxied. Spring-AOP can use CGLIB-proxies which are needed to proxy classes, instead of interfaces. Just in case a business object doesn’t implement an interface, CGLIB-proxies are used via default.
What’s Hibernate ORM-Framework?
ORM (Object-relational mapping) is a phenomenon of mapping application domain-model objects to relational database tables & vice versa. Hibernate is a more commonly utilized java-based ORM framework.
Describe Spring-DAO support?
Data-Access Object support Spring makes it simple to operate with data-access tech like JDBC, JDO, or Hibernate. It enables one to switch in between persistence tech easily. It also allows one to code minus worrying about catching exceptions that are specific to every tech.