好用的前端框架是SSM框架

SSM框架――详细整合教程_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
SSM框架――详细整合教程
上传于|0|0|文档简介
&&SSM框架――详细整合教程(Spring+SpringMVC+MyBatis)
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩17页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢ssm框架的总结
时间: 17:03:28
&&&& 阅读:172
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&ssm对应的是spring+springmvc+mybatis,
一、spring,略。
二、spring mvc是spring提供的mvc模块,
从图中可以看出,springmvc的模块划分非常多,每一个模块都需要自己选择一种实现(有springmvc实现的)。
1 &?xml version="1.0" encoding="UTF-8"?&
2 &beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"&
&!-- 处理器映射器 ,下面使用spring提供的映射器BeanNameUrlHandlerMapping,
是根据处理器的name和class属性来进行映射的,name就是url,class就是映射到的处理类
这是非注解的映射器的一种
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /&
&!-- 处理器适配器 :所有的适配器都实现了HandlerAdapter接口,
而在适配器实现的support方法中,springmvc还要求通过该适配器适配的类必须实现指定的接口,
例如下面的处理器是通过SimpleControllerHandlerAdapter进行适配的,就必须实现Controller接口
class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /&
&!-- 处理器 --&
&bean name="/queryitems.action" class="com.dqxst.controller.ItemsContraller" /&
&!-- 视图解析器 :解析jsp视图,默认使用jstl标签--&
class="org.springframework.web.servlet.view.InternalResourceViewResolver"&
&!-- 添加前缀和后缀,在指定视图时会和参数字串进行拼合 --&
&property name="prefix" value="/WEB-INF/jsp/" /&
&property name="suffix" value=".jsp" /&
&!-- 配置注解处理器适配器和映射器 ,这个是3.1之后新增的,不要使用之前的(在配置文件中的默认配置,可以被覆盖)
注意:如果使用注解开发,映射器和适配器必须都使用注解型
&bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" /&
&bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" /&
&!-- 但是使用下面的可以替换上面的配置,并且还加载了很多参数绑定的方法,例如json转换的解析器,开发时一般使用 --&
&mvc:annotation-driven&&/mvc:annotation-driven&
&!-- 使用注解之后的组件可以单独配置,但是开发中一般使用扫描的方式
这样可以扫描controller、service、Repository等组件
&context:component-scan base-package="com.dqxst.controller"&&/context:component-scan&
50 &/beans&
springmvc各模块的一些实现配置
在图中DispatcherServlert处应该有一个Controller的存在,实际是由Controller来进行控制工作。而Controller在springmvc中(通常)是使用注解声明的,还包括了一系列的注解辅助开发。一个Controller最主要的工作就是(这对struct2也适用):
  ①接收参数然后与java中的pojo/集合等绑定。参考:
  ②调用相应service(业务)层进行业务处理
  ③返回处理结果数据Model和页面view。参考:
mvc框架的一些常用功能:
  ①服务器端校验,就是对发送到服务器上的参数进行的校验,在注解驱动中配置。
  ②类型转换:就是将自定义的格式转换为指定的java类型,在注解驱动中配置。
  ③自定义拦截器:可以在执行链的最前端执行一些操作,例如身份验证。
