SSM框架详细阐述_第1页
SSM框架详细阐述_第2页
SSM框架详细阐述_第3页
SSM框架详细阐述_第4页
SSM框架详细阐述_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

..持久层:DAO层(mapper)DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,

DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。业务层:Service层Service层:Service层主要负责业务模块的逻辑应用设计。

首先设计接口,再设计其实现的类接着再在Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。Service层的业务实现,具体要调用到已定义的DAO层的接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。表现层:Controller层(Handler层)Controller层:Controller层负责具体的业务模块流程的控制,

在此层里面要调用Service层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。View层View层此层与控制层结合比较紧密,需要二者结合起来协同工发。View层主要负责前台jsp页面的表示.各层联系DAO层,Service层这两个层次都可以单独开发,互相的耦合度很低,完全可以独立进行,这样的一种模式在开发大项目的过程中尤其有优势Controller,View层因为耦合度比较高,因而要结合在一起开发,但是也可以看作一个整体独立于前两个层进行开发。这样,在层与层之前我们只需要知道接口的定义,调用接口即可完成所需要的逻辑单元应用,一切显得非常清晰简单。Service逻辑层设计Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。SSM框架整合说明整合Dao层MyBatis配置文件

sqlMapConfig.xml配置别名:用于批量扫描Pojo包不需要配置mappers标签,但一定要保证mapper.java文件与mapper.xml文件同名。<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-////DTDConfig3.0//EN""/dtd/mybatis-3-config.dtd"><configuration><!--配置别名--><typeAliases><!--批量扫描别名--><packagename="cn.itcast.ssm.po"/></typeAliases></configuration>123456789Spring配置文件

applicationContext-dao.xml主要配置容

数据源SqlSessionFactorymapper扫描器

