当前位置: 首页 > news >正文

ssm-freemarker-小众网配置

  •  上图的操作完成后,所说的如下图,其实是进行一个事务声明:
    •  <!--声明事务-->
          <bean id="transactionManager"         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
              <property name="dataSource" ref="dataSource"/>
          </bean>
          <tx:annotation-driven transaction-manager="transactionManager"/>

      applicationContext.xml

      • <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
               xmlns:mvc="http://www.springframework.org/schema/mvc"
               xmlns:context="http://www.springframework.org/schema/context"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:tx="http://www.springframework.org/schema/tx"
               xmlns:task="http://www.springframework.org/schema/task"
               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/task
                    http://www.springframework.org/schema/task/spring-task.xsd
                    http://www.springframework.org/schema/mvc
                    http://www.springframework.org/schema/mvc/spring-mvc.xsd
                    http://www.springframework.org/schema/tx
                    http://www.springframework.org/schema/tx/spring-tx.xsd">
        
            <context:property-placeholder location="classpath:jdbc.properties"/>
        
            <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
                <property name="driverClassName" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
                <!--数据库初始化的时候创建的连接对象数量-->
                <property name="initialSize" value="${jdbc.initialSize}"/>
                <!--最大允许连接的总量,访问的峰值-->
                <property name="maxActive" value="${jdbc.maxActive}"/>
            </bean>
        
            <bean class="org.mybatis.spring.SqlSessionFactoryBean">
                <!--工厂引用上面配置好的数据源-->
                <property name="dataSource" ref="dataSource"/>
                <!--获得本地的Mapper-->
                <property name="mapperLocations" value="classpath:mapper/*.xml"/>
                <property name="configLocation" value="classpath:mybatis-config.xml"/>
                <property name="typeAliasesPackage" value="com.pro.domain"/>
                <!-- pageHelper插件  -->
                <property name="plugins">
                    <array>
                        <bean class="com.github.pagehelper.PageInterceptor">
                            <property name="properties">
                                <!--使用下面的方式配置参数,一行配置一个 -->
                                <value>
                                    <!-- 如有需要可以添加配置,默认即可 -->
                                    helperDialect=mysql
                                </value>
                            </property>
                        </bean>
                    </array>
                </property>
            </bean>
            <!--你的接口-->
            <!--找到你的接口,根据你的接口创建代理类-->
            <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
                <property name="basePackage" value="com.pro.dao"/>
            </bean>
        
            <!--声明事务-->
            <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
                <property name="dataSource" ref="dataSource"/>
            </bean>
            <tx:annotation-driven transaction-manager="transactionManager"/>
        
            <!--配置扫描器   -->
            <context:component-scan base-package="com.pro"/>
            <mvc:annotation-driven/>
            <mvc:default-servlet-handler/>
            <bean id="FreeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
                <property name="templateLoaderPath" value="/WEB-INF/ftl"/>
                <property name="freemarkerSettings">
                    <props><!--fmk读取ftl文件时,用utf-8编码来读取-->
                        <prop key="defaultEncoding">UTF-8</prop>
                    </props>
                </property>
            </bean>
        
            <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
                <!--视图解析器,将视图和模板引擎结合在一起时,产生的新的HTML-->
                <property name="contentType" value="text/html.charset=utf-8"/>
                <property name="suffix" value=".ftl"/>
            </bean>
        
        </beans>
        

    • 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>
              <!--属性名和字段名的驼峰命名转换-->
              <setting name="mapUnderscoreToCamelCase" value="true"/>
          </settings>
      </configuration>

导入依赖,因为测试mybatis的相关配置是否成功,所以要导入两个测试相关的依赖,spring-test ,前端页面没用jsp了,用的是freemarker模板语言,所以要导依赖

<!---->
    <packaging>war</packaging>
    <dependencies>
        <!--测试-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.2.16.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <!--spring-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>

        <!--模板语言FreeMarker-->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.30</version>
        </dependency>
        <!--为了项目支持freemarker,还要配置spring支持freemarker-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>

        <!--spring-jdbc-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>

        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <!--mybatis-spring-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.2</version>
        </dependency>

        <!--ali数据源-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.14</version>
        </dependency>

        <!--servlet-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>

        <!--jsp-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
        </dependency>

        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.49</version>
        </dependency>

        <!--jstl-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <!--json-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>

        <!--jackson-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.9.9</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.9.9</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.9</version>
        </dependency>

        <!--jsp解析器-->
        <dependency>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
            <version>2.0</version>
        </dependency>

        <!--分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.10</version>
        </dependency>

        <!--日志-->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
    </dependencies>

测试:

  • @RunWith注解的作用

    @RunWith就是一个运行器

    @RunWith(JUnit4.class)就是指用JUnit4来运行

    @RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环境

    @RunWith(Suite.class)的话就是一套测试集合,
     

    package com.pro.service;
    
    import junit.framework.TestCase;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    
    //测试的注解RunWith
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = {"classpath:applicationContext.xml"})
    public class TestServiceTest extends TestCase {
    
        //因为我们是测试springMvc,所以需要通过注入的方式,故不能直接使用Junit来测试,
        @Autowired
        private TestService testService;
    
        @Test
        public void save(){
            com.pro.domain.Test t = new com.pro.domain.Test();
            t.setContent("测试xxxxx");
            testService.save(t);
        }
    }

    环境搭建的目录结构

 

相关文章:

  • 国家高新技术企业认定流程
  • Leetcode 435. 无重叠区间
  • Java-基于SSM的图书管理系统
  • P1271 【深基9.例1】选举学生会 题解
  • pacman 升级软件包提示 “failed to commit transaction (invalid or corrupted package)“
  • 大家都在“跪求”的Spring响应式微服务PDF蓝光版,简直羡慕了!
  • 屏蔽搜索引擎的无用蜘蛛,减轻服务器压力
  • 微信小程序开发开篇词 自顶向下,云端赋能:小程序的高效开发之道
  • Docker的常用命令
  • MySQL高级篇03【逻辑架构】
  • 云原生之容器编排实践-阿里云私有容器镜像仓库
  • 对二维数组从两个维度进行排序(Arrays.sort()方法使用Lambada表达式)
  • SpringBoot 接口整理
  • SpringBoot工程打包与发布运行
  • 芒格-“永远不要有受害者心态”
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Docker 笔记(2):Dockerfile
  • IDEA 插件开发入门教程
  • IP路由与转发
  • js ES6 求数组的交集,并集,还有差集
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • python docx文档转html页面
  • Quartz初级教程
  • storm drpc实例
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • webpack项目中使用grunt监听文件变动自动打包编译
  • Yeoman_Bower_Grunt
  • 彻底搞懂浏览器Event-loop
  • 从setTimeout-setInterval看JS线程
  • 复习Javascript专题(四):js中的深浅拷贝
  • 缓存与缓冲
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 湖北分布式智能数据采集方法有哪些?
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (三) diretfbrc详解
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .Net语言中的StringBuilder:入门到精通
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • @Autowired和@Resource装配
  • @RequestMapping 的作用是什么?
  • []Telit UC864E 拨号上网
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [C++]Leetcode17电话号码的字母组合
  • [CareerCup] 6.1 Find Heavy Bottle 寻找重瓶子
  • [go 反射] 进阶
  • [HNOI2008]Cards
  • [k8s系列]:kubernetes·概念入门