Top 50 Spring Interview Questions For | Edureka
Spring Framework Spring CRUD Example using Many to One Mapping . The above class show the Many to One relationship between. Learn and understand these spring framework interview questions which For example, let's say we one Customer class having reference of Person class. . spring container is also able to autowire relationships between collaborating beans. This article features a great number of Spring interview questions and answers for The core features of the Spring Framework can be used in developing any The most useful one is index-art.info . For example, when Spring has to produce a new bean instance each time one.
Starting service [Tomcat] So the Spring Web application entry point is, not surprisingly, a servlet. And, starting with the Servlet 3. DispatcherServlet as the Heart of Spring MVC What we really want to do as developers of a web application is to abstract away the following tedious and boilerplate tasks and focus on useful business logic: The Spring DispatcherServlet provides exactly that.
It is the heart of the Spring Web MVC framework; this core component receives all requests to your application. For example, it allows you to plug in different existing or new adapters for a lot of tasks: The request processing methods will interest us the most. Understanding the HTTP request, both locally during standard development, as well as remotelyis a critical part of understanding the MVC architecture.
It defines the service method that receives incoming requests and produces responses. In more practical terms, HttpServlet is an abstract class with a service method implementation that splits the requests by the HTTP method type and looks roughly like this: In case of the requests to your application, the doGetdoPostetc methods are called for those specific HTTP requests.
FrameworkServlet FrameworkServlet integrates the Servlet functionality with a web application context, implementing the ApplicationContextAware interface. But it is also able to create a web application context on its own. As you already saw, the HttpServletBean superclass injects init-params as bean properties.
So, if a context class name is provided in the contextClass init-param of the servlet, then an instance of this class will be created as an application context.
Otherwise, a default XmlWebApplicationContext class will be used. But you could change that easily. For example, if you need to configure your Spring Web MVC application with a Groovy-based application context, you could use the following configuration of DispatcherServlet in the web.
However, at the Spring MVC level of abstraction, method type is just one of the parameters that can be used to map the request to its handler. And so, the other main function of the FrameworkServlet class is to join the handling logic back into a single processRequest method, which in turn calls the doService method: Here, it adds to the request some useful objects that may come in handy down the processing pipeline: Flash map is basically a pattern to pass parameters from one request to another request that immediately follows.
This may be very useful during redirects like showing the user a one-shot information message after the redirect: The handler is basically any kind of Object and is not limited to a specific interface.
To find the handler that matches the request, Spring goes through the registered implementations of the HandlerMapping interface. There are many different implementations that could suit your needs. For example, it can be configured by injecting its mappings property with a java.
Properties instance similar to this: This is exactly the mapping that connects the dispatcher with the hello and login methods of your controller. These annotations, in turn, are marked with the RequestMapping meta-annotation. The dispatch method also takes care of some other HTTP-specific tasks: Notice how the controller handler returns ModelAndView object and does not render the view by itself: The Autowired annotation can apply to bean property setter methods, non-setter methods, constructor and properties.
The Qualifier annotation along with Autowired can be used to remove the confusion by specifiying which exact bean will be wired. Explain Spring Bean lifecycle? The life cycle of a Spring bean is easy to understand. When a bean is instantiated, it may be required to perform some initialization to get it into a usable state.
Similarly, when the bean is no longer required and is removed from the container, some cleanup may be required. Spring bean factory is responsible for managing the life cycle of beans created through spring container.
The life cycle of beans consist of call back methods which can be categorized broadly in two groups: Post initialization call back methods Pre destruction call back methods Spring framework provides following 4 ways for controlling life cycle events of bean: InitializingBean and DisposableBean callback interfaces Other Aware interfaces for specific behavior Custom init and destroy methods in bean configuration file PostConstruct and PreDestroy annotations For example, customInit and customDestroy methods are example of life cycle method.
Spring Bean Life Cycle What are different Spring Bean Scopes? The beans in spring container can be created in five bean scopes. All the scope names are self-explanatory but lets make them clear so that there will not be any doubt. This bean scope is default and it enforces the container to have only one instance per spring container irrespective of how much time you request for its instance.
This singleton behavior is maintained by bean factory itself. This bean scope just reverses the behavior of singleton scope and produces a new instance each and every time a bean is requested.
How Spring MVC Really Works
With this bean scope, a new bean instance will be created for each web request made by client. As soon as request completes, bean will be out of scope and garbage collected.
Just like request scope, this ensures one instance of bean per user session. As soon as user ends its session, bean is out of scope. When your application works in Portlet container it is built of some amount of portlets. Each portlet has its own session, but if your want to store variables global for all portlets in your application than you should store them in global-session. Spring Bean Scopes What are inner beans in Spring?
In our application, we will be creating only one instance of Person class, and use it inside Customer. Are Singleton beans thread safe in Spring Framework? Spring framework does not do anything under the hood concerning the multi-threaded behavior of a singleton bean. While practically, most spring beans have no mutable state e. Service and DAO clasesand as such are trivially thread safe.
Spring interview questions and answers - HowToDoInJava
But if your bean has mutable state e. View Model Objectsso you need to ensure thread safety. How can you inject a Java Collection in Spring? Spring offers four types of collection configuration elements which are as follows: This helps in wiring ie injecting a list of values, allowing duplicates.
This helps in wiring a set of values but without any duplicates. This can be used to inject a collection of name-value pairs where name and value can be of any type. This can be used to inject a collection of name-value pairs where the name and value are both Strings. How to inject a java. Properties into a Spring Bean? Explain Spring Bean Autowiring? In spring framework, setting bean dependencies in configuration files is a good practice to follow, but the spring container is also able to autowire relationships between collaborating beans.
This means that it is possible to automatically let Spring resolve collaborators other beans for your bean by inspecting the contents of the BeanFactory. Autowiring is specified per bean and can thus be enabled for some beans, while other beans will not be autowired. The following excerpt from the XML configuration file shows a bean being autowired by name.
To use Autowired annotation in bean classes, you must first enable the annotation in spring application using below configuration. Explain different modes of bean autowiring? There are five auto wiring modes in spring framework. Lets discuss them one by one. This option is default for spring framework and it means that autowiring is OFF. You have to explicitly set the dependencies using tags in bean definitions. This option enables the dependency injection based on bean names.
When autowiring a property in bean, property name is used for searching a matching bean definition in configuration file. If such bean is found, it is injected in property.
If no such bean is found, a error is raised. This option enables the dependency injection based on bean types. Autowiring by constructor is similar to byType, but applies to constructor arguments. In autowire enabled bean, it will look for class type of constructor arguments, and then do a autowire by type on all constructor arguments.
Autowiring by autodetect uses either of two modes i. First it will try to look for valid constructor with arguments, If found the constructor mode is chosen. If there is no constructor defined in bean, or explicit default no-args constructor is present, the autowire byType mode is chosen. How do you turn on annotation based autowiring?
Explain Required annotation with example? In a production-scale application, there may be hundreds or thousands of beans declared in the IoC container, and the dependencies between them are often very complicated.
- Spring CRUD Example using Many to One Mapping
- Spring CRUD Example using One to One Mapping of Two Tables
- Spring interview questions and answers
In real life application, you will not be interested in checking all the bean properties configured in your context files. Rather you would like to check if particular set of properties have been set or not in some specific beans only.
So solve this problem, you can use Required annotation. To Use the Required annotation over setter method of bean property in class file as below: To enable this bean post processor for property checking, you must register it in the Spring IoC container.
Top 80 Spring MVC Framework Interview Questions & Answers
Explain Autowired annotation with example? The Autowired annotation provides more fine-grained control over where and how autowiring should be accomplished. When Spring finds an Autowired annotation used with setter methods, it tries to perform byType autowiring on the method.
You can apply Autowired to constructors as well.
Explain Qualifier annotation with example? Qualifier means, which bean is qualify to autowired on a field. The qualifier annotation helps disambiguate bean references when Spring would otherwise not be able to do so. When you run above example, it hits below exception: No unique bean of type [com. Difference between constructor injection and setter injection? Please find below the noticeable differences: In Setter Injection, partial injection of dependencies can possible, means if we have 3 dependencies like int, string, long, then its not necessary to inject all values if we use setter injection.
Spring CRUD Example using One to One Mapping of Two Tables - Dinesh on Java
If you are not inject it will takes default values for those primitives. In constructor injection, partial injection of dependencies is not possible, because for calling constructor we must pass all the arguments right, if not so we may get error. Setter Injection will overrides the constructor injection value, provided if we write setter and constructor injection for the same property.
But, constructor injection cannot overrides the setter injected values. Using setter injection you can not guarantee that certain dependency is injected or not, which means you may have an object with incomplete dependency. On other hand constructor Injection does not allow you to construct object, until your dependencies are ready.