SSM总结

SSM总结

这段时间学完了spring,springMVC,以及实现了ssm整合,也做了一些业务,今天来做个总结

一、SSM总的框架

  1. 构成
    首先来讲讲ssm框架的整体吧,ssm框架主要由Spring、SpringMVC、mybatis三层构成,学起来也不是那么难。
  2. 学习路线
    学习顺序是由mybatis→Spring→SpringMVC来走的;先将mybatis和spring这两部分各自的特性与知识学完后,在学习将这两层整合,接着到MVC里进行ssm整合得到一个完整的底层框架
  3. 作用
    mybatis主要用来实现底层与数据库交互,实现增删改;spring主要用来简化对象处理问题,以及非侵入式的切入增强;springMVC则是在Spring的基础上结合mybatis实现三层MVC三层架构
  4. 便利性
    在学习过程中可以很明显的感受到框架带来的便利,尤其是在mybatis实现的增删改、spring中对对象的装配、aop的增强、以及springMVC中controller层访问页面这几个点上感受最深,我相信有学过javaweb后再来学框架的你们会体会到这点

二、S+S

1、mybatis层

这一层主要重点在于配置文件以及高级查询,尤其是高级查询中的一对一、一对多、多对多,这一部分我在前面的博客中讲过了就不再重复了

这里再提几个要注意的点
①要开启日志! 日志对于bug的排查有着巨大的作用
②写mapper文件最好分层写,尤其是对于嵌套查询,分层有助于管理
③写完mapper及时注册到主配置文件中
④注解开发似乎再mybatis这部分不是很常用,仅作熟悉为未来sprint boot准备

2、spring层

这部分一些主要重点

  • IOC
    IOC中要学会如何将对象托管给Spring以及学会各种基本类型的注入,基本都是配置的工作
  • AOP
    aop这部分切入步骤基本都是固定的,用注解实现比配置实现要方便得多,但是在注解实现中要多次写execution语句。
    若使用注解来实现,那么我们直接编写一个用来切入的类,通过注解,确定切点以及前置后置代码,此处切点处要用到一个execution函数,execution函数的常用语法即* 某个类全限定名称.*(..),前面的*表示返回值,后面的*表示该类的所有方法,*(..)表示所有任意参数的方法
  • 整合mybatis
    对于整合这一步呢,主要就是在配置文件。
    配置文件主要配置以下这几项:
    ①数据源DataSource
    这一步可替代mybatis配置文件中的数据源,用来配置链接数据库的四个参数
    ②sqlSessionFactory
    这里实际就是用Spring的IOC来替代mybatis中创建sqlSessionFactory的步骤
    ③SqlSessionTemplate
    这个相当于我们在mybatis中使用的sqlSession,后面我们可以通过实现类继承SqlSessionDaoSupport类来省略此步
  • 事务
    事务还算是挺重要的,
    配置步骤①、添加DataSourceTransactionManager配置,引用我们前面配置的数据源datasource②、配置tx:advice使用第一步添加的事务管理器,配置参数为所需方法添加事务在这里插入图片描述
    spring层的核心就是ioc和aop,学会了这两点对spring也了解的七七八八了。

三、SpringMVC层

此处我将省略springMVC单独层的实现,直接进入SSM整合,在这一层我们就要将前面所学的全部整合了,这里我会将详细一点,如何完成一个SpringMVC的基本框架,这里我们采用的是将配置文件分层整合的

1、mybatis层

1、数据库建库ssm_assemble建表books
如图

2、maven项目创建并添加依赖

<dependencies>
    <!--Junit-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
    <!--数据库驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>
    <!-- 数据库连接池 -->
    <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.5.2</version>
    </dependency>
    <!--Servlet - JSP -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
    <!--Mybatis-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.2</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.2</version>
    </dependency>
    <!--Spring-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.1.9.RELEASE</version>
    </dependency>
 </dependencies>

3、Maven资源过滤设置

<build>
   <resources>
       <resource>
          <directory>src/main/java</directory>
           <includes>
               <include>/.properties</include>
               <include>**/.xml</include>
           </includes>
           <filtering>false</filtering>
       </resource>
       <resource>
           <directory>src/main/resources</directory>
           <includes>
               <include>/.properties</include>
               <include>**/.xml</include>
           </includes>
           <filtering>false</filtering>
       </resource>
   </resources>
</build>

4、创建基本结构
com.wangCool.Pojo(写bean)
com.wangCool.Dao
com.wangCool.Service(调用dao层)
com.wangCool.Controller(实现mvc)
mybatis-config.xml(证明我们有用到mybatis)

   		   <?xml version="1.0" encoding="UTF-8" ?>
   	       <!DOCTYPE configuration
   	              PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
   	              "http://mybatis.org/dtd/mybatis-3-config.dtd">
   	         <configuration>
   	          </configuration>

