概述
Spring MVC 配置方案:
1.基于java 类配置
2.基于web.xml 配置
从哪里开始?
学源码再补充吧。。。
1.基于java 类配置
public class DispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
/**
* 返回带有@Configuration 注解的类将会用来配置ContextLoaderListener 将建的应用上下文中的bean,通常是驱动应用后端的中间层和数据层组件。
* @return
*/
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] {RootConfig.class};
}
/**
* DispatcherServlet 启动的时候,会创建Spring应用上下文,加载配置文件或配置类中所声明的Bean,web组件的bean如控制器,视图解析器和处理器樱色和。
* 返回带有@Configuration 注解的类将会用来定义DispatcherServlet 应用上下文中的bean。
* @return
*/
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] {WebConfig.class};
}
/**
* getServletMappings 方法将一个或多个路径映射到DispatcherServlet 上,“/” 表示它会是应用的默认Servlet,它会处理进入应用的所有请求。
* @return
*/
@Override
protected String[] getServletMappings() {
return new String[] {"/"};
}
}
2.基于web.xml 配置
<!-- 设置web.xml 使用基于java 的配置,相当于DispatcherServletInitializer.java -->
<!-- 启动java类来配置,而不是xml,注意是contextClass -->
<context-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.qhf.config.RootConfig</param-value><!-- 如果不是基于Java配置类来配置,那么这里只能配置xml文件,无配置路径则默认在clsspath -->
</context-param>
<!--
1.ContextLoaderListener继承自ContextLoader,实现的是ServletContextListener接口。
2.ServletContextListener接口里的函数会结合Web容器的生命周期被调用。因为ServletContextListener是ServletContext的监听者,
如果ServletContext发生变化,会触发相应的事件,而监听器一直对事件监听,如果接收到了变化,就会做出预先设计好的相应动作。
由于ServletContext变化而触发的监听器的响应具体包括:在服务器启动时,ServletContext被创建的时候,服务器关闭时,
ServletContext将被销毁的时候等。
3. ContextLoaderListener的作用就是启动Web容器时,读取在contextConfigLocation中定义的xml文件,
自动装配ApplicationContext的配置信息,并产生WebApplicationContext对象,然后将这个对象放置在ServletContext的属性里,
这样我们只要得到Servlet就可以得到WebApplicationContext对象,并利用这个对象访问spring容器管理的bean。
简单来说,就是上面这段配置为项目提供了spring支持,初始化了Ioc容器
4.上面说到“监听器一直对事件监听,如果接收到了变化,就会做出预先设计好的相应动作”。而监听器的响应动作就是在服务器启动时contextInitialized
会被调用,关闭的时候contextDestroyed被调用。这里我们关注的是WebApplicationContext如何完成创建。因此销毁方法就暂不讨论。
链接:https://www.jianshu.com/p/523bfddf0810-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- DispatcherServlet 也会配置Spring应用上下文 -->
<!-- 指定java类来配置应用上下文 -->
<init-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</init-param>
<!-- 指定java 配置类的路径 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.qhf.config.WebConfig</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
上面二选一来配置就行了
最后
以上就是奋斗春天为你收集整理的Spring实战13——Spring MVC 配置方案的全部内容,希望文章能够帮你解决Spring实战13——Spring MVC 配置方案所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复