SSM框架梳理(四)结合工程整体梳理

一.SSM剩余概念和配置

在之前的三篇文章里,我分别讲了SpringMVC、Spring、Mybatis三个子框架的概念、运行流程以及配置说明,再往前的一篇文章,我也讲过了maven的概念和配置,其中的配置文件,包含了config.properties、mybatis-config.xml、spring-context.xml、spring-mvc.xml,还有maven的pom.xml文件。

整个项目的路径构成和resources里的配置文件,以及pom.xml的位置如上图所示,可见还有几个配置文件是我们没讲过的,这里就先说一说还有那些个关键的配置文件,他们都有什么作用,处在什么路径。

1.Web.xml

身为一个web工程,别管是不是maven管理,也别管用没用ssm框架,web.xml一定是必备的,也是项目第一步加载的一个配置文件,先来看一下它的路径位置:

 然后再直接贴一下web.xml的内容,附上部分核心配置语句的功能:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID"
    version="3.1">
  <!-- 项目名称 -->
  <display-name>xxx-bs-maintaining-app</display-name>
  
  	<!-- Context ConfigLocation -->
    <!-- 加载Spring容器配置 -->
    <!-- 设置spring容器加载所有的配置文件路径 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:/spring-context*.xml</param-value>
	</context-param>
    <!-- 配置ContextLoaderListener监听器,启动web时自动装配ApplicationContext。默认执行实现方法 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>  
	</listener>
    <!-- 解决工程编码过滤器  -->
	<filter>
		<filter-name>encodingFilter</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>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<!-- Apache Shiro -->
    <!-- 配置Shiro安全认证过滤器以及映射 -->
	<filter>
		<filter-name>shiroFilter</filter-name>
		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
		<init-param>
			<param-name>targetFilterLifecycle</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>shiroFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<!-- SiteMesh -->
    <!-- SiteMesh网页布局和修饰框架配置 -->
	<filter>
		<filter-name>sitemeshFilter</filter-name>
		<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>sitemeshFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	
	<!-- MVC Servlet -->
    <!-- 配置SpringMVC核心控制器 -->
    <!-- 配置DispatcherServlet前端控制器 -->
	<servlet>
		<servlet-name>springServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 配置DispatcherServlet的路径 -->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath*:/spring-mvc*.xml</param-value>
		</init-param>
        <!-- 启动时加载一次 -->  
		<load-on-startup>1</load-on-startup>
	</servlet>
    <!--  为DispatcherServlet建立映射  -->
	<servlet-mapping>
		<servlet-name>springServlet</servlet-name>
        <!--  也可以写成*.do  -->
		<url-pattern>/</url-pattern>
	</servlet-mapping>


	<!-- DruidStatView -->
    <!-- Druid Monitor监控java web项目 -->
	<servlet>
		<servlet-name>DruidStatView</servlet-name>
		<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
		<!--init-param>
			<param-name>allow</param-name>
			<param-value>127.0.0.1</param-value>
		</init-param-->
		<!-- 允许清空统计数据 -->  
	   <!--init-param>          
        <param-name>resetEnable</param-name>  
        <param-value>true</param-value>  
	    </init-param-->  
	    <init-param>  
	        <!-- 用户名 -->  
	        <param-name>loginUsername</param-name>  
	        <param-value>druid</param-value>  
	    </init-param>  
	    <init-param>  
	        <!-- 密码 -->  
	        <param-name>loginPassword</param-name>  
	        <param-value>druid#dyb</param-value>  
	    </init-param> 
	</servlet>
	<servlet-mapping>
		<servlet-name>DruidStatView</servlet-name>
		<url-pattern>/druid/*</url-pattern>
	</servlet-mapping>
	
	<!-- Validate code -->
	<servlet>
		<servlet-name>ValidateCodeServlet</servlet-name>
		<servlet-class>com.xxx.lrt.frame.core.web.servlet.ValidateCodeServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>ValidateCodeServlet</servlet-name>
		<url-pattern>/servlet/validateCodeServlet</url-pattern>
	</servlet-mapping>
	
	<!-- [INSERT FRAGMENT HERE] -->

	<!-- Session configure, to "config.properties" file "session.sessionTimeout" parameter.
	<session-config>
		<session-timeout>30</session-timeout>
	</session-config>-->

	<!-- Error page -->
	<!-- <error-page>
		<exception-type>java.lang.Throwable</exception-type>
		<location>/WEB-INF/views/error/500.jsp</location>
	</error-page> -->
	<error-page>
		<error-code>500</error-code>
		<location>/WEB-INF/views/error/500.jsp</location>
	</error-page>
	<error-page>
		<error-code>404</error-code>
		<location>/WEB-INF/views/error/404.jsp</location>
	</error-page>
</web-app>

2.decorators.xml

其中,在sitemesh配置的地方,sitemesh应用Decorator模式用filter截取request和response,在src的WEB-INF下,与web.xml同级,建立以下decorators.xml:

<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/WEB-INF/views">
	
	<!-- 默认装饰页面, 在需要装饰的页面增加<meta name="decorator" content="default"/> -->
	<decorator name="blank" page="layouts/blank.jsp" />
	<decorator name="default" page="layouts/default.jsp" />
	
</decorators>

3.pom.xml

pom.xml是maven集成项目的核心文件,也是牵扯甚广,下面贴一下,里面标注出配置的作用,主要包含的是maven引入的jar包:

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
<!-- 存储包的路径,命名规则第一段为org(非盈利组织)/com(商业组织),第二段为公司名,第三段为项目名 -->
  <groupId>com.xxx.bs</groupId>
  <!-- 打包类型,这里是war包 -->
  <packaging>war</packaging>
    <!-- 模块名 -->
  <artifactId>xxx-bs-maintaining-app</artifactId>
  <version>1.0.0</version>
  <name>xxx-bs-maintaining-app</name>
  <url>http://maven.apache.org</url>
  <!-- 项目属性 -->
    <properties>

        <!-- main version setting -->
        <!-- spring版本号 -->
        <spring.version>4.3.7.RELEASE</spring.version>
        <validator.version>5.1.1.Final</validator.version>
        <!-- mybatis版本号 -->  
        <mybatis.version>3.4.5</mybatis.version>
        <mybatis-spring.version>1.3.1</mybatis-spring.version>
        <druid.version>1.1.6</druid.version>
        <ehcache.version>2.6.9</ehcache.version>
        <ehcache-web.version>2.0.4</ehcache-web.version>
        <!-- 安全框架shiro缓存版本号 -->
        <shiro.version>1.4.0</shiro.version>
        <!-- jedis、redis缓存版本号 -->  
        <jedis.version>2.9.0</jedis.version>
        <spring.data.redis.version>1.8.1.RELEASE</spring.data.redis.version>
        <sitemesh.version>2.4.2</sitemesh.version>
        <!-- tools version setting -->
        <!-- log4j日志文件管理包版本 -->  
        <slf4j.version>1.7.7</slf4j.version>
        <logback.version>1.1.2</logback.version>
        <commons-lang3.version>3.3.2</commons-lang3.version>
        <commons-io.version>2.4</commons-io.version>
        <commons-codec.version>1.9</commons-codec.version>
        <commons-fileupload.version>1.3.1</commons-fileupload.version>
        <commons-beanutils.version>1.9.1</commons-beanutils.version>
        <jackson.version>2.9.3</jackson.version>
        <fastjson.version>1.2.44</fastjson.version>
        <xstream.version>1.4.7</xstream.version>
        <guava.version>18.0</guava.version>
        <dozer.version>5.5.1</dozer.version>
        <poi.version>3.17</poi.version>
        <zip4j.version>1.3.2</zip4j.version>
        <quartz.version>2.2.2</quartz.version>
        <!--引入themeleaf-->  
        <thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>  
                
        <!-- jdbc driver setting -->
        <mysql.driver.version>5.1.31</mysql.driver.version>

        <!-- environment setting -->
        <jdk.version>1.8</jdk.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <downloadSources>true</downloadSources>
        <war.plugin.version>2.6</war.plugin.version>
        <compiler.plugin.version>3.5.1</compiler.plugin.version>
        <clean.plugin.version>2.5</clean.plugin.version>
        <antrun.plugin.version>1.8</antrun.plugin.version>
        <dependency.plugin.version>2.10</dependency.plugin.version>
        <install.plugin.version>2.5.2</install.plugin.version>
    </properties>
    
    
  <!-- 依赖项定义 -->
    <dependencies>

		<dependency>
		    <groupId>org.thymeleaf</groupId>
		    <artifactId>thymeleaf</artifactId>
		    <version>${thymeleaf.version}</version>
		</dependency>
		<dependency>
		    <groupId>net.sf.json-lib</groupId>
		    <artifactId>json-lib</artifactId>
		    <version>2.4</version>
		    <classifier>jdk15</classifier>
		</dependency> 
		<dependency>
		    <groupId>org.thymeleaf</groupId>
		    <artifactId>thymeleaf-spring4</artifactId>
		    <version>${thymeleaf.version}</version>
		</dependency>
		<dependency>  
			<groupId>com.github.theborakompanioni</groupId>  
			<artifactId>thymeleaf-extras-shiro</artifactId>  
			<version>2.0.0</version>  
		</dependency>  
        <!-- SPRING begin -->
        <!-- spring核心包 -->  
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.9</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- spring orm -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
            <version>${spring.data.redis.version}</version>
        </dependency>

        <!-- bean validate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>${validator.version}</version>
        </dependency>
        <!-- SPRING end -->

        <!-- AOP begin -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.7.4</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.7.4</version>
        </dependency>
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>3.1</version>
        </dependency>
        <!-- AOP end -->

        <!-- PERSISTENCE begin -->

        <!-- MyBatis -->
        <!-- mybatis核心包 -->  
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <!-- mybatis/spring包 -->  
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis-spring.version}</version>
        </dependency>

        <!-- connection pool -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${druid.version}</version>
        </dependency>

        <!-- jdbc driver -->
        <!-- 导入Mysql数据库链接jar包 -->  
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.driver.version}</version>
            <scope>compile</scope>
        </dependency>   
        <!-- PERSISTENCE end -->

        <!-- WEB begin -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
			<groupId>opensymphony</groupId>
			<artifactId>sitemesh</artifactId>
			<version>${sitemesh.version}</version>
		</dependency>
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
            &l
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值