1 &?xml version="1.0" encoding="UTF-8"?&
2 &beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"&
&context:annotation-config/&
&context:component-scan base-package="com.dqxst.controller"&&/context:component-scan&
&!-- 视图解析器 :解析jsp视图,默认使用jstl标签--&
class="org.springframework.web.servlet.view.InternalResourceViewResolver"&
&!-- 添加前缀和后缀,在指定视图时会和参数字串进行拼合 --&
&property name="prefix" value="/WEB-INF/jsp/" /&
&property name="suffix" value=".jsp" /&
&!-- 注解驱动 ,conversion-service属性用于设置自定义的参数绑定,通过一个bean实现--&
&mvc:annotation-driven conversion-service="conversionService" validator="validator" &&/mvc:annotation-driven&
&!-- 转换器bean --&
&bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"&
&!-- 指定转换器类list --&
&property name="converters"&
&!-- 日期格式转换器 --&
&bean class="com.dqxst.converters.DateConverter" /&
&/property&
&!-- 配置服务器端校验器 --&
&bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"&
&!-- 校验器--&
&property name="providerClass" value="org.hibernate.validator.HibernateValidator" /&
&!-- 指定校验使用的资源文件,如果不指定则默认使用classpath下的ValidationMessages.properties --&
&property name="validationMessageSource" ref="messageSource" /&
&!-- 校验错误信息配置文件 --&
&bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource"&
&!-- 资源文件名--&
&property name="basenames"&
&value&classpath:CustomValidationMessages&/value&
&/property&
&!-- 资源文件编码格式 --&
&property name="fileEncodings" value="utf-8" /&
&!-- 对资源文件内容缓存时间,单位秒 --&
&property name="cacheSeconds" value="120" /&
&!-- 全局异常处理器,由springmvc自动管理,只需要实现HandlerExceptionResolver接口即可,只能有一个起效 --&
&bean class="com.dqxst.exception.CustomExceptionResolvar" /&
&!-- 文件上传解析器 --&
&bean id="multipartResolver"
class="org.springframework.monsMultipartResolver"&
&!-- 设置上传文件的最大尺寸为5MB --&
&property name="maxUploadSize"&
&value&5242880&/value&
&/property&
&!--拦截器,全局 --&
&mvc:interceptors&
&!--多个拦截器,顺序执行 --&
&!-- 登陆认证拦截器 --&
&mvc:interceptor&
&mvc:mapping path="/**"/&
&bean class="com.dqxst.interceptor.LoginInterceptor"&&/bean&
&/mvc:interceptor&
&mvc:interceptor&
&!-- /**表示所有url包括子url路径 --&
&mvc:mapping path="/**"/&
&bean class="com.dqxst.interceptor.HandlerInterceptor1"&&/bean&
&/mvc:interceptor&
&mvc:interceptor&
&mvc:mapping path="/**"/&
&bean class="com.dqxst.interceptor.HandlerInterceptor2"&&/bean&
&/mvc:interceptor&
&/mvc:interceptors&
&!-- 静态资源解析,包括 :js、css、img等--&
&mvc:resources location="/js/" mapping="/js/**"/&
&mvc:resources location="/img/" mapping="/img/**"/&
93 &/beans&
最常用的配置形式
三、mybatis是另一种ORM框架,不同于hibernate,使用步骤:
  ①底层配置文件:连接数据库,加载sql语句配置文件,其他配置
1 &?xml version="1.0" encoding="UTF-8" ?&
2 &!DOCTYPE configuration
3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-config.dtd"&
5 &configuration&
&!-- 加载其他配置文件,默认为类路径 --&
&properties resource="db.properties"&&/properties&
&!-- 配置别名简化使用 --&
&typeAliases&
&!-- 单个别名
&typeAlias type="com.dqxst.domain.User" alias="user"/&
&!-- 批量别名,别名为类名首字母小写 --&
&package name="com.dqxst.domain"/&
&/typeAliases&
&!-- 配置mybatis数据库环境 --&
&environments default="development"&
&environment id="development"&
&transactionManager type="JDBC"/&
&dataSource type="POOLED"&
&property name="driver" value="${jdbc.driver}"/&
&property name="url" value="${jdbc.url}"/&
&property name="username" value="${jdbc.username}"/&
&property name="password" value="${jdbc.password}"/&
&/dataSource&
&/environment&
&/environments&
&!-- 加载映射文件 --&
&!-- 单个问价加载
&mapper resource="sqlMap/User.xml"/&
&mapper resource="mapper/UserMapper.xml"/&
&!-- 批量文件加载:需要满足几个条件
1、使用mapper代理开发
2、mapper接口和配置文件同名且在同一目录下
&package name="com.dqxst.mapper"/&
&package name="com.dqxst.mapper2"/&
&/mappers&
44 &/configuration&
mybatis底层配置
  ②配置sql语句文件,这是和hibernate的一个重要不同点:需要自己写sql语句,推荐使用mapper接口开发规范(规范使用一定限制的配置文件和使用mapper接口替代的DAO接口配合开发)。参考:
1 &?xml version="1.0" encoding="UTF-8" ?&
2 &!DOCTYPE mapper
3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"&
5 &!-- 这是一个简单的配置文件 --&
6 &mapper namespace="test"&
&!-- 配置一个select语句,
namespace.id是要用在程序中对应这条语句的
parameterType:指定占位符对应参数的类型。
!!!注意这里的占位符是#{xxx},xxx可以是value或其他字符
resultType:指定返回结果的类型
&select id="findUserById" parameterType="int" resultType="com.dqxst.domain.User"&
SELECT * FROM user WHERE id = #{id}
&!-- 注意:
1、即使返回多条记录, resultType也是表示单条记录的类型而不是list
2、${xxx}拼接符:将参数不加修饰的和语句拼接成一句,像下面就可以用于模糊查询,不再使用?做占位符
拼接字符串有一个问题,就是sql注入。
!!!注意如果注入简单类型,这里的xxx只能使用value
&select id="findUserByName" parameterType="java.lang.String" resultType="com.dqxst.domain.User"&
SELECT * FROM user WHERE username like ‘%${value}%‘
&!--添加:因为添加的字段类型和pojo中的一样,所以 parameterType需要时pojo的类型,
而他们参数的具体类型,只要使用#{xxx},其中xxx是对于的pojo中的属性即可自动判断类型
selectKey就是在insert之后添加执行语句,下面是在insert之后执行,可以获取当前id值赋给pojo对象用于后续操作
!!!注意上面是用于获取自增型主键的 id
还可以在insert之前使用select uuid()获取非自增型主键的值
&insert id="insertUser" parameterType="com.dqxst.domain.User"&
&selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer"&
SELECT LAST_INSERT_ID()
&/selectKey&
INSERT INTO user(username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address})
&!-- 删除 --&
&delete id="deleteUser" parameterType="java.lang.Integer"&
DELETE FROM user WHERE id=#{id}
&!-- 更新 --&
&update id="updateUser" parameterType="com.dqxst.domain.User"&
UPDATE user SET username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} WHERE id=#{id}
50 &/mapper&
普通sql配置
1 &?xml version="1.0" encoding="UTF-8" ?&
2 &!DOCTYPE mapper
3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"&
5 &!-- 这是一个使用mapper接口开发的配置文件,有一些规范:
1、namespace是对应mapper接口全限定名
2、下面的语句要和对应mapper接口中的方法对应,id==&方法名,parameterType==&参数类型,
resultType==&返回值类型
10 &mapper namespace="com.dqxst.mapper.UserMapper"&
&!-- 配置一个select语句--&
&select id="findUserById" parameterType="int" resultType="user"&
SELECT * FROM user WHERE id = #{id}
&select id="findUserByName" parameterType="java.lang.String" resultType="com.dqxst.domain.User"&
SELECT * FROM user WHERE username like ‘%${value}%‘
&!--添加--&
&insert id="insertUser" parameterType="com.dqxst.domain.User"&
&selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer"&
SELECT LAST_INSERT_ID()
&/selectKey&
INSERT INTO user(username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address})
&!-- 删除 --&
&delete id="deleteUser" parameterType="java.lang.Integer"&
DELETE FROM user WHERE id=#{id}
&!-- 更新 --&
&update id="updateUser" parameterType="com.dqxst.domain.User"&
UPDATE user SET username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} WHERE id=#{id}
&!-- 优化应用:
1、where语句的快速拼接,在where节点中使用if节点包含多条判断之后添加的语句
2、可以将一部分常用的语句构成sql片段,通过id进行引用
&select id="findUserBySexAndName" parameterType="user" resultType="user"&
&!-- SELECT * FROM user WHERE sex=#{sex} AND username like ‘%${username}%‘ --&
SELECT * FROM user
&include refid="query_user_where"&&/include&
&sql id="query_user_where"&
&if test="sex!=‘‘"&
AND sex=#{sex}
&if test="username!=‘‘"&
AND username like ‘%${username}%‘
59 &/mapper&
mapper开发配置实例
在配置中有两个重要的映射:
  ①输入映射:就是在条件语句中的参数,在配置文件中用占位符表示,在实际的DAO层就是普通的参数传递。
  ②输出映射:就是将查询结果映射到指定的pojo类中
在使用时,mybatis需要获取SqlSessionFactory对象和SqlSession对象,通过SqlSession对象进行实际的操作。
四、ssm框架整合:
  ①spring和springmvc整合,无需整合,但是需要添加响应的jar包,并将springmvc使用的DispatcherServlet注册到web.xml上
  ②spring和mybatis整合:
    1、使用spring管理sqlSessionFactory对象,也就是数据库的连接
    2、使用spring管理mapper接口并且自动生成实现类,一般使用批量扫描实现。
1 &?xml version="1.0" encoding="UTF-8"?&
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd"&
&context:annotation-config/&
&context:component-scan base-package="com.dqxst"&&/context:component-scan&
&context:property-placeholder location="classpath:db.properties"/&
&!-- 配置 SqlSessionFactory--&
&bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"&
&!-- 加载配置文件 --&
&property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml"&&/property&
&property name="dataSource" ref="dataSource"&&/property&
&!-- 配置数据源 --&
&bean id="dataSource" class="com.mchange.boPooledDataSource"&
&property name="driverClass" value="com.mysql.jdbc.Driver"&&/property&
&property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mybatis"&&/property&
&property name="user" value="root"&&/property&
&property name="password" value="920346"&&/property&
&property name="initialPoolSize" value="10"&&/property&
&property name="maxPoolSize" value="30"&&/property&
&!-- 这个类是对mapper接口进行自动扫描的类 --&
&bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"&
&!-- 指定扫描包名,如需扫描多包,用,分隔即可 --&
&property name="basePackage" value="com.dqxst.mapper" /&
&property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /&
42 &/beans&
spring和mybatis整合配置
五、框架对比:
struct2与springmvc对比:
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:/songfeilong2325/p/4814832.html
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!

我要回帖

更多关于 web桌面应用框架 的文章

 

随机推荐