史上最全最新SSM整合配置

2 篇文章 0 订阅
1 篇文章 0 订阅

史上最全SSM整合配置

依赖

搭建ssm框架的第一步必须是依赖,很多新手在搭建ssm的时候最头疼应该就是这了,一个是依赖多,另一个就是因为依赖版本不统一而产生的错误,所以我整理好了ssm整合过程中的需要的所有依赖,每一个都是必须的
spring-aop spring-beans spring-context spring-expression spring-web spring-webmvc spring-context-support freemarker-gae commons-pool javax.annotation-api servlet-api mybatis mybatis-spring c3p0/dbcp/druid(连接池)mysql-connector-java Spring-JDBC
这里是版本号
web.xml配置

<!-- 配置SpringMVC核心控制器 -->
<servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 配置初始配置化文件,前面contextConfigLocation看情况二选一 -->
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:spring-mvc.xml</param-value>
    </init-param>
</servlet>
<!--为DispatcherServlet建立映射 -->
<servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
<!--加载Spring配置文件 -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:application.xml</param-value>
</context-param>
<!--监听器-->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

我这里没配置log4j的配置和监听器
log4j的配置跟application.xml一样都要配置在context-param标签里
log4j的监听器和spring的context一样就是导的包不一样
ssm在启动的时候会先去加载context-param的标签的配置,去完成数据库的加载配置等操作
这里可以配置一个过滤器,用来处理中文乱码,但是因为只对post请求有效,所以我就在spring-mvc.xml配置了另一种处理乱码的方式,就没在这配置过滤器,具体大家可以在下边看到

application.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/tx">
    <!--    配置c3p0连接池-->
    <!--    1.加载数据库配置文件-->
        <context:property-placeholder location="classpath:database.properties"/>
    <!--    2.设置连接属性-->
    <bean class="com.mchange.v2.c3p0.ComboPooledDataSource" id="dataSource">
        <property name="jdbcUrl" value="${jdbcUrl}"/>
        <property name="driverClass" value="${driverClass}"/>
        <property name="user" value="${user}"/>
        <property name="password" value="${password}"/>
    </bean>
    <!-- 配置sqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 加载mybatis的配置文件 -->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <!-- 自动扫描mapping.xml文件 -->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>
    <!-- 启动注解 -->
    <context:annotation-config/>
    <!-- 扫描Mapper -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 扫描me.gacl.dao这个包以及它的子包下的所有映射接口类 -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <property name="basePackage" value="com.spring.ladon.mapper"/>
    </bean>
    <!-- 扫描service包下所有使用注解的类型 -->
    <context:component-scan base-package="com.spring.ladon.service"/>
</beans>