这里使用sqlSessionFactoryBeanName属性是因为如果配置的是sqlSessionFactory属性,将不会先加载数据库配置文件及数据源配置<beansxmlns="./schema/beans"xmlns:xsi="./2001/XMLSchema-instance"xmlns:mvc="./schema/mvc"xmlns:context="./schema/context"xmlns:aop="./schema/aop"xmlns:tx="./schema/tx"xsi:schemaLocation="./schema/beans./schema/beans/spring-beans-3.2.xsd./schema/mvc./schema/mvc/spring-mvc-3.2.xsd./schema/context./schema/context/spring-context-3.2.xsd./schema/aop./schema/aop/spring-aop-3.2.xsd./schema/tx./schema/tx/spring-tx-3.2.xsd"><!--加载perties文件中的容,perties文件中key命名要有一定的特殊规则--><context:property-placeholderlocation="classpath:perties"/><!--配置数据源,dbcp--><beanid="dataSource"class="mons.dbcp.BasicDataSource"destroy-method="close"><propertyname="driverClassName"value="${jdbc.driver}"/><propertyname="url"value="${jdbc.url}"/><propertyname="username"value="${jdbc.username}"/><propertyname="password"value="${jdbc.password}"/><propertyname="maxActive"value="30"/><propertyname="maxIdle"value="5"/></bean><!--sqlSessionFactory--><beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><!--数据库连接池--><propertyname="dataSource"ref="dataSource"/><!--加载mybatis的全局配置文件--><propertyname="configLocation"value="classpath:mybatis/sqlMapConfig.xml"/></bean><!--mapper扫描器--><beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer"><!--扫描包路径,如果需要扫描多个包,中间使用半角逗号隔开--><propertyname="basePackage"value="cn.itcast.ssm.mapper"></property><propertyname="sqlSessionFactoryBeanName"value="sqlSessionFactory"/></bean></beans>1234567891011121314151617181920212223242526272829303132333435363738394041424344创建所需的Mapper.java一般不动原始生成的po类,而是将原始类进行集成vo类publicinterfaceItemsMappperCustom{publicList<ItemsCustom>findItemsList(ItemsQueryVoitemsQueryVo)throwsException;}123创建POJO类对应的mapper.xml<mappernamespace="test.ssm.mapper.ItemsMappperCustom"><selectid="findItemsList"parameterTyep="test.ssm.po.ItemsQueryVo"resultType="test.ssm.po.ItemsCustom">selectitems.*fromitemswherelike'%${itemsC}%'1234整合service层目标:让spring管理service接口。定义service接口一般在ssm.service包下定义接口eg:ItemsServicepublicinterfaeItemsService{publicList<ItemsCustom>findItemsList(ItemsQueryVoitemsQueryVo)throwsException;}123定义ServiceImpl实现类因为在applicationContext-dao.xml中已经使用了mapper扫描器,这里可以直接通过注解的方式将itemsMapperCustom自动注入。publicclassItemsServiceImplimplementsItemsService{AutowiredprivateItemsMapperCustomitemsMapperCustom;OverridepublicList<ItemsCustom>findItemsList(ItemsQueryVoitemsQueryVo)throwsException{returnitemsMapperCustom.findItemsList(itemsQueryVo);}}12345678910在spring容器配置serviceapplicationContext-service.xml在此文件中配置service。<beanid="itemsService"class="test.ssm.service.impl.ItemsSrviceImpl"/>1事物控制(不够熟悉)在applicationContext-transaction.xml中使用spring声明式事务控制方法对mybatis操作数据库事物控制,spring使用jdbc的事物控制类是DataSourceTransactionManager因为操作了数据库需要事物控制,所以需要配置数据源定义了切面<beansxmlns="./schema/beans"xmlns:xsi="./2001/XMLSchema-instance"xmlns:mvc="./schema/mvc"xmlns:context="./schema/context"xmlns:aop="./schema/aop"xmlns:tx="./schema/tx"xsi:schemaLocation="./schema/beans./schema/beans/spring-beans-3.2.xsd./schema/mvc./schema/mvc/spring-mvc-3.2.xsd./schema/context./schema/context/spring-context-3.2.xsd./schema/aop./schema/aop/spring-aop-3.2.xsd./schema/tx./schema/tx/spring-tx-3.2.xsd"><!--事务管理器对mybatis操作数据库事务控制,spring使用jdbc的事务控制类--><beanid="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!--数据源在dataSource在applicationContext-dao.xml中已经配置--><propertyname="dataSource"ref="dataSource"/></bean><!--通知--><tx:adviceid="txAdvice"transaction-manager="transactionManager"><tx:attributes><!--传播行为--><tx:methodname="save*"propagation="REQUIRED"/><tx:methodname="delete*"propagation="REQUIRED"/><tx:methodname="insert*"propagation="REQUIRED"/><tx:methodname="update*"propagation="REQUIRED"/><tx:methodname="find*"propagation="SUPPORTS"read-only="true"/><tx:methodname="get*"propagation="SUPPORTS"read-only="true"/><tx:methodname="select*"propagation="SUPPORTS"read-only="true"/></tx:attributes></tx:advice><!--aop--><aop:config><aop:advisoradvice-ref="txAdvice"pointcut="execution(*.itcast.ssm.service.impl.*.*(..))"/></aop:config></beans>12345678910111213141516171819202122232425262728293031323334353637383940整合springmvc创建springmvc.xml文件,配置处理器映射器、适配器、视图解析器<context:component-scanbase-package="cn.itcast.ssm.controller"></context:component-scan><!--使用mvc:annotation-driven加载注解映射器和注解适配器配置--><mvc:annotation-driven></mvc:annotation-driven><!--视图解析器解析jsp解析,默认使用jstl标签,classpath下的得有jstl的包--><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--配置jsp路径的前缀--><propertyname="prefix"value="/WEB-INF/jsp/"/><!--配置jsp路径的后缀--><propertyname="suffix"value=".jsp"/></bean>12345678910111213配置前端控制器在web.xml中加入如下容contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器、适配器等等)

如果不配置contextConfigLocation,默认加载的是/WEB-INF/servlet名称-serlvet.xml(springmvc-servlet.xml)在url-pattern中

填入*.action,表示访问以.action结尾由DispatcherServlet进行解析填入/,所有访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析,使用此种方式可以实现RESTful风格的url<!--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:spring/springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping>123456789101112131415编写Controller(Handler)CongtrollerRequestMapping("/items")//窄化路径publicclassItemsController{AutowiredprivateItemsServiceitemsSer

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论