Executor and ExecutorServices both interfaces are part of the Executor framework. It is released with Java 5. In java, thread creation is very expensive operation so we should reuse the available thread instead of starting a new thread every time and we can achieve the same using Executor framework.Executor framework use the thread pool to execute the task parallel which helps to optimize response time and resource utilization. It provides four types of built in thread pools −Fixed Thread PoolCached Thread PoolScheduled Thread PoolSingle Thread ExecutorSr. No.KeyExecutorExecutorServices1BasicIt is a parent interfaceIt extends Executor Interface2MethodIt has execute() methodIt has submit() method3Return TypeIt ... Read More
Runnable and Callable both functional interface. Classes which are implementing these interfaces are designed to be executed by another thread.Thread can be started with Ruunable and they are two ways to start a new thread: one is by subclassing Thread class and another is implementing Runnable interface.Thread class does not have constructor for callable so we should use ExecutorService class for executing thread.Sr. No.KeyRunnableCallable1PackageIt belongs to Java.langIt belongs to java.util.concurrent2Thread CreationWe can create thread by passing runnable as a parameter.We can’t create thread by passing callable as parameter 3Return TypeRuunable does not return anythingCallable can return results4.MethodIt has run() methodIt ... Read More
Java Collections framework is used for storing and manipulating group of data. It is an in-memory data structure and every element in the collection should be computed before it can be added in the collections.Stream API is only used for processing group of data. It does not modify the actual collection, they only provide the result as per the pipelined methods.Sr. No.KeyCollectionsStreams1BasicIt is used for storing and manipulating group of dataStream API is only used for processing group of data2PackageAll the classes and interfaces of this API is in the Java.util packageAll the classes and interfaces of this API is ... Read More
Spring AOP is proxy based. Spring used two types of proxy strategy one is JDK dynamic proxy and other one is CGLIB proxy.JDK dynamic proxy is available with the JDK. It can be only proxy by interface so target class needs to implement interface. In your is implementing one or more interface then spring will automatically use JDK dynamic proxies.On the other hand, CGLIB is a third party library which spring used for creating proxy. It can create proxy by subclassing. Spring uses CGLIB for proxy if class is not implementing interface.Sr. No.KeyJDK dynamic proxyCGLIB proxy1BasicIt can be only proxy ... Read More
Applicationcontext.xml - It is standard spring context file which contains all beans and the configuration that are common among all the servlets. It is optional file in case of web app. Spring uses ContextLoaderListener to load this file in case of web application. Spring-servlet.xml- It is a single entry point for Spring. DispatcherServlet scan this file and starts to load its component. It defines the bean and configuration that are only related to that servlet.In Spring MVC application we chain them in below order − web.xml --> dispatcher servlet --> application contextSr. No.KeyApplicationContext.xmlSpring-servlet.xml1BasicapplicationContext.xml defines the beans that ... Read More
ContextLoaderListener creates a root web-application-context for the web-application and puts it in the ServletContext. This context can be used to load and unload the spring-managed beans ir-respective of what technology is being used in the controller layer(Struts or Spring MVC).DispatcherServlet creates its own WebApplicationContext and the handlers/controllers/view-resolvers are managed by this context.Sr. No.KeyDispatcherServletContextLoaderListener1BasicThe task of the DispatcherServlet is to send request to the specific Spring MVC controller ContextLoaderListener reads the Spring configuration file (with value given against contextConfigLocation in web.xml ), parses it and loads the singleton bean defined in that config file. So we initialize the web application with ContextLoaderListener ... Read More
@Inject and @Autowired both annotations are used for autowiring in your application.@Inject annotation is part of Java CDI which was introduced in Java 6, whereas @Autowire annotation is part of spring framework. Both annotations fulfill same purpose therefore, anything of these we can use in our application.Sr. No.Key@Inject@Autowired1BasicIt is part of Java CDIIt is part of Spring framework2RequiredIt has no required attributeIt has required attribute3Default ScopeDefault scope of the autowired beans is SingletonDefault scope of the inject beans is prototype4AmbiguityIn case of ambiguity in beans for injection then @Named qualifier should be added in your code.In case of ambiguity in ... Read More
Spring framework supports five types of bean scope −SingletonPrototypeRequestSessionGlobal SessionAs per the spring documentation −Singleton − It returns a single bean instance per Spring IoC container. This single instance is stored in a cache of such singleton beans, and all subsequent requests and references for that named bean return the cached object.Spring singleton is different than Java singleton. In java, one instance of the bean is created per JVM whereas in spring, one instance of the bean is created per application context.Proptype −As per the spring documentation −Spring does not manage the complete lifecycle of a prototype bean: the container ... Read More
Spring supports multiple types annotations such as @Component, @Controller, @service @Repository and @Bean. All theses can be found under the org.springframework.stereotype package.When classes in our application are annotated with any of the above mentioned annotation then during project startup spring scan(using @componentScan) each class and inject the instance of the classes to the IOC container. Another thing the @ComponentScan would do is running the methods with @Bean on it and restore the return object to the Ioc Container as a bean.Sr. No.Key@Bean@Component1Auto detectionIt is used to explicitly declare a single bean, rather than letting Spring do it automatically. If any class ... Read More
Factory and Dependency injection both are the design pattern which can be used to enhance loose coupling abilities between the software components. Factory design pattern is used to create objects. But, injection and life cycle management of the object should be handled by programmer within the application. There is no way to configure everything in a single place. Therefore, programmers need to call object creation logic wherever it needed which eventually hinder the loose coupling abilities.In DI design pattern, creation of object, injecting of the instance and life cycle management of the instance can be handled outside the code. In spring, ... Read More
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP