资源描述
关于ssm框架的整合步骤
1. 什么是ssm?
ssm指的是springmvc+spring+mybatis,而且这个组合框架是基于mvc架构的。Springmvc是做控制层的,spring在此中是用来管理业务逻辑层的,mybatis是用来做dao层的。而架构mvc中的m指的是model,其中包含service,dao以及javabean(pojo),其中v指的是视图,
其中的c指的是controller(handler).
2.导入的jar包
3.ssm框架配置步骤
1.从web.xml文件开始
不管你用的什么框架,如果你使用的是Tomcat作为服务器,都需要在web.xml中配置一个入口,开启使用的框架,故此,我们先从web.xml文件中开始配置.
Spring是springmvc和mybatis依附的对象。
在web.xml中配置spring监听器,配置如下:
<!--这个上下文全局参数是给spring监听器使用的-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:application-context.xml</param-value>
</context-param>
<!--spring监听器-->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
在web.xml中配置springmvc的前端控制器(中央处理器),配置如下:
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!--加载web.xml配置文件的时候立即实例化-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--/*:拦截所有的请求 跳转视图都会拦截 比如 /WEB-INF/jsp/item.jsp
/:拦截所有的请求 跳转视图不拦截 不过会拦截.css .js .doc ...
*.do:拦截.do后缀的请求-->
<url-pattern>*.do</url-pattern>
</servlet-mapping>
在web.xml中配置请求时中文乱码过滤器,配置如下:
<filter>
<filter-name>encoding</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>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
2. 在application-context.xml中的配置
<!--所有的配置文件从这里导入-->
<import resource=”config/*.xml”/>
3. 在config包中的jdbc.xml
<!--配置c3p0连接池-->
<bean id=”dataSource” class=”com.mchange.v2.c3p0.ComboPooledDataSource”>
<property name=”driverClass” value=”${driverClass}”/>
<property name=”jdbcUrl” value=”${jdbcUrl}”/>
<property name=”user” value=”${user}”/>
<property name=”password” value=”${password}”/>
</bean>
4. 在config包中的property.xml
<!--读取jdbc.properties文件-->
<!--这种写法不利于扩展-->
<context:property-placeholder location=”classpath:jdbc.properties”/>
使用下面这种配置,有利于扩展
<bean class=”org.springframework.beans.factory.config.PropertyPlaceholderConfigurer”>
<property name=”locations”>
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
5. 在config包中的jdbc.properties的配置
driverClass = com.mysql.jdbc.Driver
jdbcUrl = jdbc:mysql://localhost:3306/mybatis001/?characterEncoding=utf-8
user=root
password=
6. 在config包中的annotation.xml的配置
<!--扫描包-->
<context:component-scan base-package=”com.donghua”>
<context:exclude-filter type=”annotation” expression=”org.springframework.stereotype.Controller”/>
</context:component-scan>
7. 在config包中的transaction.xml的配置
<!--配置数据源事务 注解式开发-->
<bean id=”transactionManager”” class=”org.springframework.jdbc.datasource.DataSourceTransactionManager”>
<property name=”dataSource” ref=”dataSource”></property>
</bean>
<!--开启注解-->
<tx:annotation-driven transaction-manager=”transactionManager”/>
8. 在config包中的mybatis.xml的配置
<!--sqlSessionFactory工厂-->
<bean id=”sqlSessionFactory” class=”org.mybatis.spring.SqlSessionFactoryBean”>
<!--注入数据源-->
<property name=”dataSource” ref=”dataSource”/>
<!--配置核心配置文件所在位置-->
<property name=”configLocation” value=”classpath:mybatis-config.xml”/>
</bean>
<!--Mapper接口动态代理开发 升级 扫描-->
<bean class=”org.mybatis.spring.mapper.MapperScannerConfigurer”>
<property name=”basePackage” value=”com.donghua.core.dao”/>
</bean>
9. 在mybatis-config.xml中的配置
<settings>
<!--开启懒加载-->
<setting name=”lazyLoadingEnabled” value=”true”/>
<!--加载必须的-->
<setting name=”aggressiveLazyLoading” value=”false”/>
<!--开启二级缓存-->
<setting name=”cacheEnabled” value=”true”/>
</settings>
<!--为类类型启别名 为的是简化书写-->
<typeAliases>
<package name=”com.donghua.core.po”/>
</typeAliases>
10. 在springmvc.xml中的配置
<!--扫描-->
<context:component-scan base-package=”com.donghua” use-default-filters=”false”>
<context:include-filter type=”annotation” expression=”org.springframework.stereotype.Controller”>
</context:component-scan>
<!--视图解释器-->
<bean id=”jspViewResolver” class=”org.springframework.web.servlet.view.InternalResourceViewResolver”>
<property name=”prefix” value=”/WEB-INF/jsp/”/>
<property name=”suffix” value=”.jsp”/>
</bean>
<!--注解式 处理器映射器和处理器适配器-->
<mvc:annotation-driven conversion-service=”conversionService” validator=”validator”/>
<!--校检-->
<bean id=”validator” class=”org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.”>
<property name=”providerClass” value=”org.hibernate.validator.HibernateValidator”/>
</bean>
<!--日期转换器-->
<bean id=”conversionService” class=”org.springframework.format.support.FormattingConversionServiceFactoryBean”>
<property name=”converters”>
<list>
<bean class=”mon.convertion.CustomConverterDate”/>
</list>
</property>
</bean>
<!--上传图片 id="multipartResolver" 通过此名找到MultiPartFile接口的实现类-->
<bean id=”multipartResolver” class=”mons.CommonsMultipartResolver”>
<!--设置文件上传大小 默认单位B 要求1M-->
<property name=”maxUploadSize” value=”1048576”/>
</bean>
11. 在springmvc.xml中配置全局异常处理
需要自定义一个异常处理类,例如:
然后在springmvc.xml中,配置一个该类的bean
12. 在springmvc.xml中配置校验
第1步:导入必须的jar包
第2步:在javabean上打注解
第3步:生成分组的接口
第4步:在springmvc.xml文件中配置
<!-- 注解式 -->
<mvc:annotation-driven conversion-service="conversionService" validator="validator"/>
<!-- 校验 -->
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
<!-- 指定信息保存位置 -->
<property name="validationMessageSource" ref="messageSource"/>
</bean>
<!-- 读取message.properties文件的类 -->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<!-- 资源文件名 -->
<property name="basenames">
<list>
<value>classpath:message</value>
</list>
</property>
<!-- 资源文件编码格式 -->
<property name="fileEncodings" value="utf-8"/>
<!-- 对资源文件缓存时间,单位秒 -->
<property name="cacheSeconds" value="120"/>
</bean>
第5步:编写message.properties文件
itemsNameSize=\u8BF7\u8F93\u51651-5\u4E4B\u95F4\u7684\u6570
itemsName=\u4E0D\u4E3A\u7A7A
13. 当springmvc的前端控制器的接收的请求是/时的配置
在web.xml中的配置如下,给springmvc前端控制器添加的另外一个映射路径:
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
也要也中文乱码过滤器,配置添加一个新的过滤映射路径
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
我们需要让springmvc的前端控制器不拦截.css .js. .doc ...
在springmvc.xml中的配置如下:
14. 在springmvc.xml中配置拦截器
<!-- springmvc拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- 设置拦截规则 -->
<mvc:mapping path="/*/**"/>
<!-- 拦截器类 -->
<bean class="mon.interceptor.CustomInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
展开阅读全文