前五章我们一直在做的是视图和Controller的交互。一个项目百分之九十九都需要对数据库进行CRUD(增删改查)操作。在我们开始对db进行操作之前,可能先要解决配置文件问题。这一章和大家一起学习一下Spring的配置文件。
SpringMVC 的配置分为两部分 application.xml 和 spring-servlet.xml。那么这两部分都有是是干什么的?
- application.xml :对应的是系统级别的配置,作用范围是系统上下文。所以它的初始化需要放到 web.xml 中的context-param标签中。
- spring-servlet.xml:对应的是 controller 级别的配置,作用范围是控制层上下文。我们之前做的是视图和Controller的交互所以我们第二章中只配置了spring-servlet.xml。
详解:
- spring-servlet.xml只是 controller 级别的上下文,说白了就是 servlet 级别的初始化,它不涉及到除了转发之外的任何实体,所以它的作用范围仅仅限制在 servlet 级别,所以它的初始化应该是跟spring 的 DispatcherServlet 初始化在一起,所以就是在 servlet标签中初始化的。
- 对于 servlet配置文件里面应该初始化的东西,除了视图的解析方式、静态资源文件的存放位置、controller的初始化方式之外,其他的都不应该放在 servlet 配置文件中,因为它只负责 请求的转发,返回结果的解析以及静态资源文件的解析,其他的对象的初始化,定时任务…都不应该放到这个配置文件下进行管理。
- 对于一些服务启动就要加载的类,启动时DB的链接我们都要在application.xml 中完成。
这两个都需要在web.xml中进行配置:
1.spring-servlet.xml
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
这个会默认配置成,前面我们已经详细说个spring-servlet.xml在web中如何配置这里就不多说了。
2.applicationContext.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/XXXXXX/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
我们主要来看看applicationContext。大家会问:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
这行代码是什么意思啊?这就是传说中的监听,一般配合context-param标签来使用,监听就是监视啊,它会监视web启动,一启动自动装配ApplicationContext的配置信息。
到这springMVC需要的两个配置文件在web.xml中的写完就结束了。
马上就要开始我们的CRUD之旅。。。。。