applicationContext.xml

   		<?xml version="1.0" encoding="UTF-8"?>
            <beans xmlns="http://www.springframework.org/schema/beans"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://www.springframework.org/schema/beans
	            http://www.springframework.org/schema/beans/spring-  beans.xsd">
            </beans>

创建该xml是要create一个application context,idea右上角提示,然后之后所有配置文件不用再create,直接点击已存在的这个配置归属进去就好了,如图之后的configure都点击已有的那个在这里插入图片描述

5、在idea中连接数据库

  1. 如图添加MySQL
  2. 添加配置信息①注意时区②testConnect有✔提示就表示成功了

6、mybatis-config中添加typeAliases设置别名,mappers设置mapper路径

 <typeAliases><package name="com.wangCool.pojo"/></typeAliases>

7、编写book的pojo类

	 private Integer bookId;private String bookName;private Integer bookCounts;private String bookMessage;

8、写bookMapper接口,编写基本的增删改查抽象方法
此处编写了,添加图书,删除图书,更新图书,查询图书,查询所有图书方法

9、编写bookMapper接口对应的bookMapper.xml文件,写对应接口的增删改查
①、注意,在mybatis-config我们已经设置了别名写ParameterType或resultType的时候就不用写全限定名称了,直接写pojo的名称就ok
②、在mybatis-config中注册mapper

10、①编写service层,新建bookService接口,方法和bookDao即我们写的bookMapper基本一样②用bookServiceImpl实现该类
bookServiceImpl中值得注意的是,要有一个bookService属性,然后还有其setter方法,方便之后注入

2、spring层

1、resources下新建spring-dao.xml配置文件(用来整合dao层)【数据源等的基础配置】
通常配置三个重要参数:①数据库连接信息配置②连接池配置③sqlSessionFactory
此处我们使用c3p0连接池,添加c3p0连接池的基本属性

<!-- c3p0连接池的私有属性 --><property name="maxPoolSize" value="30"/><property name="minPoolSize" value="10"/><!-- 关闭连接后不自动commit --><property name="autoCommitOnClose" value="false"/><!-- 获取连接超时时间 --><property name="checkoutTimeout" value="10000"/><!-- 当获取连接失败重试次数 --><property name="acquireRetryAttempts" value="2"/></bean>

2、resources下新建spring-service.xml配置文件(用来整合service层)【事务】
2、配置
①添加service扫描包配置

<context:component-scan base-package="com.wangCool.service"/>
②注册bookServiceImpl的类,注入bookMapper
  <bean id="bookServiceImpl" class="com.wangCool.service.bookServiceImpl"><property name="bookMapper" ref="bookMapper"/></bean>

③添加事务配置,暂不添加那个事务的aop

  <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">    <property name="dataSource" ref="dataSource"/></bean>

④在applicationContext.xml中添加import标签来引用service配置
如图,将Dao和service都引入在这里插入图片描述

3、springMVC层

  1. 配置web.xml

    ①配置DispatcherServlet
    这里我们引用了applicationContext.xml总配置文件

   <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:applicationContext.xml</param-value>    
           </init-param>
           <load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>

②乱码过滤

<filter>   
      <filter-name>encodingFilter</filter-name>    
       <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
       <init-param>    
               <param-name>encoding</param-name>    
              <param-value>utf-8</param-value>
       </init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
  1. 在resources创建spring-mvc.xml
    头文件约束
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"       
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       
xmlns:context="http://www.springframework.org/schema/context"       
xmlns:mvc="http://www.springframework.org/schema/mvc"       
xsi:schemaLocation="http://www.springframework.org/schema/beans        
https://www.springframework.org/schema/beans/spring-beans.xsd       
 http://www.springframework.org/schema/context        
https://www.springframework.org/schema/context/spring-context.xsd        
http://www.springframework.org/schema/mvc       
 http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--  添加注解驱动  -->
<mvc:annotation-driven/>
<!--静态资源过滤-->
<mvc:default-servlet-handler/>
<!--扫描包controller-->
<context:component-scan base-package="com.wangCool.controller"/>
<!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">    
       <property name="suffix" value=".jsp"/>    
      <property name="prefix" value="WEB-INF/jsp/"/></bean>

在WEB-INF中添加jsp文件夹

  1. 在总配置文件applicationContext.xml中引入spring-mvc.xml文件在这里插入图片描述

到此处,一个最基本的ssm框架就搭好了!

四、总结

总的来说ssm不算特别难学,在前面的javaweb底层学过后再来学ssm应该是越来越容易的,毕竟随着发展,这些东西肯定会越来越容易,开发肯定是越来越简单的,但是也不意味着我们可以只学后面的简单的框架,知道原理更利于我们的发展!

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值