SSM整合-快速简单易懂

简单易懂的三大框架整合,请各位看客认真体会!!!
git地址:https://gitee.com/samsom/ssm

1.Spring

Spring是一个全栈的开源轻量级的java开发框架,是为了解决企业应用开发的复杂性而创建的,Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情,Spring的用途不仅限于服务器端的开发。低耦合 (降低组件之间的耦合度,实现软件各层之间的解耦),声明式事务管理(基于AOP),方便集成其他框架(如MyBatis,SpringMVC),降低 Java 开发难度

IOC(控制反转): 创建对象的控制权发生了转移,转移给工厂,交给Spring来管理,主要目的是降低耦合

注入方式: (1)构造方法注入 (2)Set注入 (3)接口注入

AOP(面向切面编程): 把程序中重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上对已有的方法进行增强,降低了方法与方法之间的耦合

2.MyBatis

MyBatis本是apache的一个开源项目iBatis,后改名为MyBatis,MyBatis是一个基于Java的持久层框架。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJO映射成数据库中的记录

3.SpringMVC

一个用于构建 Web 应用程序的MVC框架(Spring的一个模块),结构松散,几乎可以在 SpringMVC 中使用各类视图,松耦合,各个模块分离,与 Spring 无缝集成
MVC:

  • Controller(控制器)- 负责转发请求,对请求进行处理。
  • View(视图) - 界面设计人员进行图形界面设计。
  • Model(模型) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。

4.Maven

具有相同的项目目录结构,统一维护jar包

5.pom.xml

声明依赖的jar包,properties中固定版本号

6.Web.xml

(1).characterEncodingFilter

//中文乱码过滤器
    <filter>
        <filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

(2).dispatcherServlet

//前端控制器
<servlet>
     <servlet-name>dispatcherServlet</servlet-name>
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     <init-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>classpath:springmvc.xml</param-value>
     </init-param>
</servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

(3).ContextLoaderListener

//spring核心监听器
<listener>
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>classpath:applicationContext.xml</param-value>
</context-param>

7.springmvc.xml

  • 扫描web相关的bean(Contorller)
<!-- 配置@Controller注解扫描 -->
<context:component-scan base-package="com.samson.controller"/>
  • 开启SpringMVC注解模式(默认开启处理器映射器和处理器适配器)
//springmvc三大组件:处理器映射器,处理器适配器,视图解析器
//注解驱动: 作用:替我们自动配置注解的处理器映射器和处理器适配器
<mvc:annotation-driven/>
  • 配置jsp显示ViewResolver(视图解析器)
//配置视图解析器
//作用:在controller中指定页面路径的时候就不用写页面的完整路径名称了,可以直接写页面去掉扩展名的名称
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    //真正的页面路径 =  前缀 + 去掉后缀名的页面名称 + 后缀
    //prefix:前缀
    <property name="prefix" value="/WEB-INF/pages/"/>
    //suffix:后缀
    <property name="suffix" value=".jsp"/>
</bean>
  • 静态资源放行
//释放静态资源
<mvc:default-servlet-handler/>

8.applicationContext(spring-mybatis).xml

  • 加载数据源配置文件
// 加载数据源配置文件
<context:property-placeholder location="classpath:jdbcConfig.properties"/>
  • 配置数据库相关参数properties的属性
//配置数据源
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="${jdbc.driver}"/>
    <property name="jdbcUrl" value="${jdbc.url}"/>
    <property name="user" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>
  • 配置SqlSessionFactory对象
//创建一个生产SqlSeesion对象的工厂对象
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    //注入数据源
    <property name="dataSource" ref="dataSource"/>
</bean>
  • 配置mapper映射扫描,扫描Dao接口包,动态实现Dao接口,注入到spring容器中
//对所有dao包下的接口进行扫描,使用SqlSeesion对象给其创建代理对象,并且放入到容器中-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.samson.dao"/>
</bean>
  • 扫描service包下所有注解的类型
context:component-scan base-package="com.samson.service"/>
  • 配置事务管理器
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    //注入数据源
    //构造函数注入
    <property name="dataSource" ref="dataSource"/>
</bean>
  • 配置基于注解的声明式事务
//开启事务注解支持
<tx:annotation-driven/>

9.jdbc.properties

配置 c3p0 数据库连接池
在这里插入图片描述

10.整合xml

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值