深入理解SSM框架

SSM=Spring+Spring MVC+MyBatis

1.Spring

核心思想:Bean对象管理+AOP思想

使用配置类文件,主要加载注解有5个:

2.Spring MVC 

表现层框架,用spring mvc的方式来整合controller 

3.MyBatis

数据层框架,用spring的方式来整合jdbc

具体整合流程:

  • spring整合mybatis需要两个配置类,固定写法jdbc+mybatis
  • spring整合springmvc需要两个配置类,固定写法servlet+springmvc

基本项目框架:

1. 先建表

2.在domain包下创建实体类,tostring方法只是为了打印对象、调试程序,在实际开发中用处并不大,只需get\set方法即可

3.dao包下创建接口,利用mapper自动代理实现数据层基本操作;这里无需xml映射文件而是依靠注解+配置类实现

4.service包下创建业务层接口和实现类

  • 小问题:dao包使用自动代理,无需spring扫描来当作bean管理,因此自动装配时可能会出现警告
  • dao包和service包下的接口不属于bean,无需添加注解,(但其实也可以加注解把dao交给spring做bean管理)service实现类下需添加对应bean注解以及用到dao包下的自动装配注解,对dao包下的接口方法进行组合调用并封装

5.controller包下调用业务层接口方法与前端做交互,使用spring mvc框架代替servlet,一个文件就搞定

pom文件配置(10个依赖+tomcat运行插件)

<dependencies>
    <!--springmvc坐标依赖-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>
<!--导入JDBC坐标依赖-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>
<!--导入测试框架依赖-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>
<!--导入mybatis坐标依赖-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.6</version>
    </dependency>
<!--导入spring整合mybatis-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.0</version>
    </dependency>
<!--导入数据库连接依赖-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.46</version>
    </dependency>
<!--导入数据源依赖-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.16</version>
    </dependency>
<!--导入工具包依赖-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
<!--导入servlet依赖-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
<!--导入json依赖-->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version>
    </dependency>
  </dependencies>
  <!--加载tomcat7运行插件-->
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <port>80</port>
          <path>/</path>
          <uriEncoding>UTF-8</uriEncoding>
        </configuration>
      </plugin>
    </plugins>
  </build>

接口测试:

  • 1.业务层接口使用junit进行测试
    • 在test包下的java包下写测试类,自己模拟数据即可---使用test注解可以只运行一个测试方法即可
  • 2.表现层接口使用postman进行测试
  • 3.添加事务,共三个地方(springconfig里打开事务注解;jdbcconfig里配置事务的bean;业务层接口打开事务注解)

表现层数据封装:

  • 为了方便前端人员识别数据与操作,为他们统一了数据格式
  • 设置联调协议:作为前后端进行通信的规范书写格式(不一定全用)

    • 由后端人员设置统一数据返回结果类,但不是一个死格式,可根据需要自行增减,根据项目组约定,类名可自设
  • 具体实现步骤:
    • 在controller包下设result类,声明code,data,msg三个变量,以及对应get\set方法,并自由组合成对应的有无参构造方法
    • 在controller包下设code类,用来声明各个操作对应的状态码
    • 修改controller类,提取返回数据,返回到result类型参数(三元表达式)给到前端人员,前端人员就可以根据状态码来识别数据作用

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值