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

下载本文档

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

文档简介

持久层: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文件同名。?xml version=1.0 encoding=UTF-8 ? !DOCTYPE configuration PUBLIC -//DTD Config 3.0/EN /dtd/mybatis-3-config.dtd configuration !- 配置别名 - typeAliases !- 批量扫描别名 - package name=cn.itcast.ssm.po/ /typeAliases /configuration 1 2 3 4 5 6 7 8 9Spring配置文件applicationContext-dao.xml 主要配置内容 数据源 SqlSessionFactory mapper扫描器 这里使用sqlSessionFactoryBeanName属性是因为如果配置的是sqlSessionFactory属性,将不会先加载数据库配置文件及数据源配置beans xmlns=/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-placeholder location=classpath:perties / !- 配置数据源 ,dbcp - bean id=dataSource class=mons.dbcp.BasicDataSource destroy-method=close property name=driverClassName value=$jdbc.driver / property name=url value=$jdbc.url / property name=username value=$jdbc.username / property name=password value=$jdbc.password / property name=maxActive value=30 / property name=maxIdle value=5 / /bean !- sqlSessionFactory - bean id=sqlSessionFactory class=org.mybatis.spring.SqlSessionFactoryBean !- 数据库连接池 - property name=dataSource ref=dataSource / !- 加载mybatis的全局配置文件 - property name=configLocation value=classpath:mybatis/sqlMapConfig.xml / /bean !- mapper扫描器 - bean class=org.mybatis.spring.mapper.MapperScannerConfigurer !- 扫描包路径,如果需要扫描多个包,中间使用半角逗号隔开 - property name=basePackage value=cn.itcast.ssm.mapper/property property name=sqlSessionFactoryBeanName value=sqlSessionFactory / /bean/beans 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44创建所需的Mapper.java 一般不动原始生成的po类,而是将原始类进行集成vo类public interface ItemsMappperCustom public ListItemsCustom findItemsList(ItemsQueryVo itemsQueryVo) throws Exception; 1 2 3创建POJO类对应的mapper.xmlmapper namespace=test.ssm.mapper.ItemsMappperCustom select id=findItemsList parameterTyep=test.ssm.po.ItemsQueryVo resultType=test.ssm.po.ItemsCustom select items.* from items where like %$itemsC% 1 2 3 4整合service层 目标:让spring管理service接口。定义service接口 一般在ssm.service包下定义接口 eg:ItemsServicepublic interfae ItemsService public ListItemsCustom findItemsList(ItemsQueryVo itemsQueryVo) throws Exception; 1 2 3定义ServiceImpl实现类 因为在applicationContext-dao.xml中已经使用了mapper扫描器,这里可以直接通过注解的方式将itemsMapperCustom自动注入。public class ItemsServiceImpl implements ItemsService Autowired private ItemsMapperCustom itemsMapperCustom; Override public ListItemsCustom findItemsList(ItemsQueryVo itemsQueryVo) throws Exception return itemsMapperCustom.findItemsList(itemsQueryVo); 1 2 3 4 5 6 7 8 9 10在spring容器配置service applicationContext-service.xml在此文件中配置service。bean id=itemsService class=test.ssm.service.impl.ItemsSrviceImpl/ 1事物控制(不够熟悉) 在applicationContext-transaction.xml中使用spring声明式事务控制方法 对mybatis操作数据库事物控制,spring使用jdbc的事物控制类是DataSourceTransactionManager 因为操作了数据库需要事物控制,所以需要配置数据源 定义了切面beans xmlns=/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的事务控制类 -bean id=transactionManager class=org.springframework.jdbc.datasource.DataSourceTransactionManager !- 数据源在 dataSource在applicationContext-dao.xml中已经配置- property name=dataSource ref=dataSource/bean!- 通知 -tx:advice id=txAdvice transaction-manager=transactionManager tx:attributes !- 传播行为 - tx:method name=save* propagation=REQUIRED/ tx:method name=delete* propagation=REQUIRED/ tx:method name=insert* propagation=REQUIRED/ tx:method name=update* propagation=REQUIRED/ tx:method name=find* propagation=SUPPORTS read-only=true/ tx:method name=get* propagation=SUPPORTS read-only=true/ tx:method name=select* propagation=SUPPORTS read-only=true/ /tx:attributes/tx:advice!- aop -aop:config aop:advisor advice-ref=txAdvice pointcut=execution(* cn.itcast.ssm.service.impl.*.*(.)/aop:config/beans 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40整合springmvc 创建springmvc.xml文件,配置处理器映射器 、 适配器、视图解析器context:component-scan base-package=cn.itcast.ssm.controller/context:component-scan!- 使用 mvc:annotation-driven 加载注解映射器和注解适配器配置-mvc:annotation-driven/mvc:annotation-driven!- 视图解析器 解析jsp解析,默认使用jstl标签,classpath下的得有jstl的包 -bean class=org.springframework.web.servlet.view.InternalResourceViewResolver !- 配置jsp路径的前缀 - property name=prefix value=/WEB-INF/jsp/ !- 配置jsp路径的后缀 - property name=suffix value=.jsp/bean 1 2 3 4 5 6 7 8 9 10 11 12 13配置前端控制器 在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-namespringmvc/servlet-name servlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class init-param param-namecontextConfigLocation/param-name param-valueclasspath:spring/springmvc.xml/param-value /init-param /servletservlet-mapping servlet-namespringmvc/servlet-name url-pattern*.action/url-pattern/servlet-mapping 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15编写Controller(Handler)C

温馨提示

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

评论

0/150

提交评论