2021-10-27 SSM整合的开发思路

SSM整合的开发思路

最近学习了SSM经典框架,东西比较多,原理部分也只是做了简单了解,想通过写一个Webapp接受前端请求对数据库进行CRUD操作的案例巩固一下。
在写之前,先整理一下开发思路。

  • 使用SpringMVC + Spring + MyBatis开发Web项目的思路
  • 使用SSM模拟业务,实现CRUD操作

SSM

  • SpringMVC:视图层,界面层,负责接收请求,显示处理结果。
  • Spring:业务层,管理service,dao,工具类对象。
  • MyBatis:持久层, 访问数据库。

容器

整合中要搞清楚容器。哪些对象放在哪些容器中,容器之间的关系等。

  • SpringMVC容器, 管理Controller控制器对象的。
  • Spring容器,管理Service,Dao,工具类对象的
  • springmvc容器是spring容器的子容器,在子容器中的Controller可以访问父容器中的Service对象,就可以实现controller使用service对象
  • 把使用的对象交给合适的容器创建,管理。
    • 把Controller还有web开发的相关对象。交给springmvc容器, 这些web用的对象写在springmvc配置文件中
    • service,dao对象定义在spring的配置文件中,让spring管理这些对象。

实现步骤

  1. 数据库表定义:student(id*, name, age)
  2. maven加入依赖:
    • springmvc,spring,mybatis三个框架的依赖
    • mysql驱动,druid连接池(数据库连接)
    • servlet,jsp依赖(web项目)
    • jackson依赖(对象转json工具)
  3. 写web.xml
    1. 注册DispatcherServlet(中央调度器、springmvc容器对象),目的:
      1. 创建springmvc容器对象,才能创建Controller类的对象。
      2. Servlet才能接受用户的请求。
    2. 注册spring监听器ContextLoaderListener,目的:
      1. 创建spring的容器对象,才能创建service,dao等对象。
    3. 注册字符集过滤器CharacterEncodingFilter,目的:
      1. 过滤器解决字符码统一的问题。
  4. 创建webapp的各类功能包,最基本的包括:
    • controller - 控制器对象,交由DispatcherServlet对象进行调度,接收请求并处理、响应
    • service - 业务逻辑,可以交由spring进行aop得到其代理对象
    • dao - 数据库操作接口,配合xml文件交由mybatis进行实例化
    • domain - 实体类,存储、传递参数作用
  5. 写springmvc,spring,mybatis的配置文件
    • springmvc配置文件:
      1. 组件扫描器component-scan,声明其需要创建并管理的controller类的位置。
      2. 视图解析器InternalResourceViewResolver,匹配前后缀名,controller只需要返回视图的逻辑名即可,无需考虑地址和后缀文件名。
      3. 注解驱动器annotation-driven,其可以:
        1. 创建HttpMessageConverter的7个实现类,从而将controller输出的obj转换为前端需要的数据。
        2. 解决动态资源和静态资源冲突的问题。
    • spring配置文件:
      1. 声明创建数据源DruidDataSource、和SqlSessionFactory(后者是mybatis对象,需要指明mybatis.xml位置)。
      2. 声明Mapping映射文件(Dao.xml)的扫描器MapperScannerConfigurer,用前面的SqlSessionFactory对象,创建Dao对象。
      3. 声明component-scan组件扫描器,扫描Service所在的包名位置,为加了@Service注解的Service类创建对象。
      4. 声明事务管理器DataSourceTransactionManager,配合注解驱动器,用aop为ServiceImpl对象创建Around消息代理对象
      5. 声明事务注解启动器annotation-driven,告诉spring添加@Transactional的方法需要创建动态代理类。
    • mybatis配置文件:
      1. 设置typeAliases标签定义domain对象的别名(可选可不选)。
      2. 设置mappers声明定义mapper文件的位置。
    • properties文件:设置数据库连接的url、password等属性信息。
  6. 根据业务需要,写dao接口、service接口、实体类、controller类、service实现类逻辑。
  7. 写jsp用于返回给前端页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值