这里没有配置事务等,只是最简单的一个空的SSM框架,在项目启动初期,web.xml会首先加载这个配置文件,大家可以通过看这个配置可以看到,这一步是加载数据源,创建sqlsessionfactory,加载mybatis的核心配置,扫描mybatis映射文件以及service层
设置连接属性时,name的值根据连接池来写,value的值是数据源配置文件的属性名字,当然了,这里可以写死,就不需要去加载数据源的配置文件了,把加载数据源的那行代码一定要注释掉,不然会报错

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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation=" http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://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:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
            <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json</value>
                    </list>
                </property>
                <property name="features">
                    <list>
                        <!-- Date的日期转换器 -->
                        <value>WriteDateUseDateFormat</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
    <!-- 使用注解方式完成映射 -->
    <!-- 让扫描spring扫描这个包下所有的类,让标注spring注解的类生效 -->
    <context:component-scan base-package="com.spring.ladon.controller"/>
    <!-- 视图解析器 -->
    <!--    配置静态资源-->
    <mvc:default-servlet-handler/>
    <!--jsp-->
    <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView"/>
        <property name="prefix" value="/jsp/"/>
        <property name="suffix" value=".jsp"/>
        <property name="order" value="1"/>
    </bean>
    <!--html-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/html/"/>
        <property name="suffix" value=".html"/>
        <property name="order" value="0"/>
    </bean>
    <!--拦截器-->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/mvc/*"/>
            <bean class="com.spring.ladon.config.Interceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>
</beans>

spring-mvc.xml这里有一个解决乱码的配置和视图解析器以及拦截器,解决乱码的配置就不说了,先说视图解析器吧,jsp的视图解析器没什么需要讲的,就说一下html的吧,之前在网上搜html的视图解析器,各种各样的配置,试了得有8-10种,反正就是怎么配的都有,但到我这就不行,不知道是真的别人的配置有问题,还是我自己少依赖啥的,后来偶然间看到一个帖子就解决了,其实jsp和html的配置都一样,访问不到html是因为tomcat没识别html是静态资源,那么我们让tomcat识别html为静态资源就好了,加个mvc:default-servlet-handler这个标签就好了,至于这标签干嘛的,大哥们自己百度吧,我也没深入研究
视图解析器中name有个值是order这个是优先级的意思,数值越小,优先级越大,在同一路径下,有两个相同名字的文件,一个是html,一个是jsp,会跳转那个优先级大的那个文件,比如index.html和index.jsp,html的优先级是0,jsp的优先级是1,就会先跳转html,如果在同一目录下不会同时出现index.html和index.jsp的话,就不用加这个order了

拦截器在自定义拦截器的时候要实现HandlerInterceptor接口,里边有三个方法
1.preHandler(进入方法前拦截。返回false直接结束方法并返回,true继续执行拦截器和方法)
2.postHandler(方法中拦截)
3.afterHandler(结束时拦截)

mybatis-config.xml

<?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>
        <!-- 本地(一级)缓存作用域,默认 SESSION,会缓存一个会话(SqlSession)中执行的所有查询。 设置为 STATEMENT,会话仅作用在语句执行上,对 SqlSession 的调用将不会共享数据,可认为是禁用一级缓存 -->
        <setting name="localCacheScope" value="SESSION"/>
        <!-- 控制台打印SQL -->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <!-- 是否可以使用列的别名 (取决于驱动的兼容性) default:true -->
        <setting name="useColumnLabel" value="true"/>
        <!-- 指定 MyBatis 如何自动映射 数据基表的列 NONE:不隐射 PARTIAL:部分  FULL:全部  -->
        <setting name="autoMappingBehavior" value="PARTIAL"/>
        <!-- 这是默认的执行类型  (SIMPLE: 简单; REUSE: 执行器可能重复使用prepared statements语句;BATCH: 执行器可以重复执行语句和批量更新)  -->
        <setting name="defaultExecutorType" value="SIMPLE"/>
        <!-- 使用驼峰命名法转换字段。 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!-- 设置但JDBC类型为空时,某些驱动程序 要指定值,default:OTHER,插入空值时不需要指定类型 -->
        <setting name="jdbcTypeForNull" value="NULL"/>
        <!-- 是否允许单条sql 返回多个数据集  (取决于驱动的兼容性) default:true -->
        <setting name="multipleResultSetsEnabled" value="true"/>
        <!-- 允许JDBC 生成主键。需要驱动器支持。如果设为了true,这个设置将强制使用被生成的主键,有一些驱动器不兼容不过仍然可以执行。  default:false  -->
        <setting name="useGeneratedKeys" value="false"/>
    </settings>
    <!-- 设置别名 -->
    <typeAliases>
        <typeAlias type="com.spring.ladon.entity.UserEntity" alias="user"/>
    </typeAliases>
    <!--映射该包下的所有映射文件-->
    <mappers>
        <package name="com.spring.ladon.mapper"/>
    </mappers>

</configuration>

这个mybatis的配置文件就不用过多解释了,没什么难理解的

database.properties

driverClass=com.mysql.cj.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/demo_insql
user=root
password=password

这里的名字可以任意起,但是推荐使用和选择的连接池使用一样的,这里的名字是在application.xml配置数据源的时候会用到,每个连接池的统一属性名字都不一样

以上内容为学习总结,如有错误,大佬多多指教

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴龙战士呦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值