What is the purpose of each function. Why spring has given two different functions for configuration classes? I am confused between two, which one should I use?
DIfference between getRootConfigClasses() and getServletConfigClasses() in AbstractAnnotationConfigDispatcherServletInitializer
1.2k Views Asked by Akshay Bande At
2
There are 2 best solutions below
1
Michal W
On
createRootApplicationContext()
The returned context ... will be established as the parent context for any DispatcherServlet application contexts. As such, it typically contains middle-tier services, data sources, etc.
createServletApplicationContext()
The returned context ... typically contains controllers, view resolvers, locale resolvers, and other web-related beans.
Comprehensive difference explanation between servlet and root context: What is the difference between ApplicationContext and WebApplicationContext in Spring MVC?
Related Questions in JAVA
- I need the BIRT.war that is compatible with Java 17 and Tomcat 10
- Creating global Class holder
- No method found for class java.lang.String in Kafka
- Issue edit a jtable with a pictures
- getting error when trying to launch kotlin jar file that use supabase "java.lang.NoClassDefFoundError"
- Does the && (logical AND) operator have a higher precedence than || (logical OR) operator in Java?
- Mixed color rendering in a JTable
- HTTPS configuration in Spring Boot, server returning timeout
- How to use Layout to create textfields which dont increase in size?
- Function for making the code wait in javafx
- How to create beans of the same class for multiple template parameters in Spring
- How could you print a specific String from an array with the values of an array from a double array on the same line, using iteration to print all?
- org.telegram.telegrambots.meta.exceptions.TelegramApiException: Bot token and username can't be empty
- Accessing Secret Variables in Classic Pipelines through Java app in Azure DevOps
- Postgres && statement Error in Mybatis Mapper?
Related Questions in SPRING
- HTTPS configuration in Spring Boot, server returning timeout
- Multi Tenancy in Spring - Partitioned Data Approach
- How to create beans of the same class for multiple template parameters in Spring
- org.telegram.telegrambots.meta.exceptions.TelegramApiException: Bot token and username can't be empty
- Springboot: How to get an entity optional property and check null?
- How do I propagate the current SecurityContext to my @RabbitListener in Spring Boot?
- Spring's XML based bean configuration for Object Mapper's Case Insensitive property
- Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. I'm using Postgresql
- springboot class org.hibernate.mapping.Bag cannot be cast to class org.hibernate.mapping.SimpleValue
- Issue while deploying JDK 17 and Spring 6 application in Tomcat 10.1.20
- Spring JPA Data Auditing - How to design it?
- Springframework test: Async not started
- Error: Cannot invoke "jakarta.servlet.http.HttpSession.getAttribute(String)" because "session" is null
- How does spring-retry determine which methods to retry when @Retryable is placed at the class level?
- problem with edge server registration in Eureka
Related Questions in SPRING-BOOT
- Multi Tenancy in Spring - Partitioned Data Approach
- I have created a spring boot application with spring data JPA, Rest ,oracle and i am getting this ORA-00933: SQL command not properly ended
- Springboot: How to get an entity optional property and check null?
- How to create jasper report in spring boot rest api with jpa
- JSON Body is Not Passing Certain Strings
- Unresolved reference error is showing up after adding the dgs codegen plugin successfully
- Transaction silently rolled back
- JPA buddy error when generating JPA Entities from DB
- Migrating Spring Boot 2 to 3 throws org.glassfish.jaxb.runtime.v2.runtime.IllegalAnnotationsException: 3 counts of IllegalAnnotationExceptions
- Hibernate SQL Error: Missing FROM-clause entry for table "th1_1"
- Appwrite and / or Spring Boot Backend
- Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. I'm using Postgresql
- Driver com.microsoft.sqlserver.jdbc.SQLServerDriver claims to not accept jdbcUrl, ${SPRING_DATASOURCE_URL}: GitHub Actions
- springboot class org.hibernate.mapping.Bag cannot be cast to class org.hibernate.mapping.SimpleValue
- Spring security causing 404 with message "No static resource login"
Related Questions in SPRING-MVC
- springboot class org.hibernate.mapping.Bag cannot be cast to class org.hibernate.mapping.SimpleValue
- Spring security causing 404 with message "No static resource login"
- Getting error while deploying war in tomcat 9
- Why Jackson needs a default constructor?
- what is error for the below springmvc code?
- Expected a JavaScript module script but the server responded with a MIME type of "text/html" -- when integrating Angular FrontEnd with spring MVC
- How to manage exceptions thrown in filters(common filters not only spring-security)?
- Bean Validaton : org.springframework.web.bind.MethodArgumentNotValidException
- Where I use @ExtendsWith(MockitoExtension.class) and @SpringBootTest anyone clarify me with example
- maven clean install and mvn spring-boot:run gives me on POST request 401 (Unauthorized) error
- How to deploy Tibco GI to windows 10
- Spring Boot request body validation not working
- maintain the session after logout in existing spring mvc project
- kendo is not defined after upgrade springboot from 2.0 to 3.1
- Cors not allowed to completed the request in Spring MVC
Related Questions in SPRING-JAVA-CONFIG
- java.lang.IllegalStateException: Failed to load ApplicationContext - Oracle11g + Hibernate + Spring Data JPA
- Spring 5 static resource mapping
- Spring Security/CXF throws AuthenticationCredentialsNotFoundException: An Authentication object was not found in the SecurityContext
- Spring Java Config: configure already existing bean
- How to fix a BeanCreationException in a Spring 3.2 java configuration after transforming it from a xml configuration?
- Spring Security Authentication UserDetailsService Implementation class not being invoked
- How can I create bean for adviceChain?
- Spring batch flow declaration using java config
- DIfference between getRootConfigClasses() and getServletConfigClasses() in AbstractAnnotationConfigDispatcherServletInitializer
- If we use java config for obj creation and other things is it not against IOC principle
- What is the java config equivalent of <no-rollback-exception-classes> tag in spring batch?
- Spring batch java based configuration autowire not working
- Spring: Configuration
- Spring MVC java Configuration class is not calling , so i am getting 404 error
- How to replace spring.xml configuration with Java configuration?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
In a typical Spring application there are 2
ApplicationContextinstances, one is the so called root application context and the second (or third or ...) is the servlet application context.The root application typically contains shared/general resources like
DataSource, services, repositories, etc... The servlet context contains beans specific for this context, generally things like view resolver, handler mappings, controllers etc. The servlet context uses the root context as a parent and thus can see the beans defined in there (the root doesn't know about the servlet contexts!).In this typical setup the root context is loaded by the
ContextLoaderListenerand the servlet context by theDispatcherServlet.In the old days one would write a
web.xmlwhich would contain aservlet-listenerfor theContextLoaderListenerand aservletelement for theDispatcherServlet.The
ContextLoaderListenerwill load theapplicationContext.xmlby default and theDispatcherServleta<servlet-name>-servlet.xml(hence adispatcher-servlet.xml).As of the Servlet 3.0 spec it is possible to replace the
web.xmlwith a Java based configuration. Spring has taken the time to provide base classes which already do the basic configuration (like the registration of theContextLoaderListenerandDispatcherServlet). However as it is now fully Java based configuration both theContextLoaderListenerandDispatcherServletneed to be provided with a list of configuration classes, as there is no default class name it can detect to load.So the
getRootConfigClasses()will configure theContextLoaderListenerand is actually optional (you can returnnullor an empty array). ThegetServletConfigClasses()will configure theDispatcherServlet(and is required).