SSM:spring+springmvc+mybatis框架中的XML配置⽂件功能详细解释
(转)
原⽂:blog.csdn/yijiemamin/article/details/51156189#
这⼏天⼀直在整合SSM框架,虽然⽹上有很多已经整合好的,但是对于⾥⾯的配置⽂件并没有进⾏过多的说明,很多⼈知其然不知其所以然,经过⼏天的搜索和整理,今天总算对其中的XML配置⽂件有了⼀定的了解,所以拿出来⼀起分享⼀下,希望有不⾜的地⽅⼤家批评指正~~~
⾸先这篇⽂章暂时只对框架中所要⽤到的配置⽂件进⾏解释说明,⽽且是针对注解形式的,框架运转的具体流程过两天再进⾏总结.
spring+springmvc+mybatis框架中⽤到了三个XML配置⽂件:l(也常常叫做l),第⼀个不⽤说,每个web项⽬都会有的也是关联整个项⽬的配置.第⼆个⽂件l是springmvc的⼀些相关配置,第三个是mybatis的相关配置.
项⽬中还会⽤到两个资源属性⽂件jdbc.properties和log4j.properties.⼀个是关于jdbc的配置,提取出来⽅便以后的修改.另⼀个是⽇志⽂件的配置.
以上是我这篇⽂章中所要讲的内容,⽐较简单,也很容易懂.希望⼤⽜不要鄙视~~接下来进⼊正题:
⼀ l
关于这个配置⽂件我以前⼀直都是朦朦胧胧的状态,刚好借着这次整合框架的机会将它了解清楚.在下⾯的代码中我对每⼀个标签都进⾏了详细的注释,⼤家⼀看就懂,主要理解<servlet>中的配置,因为其中配置了前端控制器,在SSM框架中,前端控制器起着最主要的作⽤.下⾯贴上代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="/2001/XMLSchema-instance"
xmlns="java.sun/xml/ns/javaee"
xsi:schemaLocation="java.sun/xml/ns/javaee java.sun/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<context-param><!--全局范围内环境参数初始化-->
<param-name>contextConfigLocation</param-name><!--参数名称-->
<param-value>l</param-value><!--参数取值-->
</context-param>
<!--以下配置的加载顺序:先 ServletContext >> context-param >> listener >> filter >> servlet >> spring-->
<!---------------------------------------------------过滤器配置------------------------------------------------------>
<!--例:编码过滤器-->
<filter><!-- ⽤来声明filter的相关设定,过滤器可以截取和修改⼀个Servlet或JSP页⾯的请求或从⼀个Servlet或JSP页⾯发出的响应-->
<filter-name>encodingFilter</filter-name><!--指定filter的名字-->
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><!--定义filter的类的名称-->
<async-supported>true</async-supported><!--设置是否启⽤异步⽀持-->
<init-param><!--⽤来定义参数,若在Servlet可以使⽤下列⽅法来获得:String param_name=getServletContext().getInitParamter("param-name⾥⾯的值");-->
<param-name>encoding</param-name><!--参数名称-->
<param-value>UTF-8</param-value><!--参数值-->
</init-param>
</filter>
<filter-mapping><!--⽤来定义filter所对应的URL-->
<filter-name>encodingFilter</filter-name><!--指定对应filter的名字-->
<url-pattern>/*</url-pattern><!--指定filter所对应的URL-->
springmvc常用标签</filter-mapping>
<!---------------------------------------------------配置------------------------------------------------------>
<!--例:spring-->
<listener><!--⽤来设定Listener接⼝-->
<listener-class>org.t.ContextLoaderListener</listener-class><!--定义Listener的类名称-->
</listener>
<!-- 防⽌Spring内存溢出 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<!---------------------------------------------------servlet配置------------------------------------------------------>
<servlet><!--⽤来声明⼀个servlet的数据 -->
<servlet-name>SpringMVC</servlet-name><!--指定servlet的名称-->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--指定servlet的类名称,这⾥配置了前端控制器-->
<init-param><!--⽤来定义参数,可有多个init-param。在servlet类中通过getInitParamenter(String name)⽅法访问初始化参数 -->
<param-name>contextConfigLocation</param-name><!--参数名称-->
<param-value>l</param-value><!--参数值-->
</init-param>
<load-on-startup>1</load-on-startup><!--当值为正数或零时:Servlet容器先加载数值⼩的servlet,再依次加载其他数值⼤的servlet.-->
<async-supported>true</async-supported><!--设置是否启⽤异步⽀持-->
</servlet>
<servlet-mapping><!--⽤来定义servlet所对应的URL-->
<servlet-name>SpringMVC</servlet-name><!--指定servlet的名称-->
<url-pattern>/</url-pattern><!--指定servlet所对应的URL-->
</servlet-mapping>
<!-----------------------------------------------会话超时配置(单位为分钟)------------------------------------------------->
<session-config><!--如果某个会话在⼀定时间未被访问,则服务器可以扔掉以节约内存-->
<session-timeout>120</session-timeout>
</session-config>
<!---------------------------------------------------MIME类型配置 ------------------------------------------------------>
<mime-mapping><!--设定某种扩展名的⽂件⽤⼀种应⽤程序来打开的⽅式类型,当该扩展名⽂件被访问的时候,浏览器会⾃动使⽤指定应⽤程序来打开-->
<extension>*.ppt</extension><!--扩展名名称-->
<mime-type>application/mspowerpoint</mime-type><!--MIME格式-->
</mime-mapping>
<!---------------------------------------------------欢迎页⾯配置 ------------------------------------------------------>
<welcome-file-list><!--定义⾸页列单.-->
<welcome-file>/index.jsp</welcome-file><!--⽤来指定⾸页⽂件名称.我们可以⽤<welcome-file>指定⼏个⾸页,⽽服务器会依照设定的顺序来⾸页.-->
<welcome-file>/index.html</welcome-file>
</welcome-file-list>
<!---------------------------------------------------配置错误页⾯------------------------------------------------------>
<error-page><!--将错误代码(Error Code)或异常(Exception)的种类对应到web应⽤资源路径.-->
<error-code>404</error-code><!--HTTP Error code,例如: 404、403-->
<location>error.html</location><!--⽤来设置发⽣错误或异常时要显⽰的页⾯-->
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type><!--设置可能会发⽣的java异常类型,例如:java.lang.Exception-->
<location>ExceptionError.html</location><!--⽤来设置发⽣错误或异常时要显⽰的页⾯-->
</error-page>
</web-app>
⼆ l
需要实现基本功能的配置
1 配置 <mvc:annotation-driven/>
2 配置 <context:component-scan base-package="ller"/> //配置controller的注⼊
3 配置视图解析器
<mvc:annotation-driven/> 相当于注册了DefaultAnnotationHandlerMapping(映射器)和AnnotationMethodHandlerAdapter(适配器)两个bean.即解决了
@Controller注解的使⽤前提配置。
context:component-scan 对指定的包进⾏扫描,实现注释驱动Bean定义,同时将bean⾃动注⼊容器中使⽤。即解决了@Controller标识的类的bean的注⼊和使⽤。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance"
xmlns:aop="/schema/aop"
xmlns:mvc="/schema/mvc"
xmlns:context="/schema/context"
xmlns:tx="/schema/tx"
xsi:schemaLocation="/schema/beans
/schema/beans/spring-beans-4.1.xsd
/schema/tx
/schema/tx/spring-tx-4.1.xsd
/schema/aop
/schema/aop/spring-aop-4.1.xsd
/schema/context
/schema/context/spring-context-4.1.xsd
/schema/mvc
/schema/mvc/spring-mvc.xsd">
<!-- 1、配置映射器与适配器 -->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 2、视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<span ></span><!-- 前缀和后缀 -->
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- 3、⾃动扫描该包,使SpringMVC认为包下⽤了@controller注解的类是控制器 -->
<context:component-scan base-package="ller"/>
</beans>
三 l(也常常叫做l)
需要实现基本功能的配置
1 配置 <context:component-scan base-package="com.rhzh"/> //⾃动扫描,将标注Spring注解的类⾃动转化Bean,同时完成Bean的注⼊
2 加载数据资源属性⽂件
3 配置数据源三种数据源的配置⽅式
4 配置sessionfactory
5 装配Dao接⼝
6 声明式事务管理
7 注解事务切⾯
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance"
xmlns:aop="/schema/aop"
xmlns:context="/schema/context"
xmlns:tx="/schema/tx"
xsi:schemaLocation="/schema/beans
/schema/beans/spring-beans-4.1.xsd
/schema/tx
/schema/tx/spring-tx-4.1.xsd
/schema/aop
/schema/aop/spring-aop-4.1.xsd
/schema/context
/schema/context/spring-context-4.1.xsd">
<!--1 ⾃动扫描将标注Spring注解的类⾃动转化Bean-->
<context:component-scan base-package="com.rhzh"/>
<!--2 加载数据资源属性⽂件 -->
<bean id="propertyConfigurer"
class="org.springframework.fig.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties"/>
</bean>
<span ><!-- 3 配置数据源 --></span>
<bean id="dataSource" class="org.apachemons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
<!-- 初始化连接⼤⼩ -->
<property name="initialSize" value="${initialSize}"></property>
<!-- 连接池最⼤数量 -->
<property name="maxActive" value="${maxActive}"></property>
<!-- 连接池最⼤空闲 -->
<property name="maxIdle" value="${maxIdle}"></property>
<!-- 连接池最⼩空闲 -->
<property name="minIdle" value="${minIdle}"></property>
<!-- 获取连接最⼤等待时间 -->
<property name="maxWait" value="${maxWait}"></property>
</bean>
<!-- 4 配置sessionfactory -->
<bean id="sqlSessionFactory" class="batis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- ⾃动扫描l⽂件 -->
<property name="mapperLocations" value="classpath:com/rhzh/mapping/*.xml"></property>
</bean>
<!-- 5 装配dao接⼝ -->
<bean class="batis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.rhzh.dao"/><!-- DAO接⼝所在包名,Spring会⾃动查其下的类 -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
<!-- 6、声明式事务管理 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 7、注解事务切⾯ --><span ></span><pre name="code" class="html"><tx:annotation-driven transaction-manager="transactionManager"/>下⾯是需要引⼊的两个资源属性⽂件:
jdbc.properties
sql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/ecdatabase?characterEncoding=utf-8
username=root
password=admin
#定义初始连接数
initialSize=0
#定义最⼤连接数
maxActive=20
#定义最⼤空闲
maxIdle=20
#定义最⼩空闲
minIdle=1
#定义最长等待时间
maxWait=60000
log4j.properties
#定义LOG输出级别
#定义⽇志输出⽬的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#可以灵活地指定⽇志输出格式,下⾯⼀⾏是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
#⽂件⼤⼩到达指定尺⼨的时候产⽣⼀个新的⽂件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出⽬录
log4j.appender.File.File = logs/ssm.log
#定义⽂件最⼤⼤⼩
log4j.appender.File.MaxFileSize = 10MB
# 输出所以⽇志,如果换成DEBUG表⽰输出DEBUG以上级别⽇志
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论