SpringMVC搭建之总结篇(未完待续)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linfujian1999/article/details/80055511

上周末和朋友一起交流了下SpringMVC框架的搭建,一下午的时候尽量帮助他理解Spring框架的初步搭建,框架构建完毕测试通过,下一步就可以往里边添加项目业务逻辑了。

我总结的SpringMVC的搭建分为四步:
一、Maven构建项目结构
二、pom文件添加SpringMVC的依赖
三、配置文件
四、添加业务逻辑代码

一、Maven构建项目结构
maven用来做依赖包管理,maven远程仓库根据你需要的功能封装了很多jar包,比如你想用SpringMVC来作为框架,就可以在maven中将springframework的webmvc依赖从远程库添加到本地,注意假如你不使用maven,可能需要把框架搭建需要的spring-context、spring-beans等等手动下载并添加到项目的classpath路径,但maven的优势就是你仅仅在pom中定义一个spring的webmvc,maven就会从远程仓库把你需要的jar包下载到你的classpath路径下。岂不快哉。这个在二/pom文件添加SpringMVC的依赖中详讲。
看一下基于maven搭建的项目的结构,见下图:
这里写图片描述

maven项目的结构比较清晰,下面一一讲解:
src/main/java:主要放业务逻辑java代码,该目录下进一步根据功能分package。
src/main/resource:放一些属性文件,其他配置文件中可以从这些属性文件中读取一些常用属性,比如数据库连接的url、port、用户名、密码。
src/test/java:测试用,具体没亲自体验过
src/main/webapp:该目录放配置文件、视图页面文件及静态资源(css、js等)

以上的结构是常用的maven项目结构,当然也会根据自己的项目情况适当调整。

二、pom文件添加SpringMVC的依赖
先贴一张我的pom.xml的样子
这里写图片描述

先说下pom文件的结构:
1)project标签:最外层的标签
2)dependencyManagement 依赖管理标签:指定你添加的依赖让谁管理,会管理你的依赖的版本,所以下面的依赖可以不写版本
3)dependencies中添加所有的dependency
4)dependency标签:即你的项目需要的依赖,一般maven的依赖不是单个jar包的管理而是一个依赖包含了一个特定的功能组,该组下有若干个jar包。比如上图的spring-webmvc,该依赖描述的是一个基于spring框架的webmvc。其包含了若干相关联的jar包,假如你要用springMVC来构建web项目,就加上这个依赖。一般一个完整的项目中包含许多dependency,这些依赖是在你构建项目过程中根据需要添加的,并不是最初就构建一个完整的pom文件。
5)dependency标签中:
5.1 groupId:该依赖属于哪一个组,组的划分一般根据机构或者大类来区分,比如apache的groupId和org.springframework的groupId。
5.2 artifactId:该依赖的具体id,该id一般定义了唯一的依赖

以上便是pom文件的大体结构。当添加了依赖,maven便会从maven远程仓库将相关依赖包含的jar包根据groupId及artifactId作为唯一标识下载到本地。一般在你的用户目录的.m2目录下。

SpringMVC框架的初步依赖一般为下图所示(随着项目业务的推进不断的添加依赖)
这里写图片描述
用io.spring.platform.platform-bom来进行包管理,最初只需要添加spring-webmvc和spring-orm两个依赖即可

三、配置文件
这里写图片描述

我理解的配置文件按照目的可以分成三类:
第一类就是web.xml,配置内容包括:
1)拦截请求交给servlet去处理,这里的servlet是经spring框架封装后的servlet一般为org.springframework.web.servlet.DispatcherServlet
2)监听器listener
3)应用或者具体项目的相关配置
4)上下文或者非具体项目的相关配置
5)相关过滤器filter
先看下web.xml的结构:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 

  <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

<filter>  
  <filter-name>characterEncodingFilter</filter-name>  
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  <init-param>  
   <param-name>encoding</param-name>  
   <param-value>UTF-8</param-value>  
  </init-param>  
  <init-param>  
   <param-name>forceEncoding</param-name>  
   <param-value>false</param-value>  
  </init-param>  
</filter>  
<filter-mapping>  
  <filter-name>characterEncodingFilter</filter-name>  
  <url-pattern>/*</url-pattern>  
</filter-mapping>   

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/root-context.xml</param-value>
  </context-param>

  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/dispatcherServlet/servlet-context.xml</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>
</web-app>

1)拦截器拦截请求交给servlet处理:

猜你喜欢

转载自blog.csdn.net/linfujian1999/article/details/80055511
今日推荐