ssm环境搭建(这是一个非常干净的smm基础环境),和Spring底层相关回顾

2021-03-17 12:25

阅读:434

标签:继承   配置数据源   使用   xml配置   代理模式   har   weave   ref   默认   

前言:

环境基础:tomcat9,maven3.6.1,mysql8.x,idea2020.3,

一,搭建ssm环境(配置)

1.依赖包

    
    dependencies>
        
        dependency>
            groupId>junitgroupId>
            artifactId>junitartifactId>
            version>4.11version>
        dependency>
        
        dependency>
            groupId>mysqlgroupId>
            artifactId>mysql-connector-javaartifactId>
            version>8.0.15version>
        dependency>
        
        dependency>
            groupId>com.mchangegroupId>
            artifactId>c3p0artifactId>
            version>0.9.5.2version>
        dependency>
        
        dependency>
            groupId>javax.servletgroupId>
            artifactId>servlet-apiartifactId>
            version>2.5version>
        dependency>
        dependency>
            groupId>javax.servlet.jspgroupId>
            artifactId>jsp-apiartifactId>
            version>2.2version>
        dependency>
        dependency>
            groupId>javax.servletgroupId>
            artifactId>jstlartifactId>
            version>1.2version>
        dependency>
        
        dependency>
            groupId>org.mybatisgroupId>
            artifactId>mybatisartifactId>
            version>3.5.2version>
        dependency>
        
        dependency>
            groupId>org.mybatisgroupId>
            artifactId>mybatis-springartifactId>
            version>2.0.5version>
        dependency>
        
        dependency>
            groupId>org.springframeworkgroupId>
            artifactId>spring-webmvcartifactId>
            version>5.1.9.RELEASEversion>
        dependency>
        
        dependency>
            groupId>org.springframeworkgroupId>
            artifactId>spring-jdbcartifactId>
            version>5.1.9.RELEASEversion>
        dependency>
        
        dependency>
            groupId>org.aspectjgroupId>
            artifactId>aspectjweaverartifactId>
            version>1.9.5version>
        dependency>
        
        dependency>
            groupId>org.projectlombokgroupId>
            artifactId>lombokartifactId>
            version>1.18.10version>
        dependency>

    dependencies>

 

2.编写数据库连接驱动信息静态文件(db.properties)‘

作用:连接数据库的基本信息

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=123456

 

3.mybatis核心配置文件(mybatis-config)

作用:配置mapper的基本环境,注册mapper,(连接数据库交给spring容器去做)

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>

    


    settings>
        setting name="logImpl" value="STDOUT_LOGGING" />
    settings>
    
    typeAliases>
        package name="com.king.pojo"/>
    typeAliases>

    
    mappers>
        mapper class="com.king.dao.BookMapper"/>
    mappers>


configuration>

 

4.spring整合dao层

作用:

  1.关联数据库配置文件:db.properties

  2.配置连接池:这里用的是C3p0的连接池

  3.创建sqlSessionFactory:

    3.1,连接c3p0数据源

    3.2,绑定mybatis核心配置文件

  4.最后配置dao的接口扫描包

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"
       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">

    
    context:property-placeholder location="classpath:db.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}"/>

        
        property name="maxPoolSize" value="30"/>
        property name="minPoolSize" value="10"/>
        
        property name="autoCommitOnClose" value="false"/>
        
        property name="checkoutTimeout" value="10000"/>
        
        property name="acquireRetryAttempts" value="2"/>
    bean>

    
    bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        
        property name="dataSource" ref="dataSource"/>
        
        property name="configLocation" value="classpath:mybatis-config.xml"/>
    bean>

    
    bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        
        property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        
        property name="basePackage" value="com.king.dao"/>
    bean>

beans>

 

5.Spring整合service

作用:

  1.利用context扫描service层下的包

  2.将所有业务接口实现类全部注入spring容器中

    2.1,解释:利用ioc的思想,DI方法(set方法注入)去实现,动态的创建对象

    2.2,什么叫动态创建对象:当用户想用是,再去创建(ioc思想)

    2.3,因为是DI方法注入,所以要在每个接口实现类(xxx.Impl)上写set方法,否则报错

  3.声明式事务配置

    3.1,什么是声明式事务:声明顾名思义就是在spring容器xml配置文件中去声明代码的行为,好处就是不必去修改代码本身的逻辑结构

  4.配置AOP事务支持

    AOP:面向切面编程(ioc的思想,在spring中利用DI的方法实现的),

    设计模式:代理模式(动态代理模式),JDK动态代理和CGLIb动态代理

    面试高频:spring的AOP是用的那种动态代理模式实现的?JDK or CGlib,两者有什么区别?

    解释:spring默认先去找(目标)类是否实现了接口,如果没有再去用CGlib。先JDK后CGlib(可以强制使用其中某一个,仅需去spring配置相关内容)

    区别:JDK是基于接口实现的动态代理模式,就是说你的动态代理实现是被所对应的代理接口约束的(接口有什么方法,你才能实现什么方法,实现类不能自己新建方法)

       CGlib是基于继承实现的,就是说具有继承的特性(子承父业)同时自己也可以新建方法

       

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"
       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">

    
    context:component-scan base-package="com.king.service"/>

    
    bean id="BookServiceImpl"  class="com.king.service.BookServiceImpl">
        property name="bookMapper" ref="bookMapper"/>
    bean>

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

    

beans>

 

6.Spring整合mvc

  1.配置mvc注解驱动

    解释:可以自动注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean,这两个都是来自于dispatcherServlet中(用户请求分发器)的

       DefaultAnnotationHandlerMapping:作用在类上,处理请求映射的,相应的用户请求传递给相应的Controller类中

       AnnotationMethodHandlerAdapter:作用在方法上,功能与上相似、

  2.静态资源过滤

    作用:防止代码页面与静态页面矛盾

  3.配置扫描包范围

  4.视图解析器

    作用:给所用跳转页面加前缀和后缀

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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        https://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">

    
    
    mvc:annotation-driven/>
    
    mvc:default-servlet-handler/>
    
    context:component-scan base-package="com.king.controller"/>
    
    bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        property name="prefix" value="/WEB-INF/jsp/"/>
        property name="suffix" value=".jsp"/>
    bean>
beans>

 

7.配置总文件

  将各层的spring容器注入一个总容器中,简化配置文件结构,增强可读性

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
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    import resource="classpath:spring-dao.xml"/>
    import resource="classpath:spring-service.xml"/>
    import resource="classpath:spring-mvc.xml"/>

beans>

 

ssm环境搭建(这是一个非常干净的smm基础环境),和Spring底层相关回顾

标签:继承   配置数据源   使用   xml配置   代理模式   har   weave   ref   默认   

原文地址:https://www.cnblogs.com/CL-King/p/13974697.html


评论


亲,登录后才可以留言!