SSM框架如何与Thymeleaf模板引擎实现集成?

2026-05-22 13:491阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3827个文字,预计阅读时间需要16分钟。

SSM框架如何与Thymeleaf模板引擎实现集成?

创建项目+配置Spring+SpringMVC+MyBatis配置文件+数据库内容+DAO层+Service层+Controller层+映射文件+前端简单页面+配置Tomcat运行显示+整体项目架构+补充+SSM整合Thymeleaf+目前许多后端技术栈采用S

  • 创建项目
  • Spring+SpringMVC+MyBatis的配置文件
  • 数据库内容
  • dao层+service层+controller层
  • 映射文件
  • 前端简单页面
  • 配置tomcat,运行显示
  • 总体项目架构
  • 补充

SSM整合Thymeleaf

目前很多后端技术栈采用Spring+SpringMVC+MyBatis的项目,其模板引擎大多使用JSP。基于现在前后端分离趋势,我们使用Thymeleaf这个模板引擎和SSM框架配合。但是Thymeleaf不算是真正意义上的前后端分离。

创建项目
  1. 创建一个maven项目,在例子中,我们创建一个名为SSMAndThymeleaf的项目。

  2. 引入全部依赖

    <?xmlversion="1.0"encoding="UTF-8"?>
    <projectxmlns="maven.apache.org/POM/4.0.0"
    xmlns:xsi="www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="maven.apache.org/POM/4.0.0maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.wang</groupId>
    <artifactId>SSMAndThymeleaf</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
    <!--导入spring,下面几个为spring和springmvc需要的依赖-->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.9.4</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>
    <!--导入springmvc-->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>

    <!--导入mybatis-->
    <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.2</version>
    </dependency>
    <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.2</version>
    </dependency>
    <!--mysql数据库的依赖-->
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.17</version>
    </dependency>
    <!--例子中使用的数据库连接池是C3P0,当然,你也可以选择Druid数据库连接池-->
    <dependency>
    <groupId>com.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.5.2</version>
    </dependency>

    <!--导入Thymeleaf模板引擎-->
    <dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf-spring5</artifactId>
    <version>3.0.9.RELEASE</version>
    </dependency>
    <!--servletapi-->
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.0</version>
    <scope>provided</scope>
    </dependency>
    <dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf</artifactId>
    <version>3.0.11.RELEASE</version>
    </dependency>

    <!--导入jackson注解-->
    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.8</version>
    </dependency>
    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
    </dependency>
    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.8</version>
    </dependency>
    </dependencies>
    </project>

  3. 为项目添加web框架支持。

Spring+SpringMVC+MyBatis的配置文件
  1. Spring的配置文件

    主要是扫描数据持久层和业务层,然后数据库的相关配置。

    <?xmlversion="1.0"encoding="utf-8"?>

    <beansxmlns="www.springframework.org/schema/beans"
    xmlns:xsi="www.w3.org/2001/XMLSchema-instance"
    xmlns:context="www.springframework.org/schema/context"
    xmlns:aop="www.springframework.org/schema/aop"
    xmlns:tx="www.springframework.org/schema/tx"
    xsi:schemaLocation="www.springframework.org/schema/beans
    www.springframework.org/schema/beans/spring-beans.xsd
    www.springframework.org/schema/context
    www.springframework.org/schema/context/spring-context.xsd
    www.springframework.org/schema/aop
    www.springframework.org/schema/aop/spring-aop.xsd
    www.springframework.org/schema/tx
    www.springframework.org/schema/tx/spring-tx.xsd">

    <!--扫描dao层-->
    <context:component-scanbase-package="com.wang.dao"/>
    <context:component-scanbase-package="com.wang.service"/>

    <!--加载properties文件,这里的properties文件是数据源配置需要的内容-->
    <context:property-placeholderlocation="classpath:properties/db.properties"/>

    <!--配置数据源-->
    <beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <propertyname="driverClass"value="${jdbc.driver}"/>
    <propertyname="jdbcUrl"value="${jdbc.url}"/>
    <propertyname="user"value="${jdbc.username}"/>
    <propertyname="password"value="${jdbc.password}"/>
    <!--初始连接池大小-->
    <propertyname="initialPoolSize"value="10"/>
    <!--连接池中连接最小个数-->
    <propertyname="minPoolSize"value="5"/>
    <propertyname="maxPoolSize"value="20"/>
    </bean>

    <!--配置SqlSession工厂对象,MyBatis配置SqlSessionFactory,Spring中将它封装成了一个Bean-->
    <beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
    <propertyname="dataSource"ref="dataSource"/>
    <!--MyBatis配置文件的位置-->
    <propertyname="configLocation"value="classpath:mybatis/mybatis-SqlMapConfig.xml"/>
    <!--MyBatis映射文件的位置-->
    <propertyname="mapperLocations"value="classpath*:mapper/*Dao.xml"/>
    </bean>

    <!--加载dao的接口对象,这一配置是为了让他能通过反射创建mapper对象-->
    <beanid="mapperScannerConfigurer"class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <propertyname="basePackage"value="com.wang.dao"/>
    <propertyname="sqlSessionFactoryBeanName"value="sqlSessionFactory"/>
    </bean>
    </beans>

  2. SpringMVC的配置文件

    <?xmlversion="1.0"encoding="UTF-8"?>
    <beansxmlns="www.springframework.org/schema/beans"
    xmlns:mvc="www.springframework.org/schema/mvc"
    xmlns:xsi="www.w3.org/2001/XMLSchema-instance"
    xmlns:context="www.springframework.org/schema/context"
    xsi:schemaLocation="www.springframework.org/schema/beans
    www.springframework.org/schema/beans/spring-beans.xsd
    www.springframework.org/schema/mvc
    www.springframework.org/schema/mvc/spring-mvc.xsdwww.springframework.org/schema/contextwww.springframework.org/schema/context/spring-context.xsd">

    <!--扫描controller层注解-->
    <context:component-scanbase-package="com.wang"/>

    <!--配置模板引擎-->
    <beanid="springResourceTemplateResolver"class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
    <propertyname="prefix"value="/WEB-INF/templates/"/>
    <propertyname="suffix"value=".html"/>
    <!--解决页面的中文乱码-->
    <propertyname="characterEncoding"value="UTF-8"/>
    <propertyname="order"value="1"/>
    <propertyname="templateMode"value="HTML5"/>
    <propertyname="cacheable"value="false"/>
    </bean>
    <beanid="springTemplateEngine"class="org.thymeleaf.spring5.SpringTemplateEngine">
    <propertyname="templateResolver"ref="springResourceTemplateResolver"/>
    </bean>

    <!--配置thymeleaf视图解析器-->
    <beanid="thymeleafViewResolver"class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
    <propertyname="templateEngine"ref="springTemplateEngine"/>
    <propertyname="characterEncoding"value="UTF-8"/>
    </bean>

    <!--开启注解驱动-->
    <mvc:annotation-driven/>
    </beans>

  3. MyBatis的配置文件

    其实MyBatis的配置在Spring中都已经配置完,即使我们使用事务,也是使用Spring的事务处理,所以这里只需要配置一点点东西。

    <?xmlversion="1.0"encoding="UTF-8"?>
    <!DOCTYPEconfiguration
    PUBLIC"-//mybatis.org//DTDConfig3.0//EN"
    "mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    <!--扫描pojo对象,起个别名-->
    <typeAliases>
    <packagename="com.wang.model"/>
    </typeAliases>
    </configuration>

数据库内容
数据库内容
dao层+service层+controller层
  1. 创建一个实体类(Country)

    packagecom.wang.model;

    /**
    *@authorwya
    *@version1.0
    *@schoolhhu
    *@date2022/3/2119:10
    */
    publicclassCountry{
    privateIntegerid;

    privateStringcountryName;

    privateStringcountryCode;

    publicIntegergetId(){
    returnid;
    }

    publicvoidsetId(Integerid){
    this.id=id;
    }

    publicStringgetCountryName(){
    returncountryName;
    }

    publicvoidsetCountryName(StringcountryName){
    this.countryName=countryName;
    }

    publicStringgetCountryCode(){
    returncountryCode;
    }

    publicvoidsetCountryCode(StringcountryCode){
    this.countryCode=countryCode;
    }

    }

  2. 创建dao接口

    importcom.wang.model.Country;
    importorg.apache.ibatis.annotations.Param;
    importorg.springframework.stereotype.Repository;

    /**
    *@authorwya
    *@version1.0
    *@schoolhhu
    *@date2022/3/2119:11
    */
    @Repository
    publicinterfaceCountryDao{

    CountryselectACountry(@Param("countryId")intid);

    }

  3. 创建service接口

    packagecom.wang.service;

    importcom.wang.model.Country;

    /**
    *@authorwya
    *@version1.0
    *@schoolhhu
    *@date2022/3/2119:11
    */
    publicinterfaceCountryService{

    CountrygetCountryById(intid);

    }

  4. 实现service接口

    packagecom.wang.service.impl;

    importcom.wang.dao.CountryDao;
    importcom.wang.model.Country;
    importcom.wang.service.CountryService;
    importorg.springframework.beans.factory.annotation.Autowired;
    importorg.springframework.stereotype.Service;

    /**
    *@authorwya
    *@version1.0
    *@schoolhhu
    *@date2022/3/2119:11
    */
    @Service
    publicclassCountryServiceImplimplementsCountryService{

    @Autowired
    CountryDaocountryDao;

    @Override
    publicCountrygetCountryById(intid){
    /**
    *这里是业务层的操作,我们这里省略
    */
    returncountryDao.selectACountry(id);
    }
    }

  5. 创建controller

    packagecom.wang.controller;

    importcom.wang.model.Country;
    importcom.wang.service.CountryService;
    importorg.springframework.beans.factory.annotation.Autowired;
    importorg.springframework.stereotype.Controller;
    importorg.springframework.ui.Model;
    importorg.springframework.web.bind.annotation.RequestMapping;

    /**
    *@authorwya
    *@version1.0
    *@schoolhhu
    *@date2022/3/2119:09
    */
    @Controller
    publicclassCountryController{

    @Autowired
    CountryServicecountryService;

    @RequestMapping("hello")
    publicStringtest(Modelmodel){
    Countrycountry=countryService.getCountryById(1);
    model.addAttribute("country",country);
    return"hello";
    }

    }

映射文件

<?xmlversion="1.0"encoding="UTF8"?>
<!DOCTYPEmapper
PUBLIC"-//mybatis.org//DTDMapper3.0//EN"
"mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--定义为当前的命名空间-->
<mappernamespace="com.wang.dao.CountryDao">
<selectid="selectACountry"resultType="com.wang.model.Country">
select*fromcountrywhereid=#{countryId};
</select>

</mapper>
前端简单页面

<!DOCTYPEhtml>
<htmllang="en"xmlns:th="www.thymeleaf.org">
<head>
<metacharset="UTF-8">
<title>Title</title>
</head>
<body>
<center><h1>显示成功!!!</h1>
国家名字:<pth:text="${country.countryName}"></p>
国家ID:<pth:text="${country.countryCode}"></p>
</body>
</html>
配置tomcat,运行显示 总体项目架构

补充

后续需要其他依赖的再加入即可,像文件的上传下载依赖等。

SSM框架如何与Thymeleaf模板引擎实现集成?

有问题请联系我。

本文共计3827个文字,预计阅读时间需要16分钟。

SSM框架如何与Thymeleaf模板引擎实现集成?

创建项目+配置Spring+SpringMVC+MyBatis配置文件+数据库内容+DAO层+Service层+Controller层+映射文件+前端简单页面+配置Tomcat运行显示+整体项目架构+补充+SSM整合Thymeleaf+目前许多后端技术栈采用S

  • 创建项目
  • Spring+SpringMVC+MyBatis的配置文件
  • 数据库内容
  • dao层+service层+controller层
  • 映射文件
  • 前端简单页面
  • 配置tomcat,运行显示
  • 总体项目架构
  • 补充

SSM整合Thymeleaf

目前很多后端技术栈采用Spring+SpringMVC+MyBatis的项目,其模板引擎大多使用JSP。基于现在前后端分离趋势,我们使用Thymeleaf这个模板引擎和SSM框架配合。但是Thymeleaf不算是真正意义上的前后端分离。

创建项目
  1. 创建一个maven项目,在例子中,我们创建一个名为SSMAndThymeleaf的项目。

  2. 引入全部依赖

    <?xmlversion="1.0"encoding="UTF-8"?>
    <projectxmlns="maven.apache.org/POM/4.0.0"
    xmlns:xsi="www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="maven.apache.org/POM/4.0.0maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.wang</groupId>
    <artifactId>SSMAndThymeleaf</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
    <!--导入spring,下面几个为spring和springmvc需要的依赖-->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.9.4</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>
    <!--导入springmvc-->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.1.9.RELEASE</version>
    </dependency>

    <!--导入mybatis-->
    <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.2</version>
    </dependency>
    <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.2</version>
    </dependency>
    <!--mysql数据库的依赖-->
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.17</version>
    </dependency>
    <!--例子中使用的数据库连接池是C3P0,当然,你也可以选择Druid数据库连接池-->
    <dependency>
    <groupId>com.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.5.2</version>
    </dependency>

    <!--导入Thymeleaf模板引擎-->
    <dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf-spring5</artifactId>
    <version>3.0.9.RELEASE</version>
    </dependency>
    <!--servletapi-->
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.0</version>
    <scope>provided</scope>
    </dependency>
    <dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf</artifactId>
    <version>3.0.11.RELEASE</version>
    </dependency>

    <!--导入jackson注解-->
    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.8</version>
    </dependency>
    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
    </dependency>
    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.8</version>
    </dependency>
    </dependencies>
    </project>

  3. 为项目添加web框架支持。

Spring+SpringMVC+MyBatis的配置文件
  1. Spring的配置文件

    主要是扫描数据持久层和业务层,然后数据库的相关配置。

    <?xmlversion="1.0"encoding="utf-8"?>

    <beansxmlns="www.springframework.org/schema/beans"
    xmlns:xsi="www.w3.org/2001/XMLSchema-instance"
    xmlns:context="www.springframework.org/schema/context"
    xmlns:aop="www.springframework.org/schema/aop"
    xmlns:tx="www.springframework.org/schema/tx"
    xsi:schemaLocation="www.springframework.org/schema/beans
    www.springframework.org/schema/beans/spring-beans.xsd
    www.springframework.org/schema/context
    www.springframework.org/schema/context/spring-context.xsd
    www.springframework.org/schema/aop
    www.springframework.org/schema/aop/spring-aop.xsd
    www.springframework.org/schema/tx
    www.springframework.org/schema/tx/spring-tx.xsd">

    <!--扫描dao层-->
    <context:component-scanbase-package="com.wang.dao"/>
    <context:component-scanbase-package="com.wang.service"/>

    <!--加载properties文件,这里的properties文件是数据源配置需要的内容-->
    <context:property-placeholderlocation="classpath:properties/db.properties"/>

    <!--配置数据源-->
    <beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <propertyname="driverClass"value="${jdbc.driver}"/>
    <propertyname="jdbcUrl"value="${jdbc.url}"/>
    <propertyname="user"value="${jdbc.username}"/>
    <propertyname="password"value="${jdbc.password}"/>
    <!--初始连接池大小-->
    <propertyname="initialPoolSize"value="10"/>
    <!--连接池中连接最小个数-->
    <propertyname="minPoolSize"value="5"/>
    <propertyname="maxPoolSize"value="20"/>
    </bean>

    <!--配置SqlSession工厂对象,MyBatis配置SqlSessionFactory,Spring中将它封装成了一个Bean-->
    <beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
    <propertyname="dataSource"ref="dataSource"/>
    <!--MyBatis配置文件的位置-->
    <propertyname="configLocation"value="classpath:mybatis/mybatis-SqlMapConfig.xml"/>
    <!--MyBatis映射文件的位置-->
    <propertyname="mapperLocations"value="classpath*:mapper/*Dao.xml"/>
    </bean>

    <!--加载dao的接口对象,这一配置是为了让他能通过反射创建mapper对象-->
    <beanid="mapperScannerConfigurer"class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <propertyname="basePackage"value="com.wang.dao"/>
    <propertyname="sqlSessionFactoryBeanName"value="sqlSessionFactory"/>
    </bean>
    </beans>

  2. SpringMVC的配置文件

    <?xmlversion="1.0"encoding="UTF-8"?>
    <beansxmlns="www.springframework.org/schema/beans"
    xmlns:mvc="www.springframework.org/schema/mvc"
    xmlns:xsi="www.w3.org/2001/XMLSchema-instance"
    xmlns:context="www.springframework.org/schema/context"
    xsi:schemaLocation="www.springframework.org/schema/beans
    www.springframework.org/schema/beans/spring-beans.xsd
    www.springframework.org/schema/mvc
    www.springframework.org/schema/mvc/spring-mvc.xsdwww.springframework.org/schema/contextwww.springframework.org/schema/context/spring-context.xsd">

    <!--扫描controller层注解-->
    <context:component-scanbase-package="com.wang"/>

    <!--配置模板引擎-->
    <beanid="springResourceTemplateResolver"class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
    <propertyname="prefix"value="/WEB-INF/templates/"/>
    <propertyname="suffix"value=".html"/>
    <!--解决页面的中文乱码-->
    <propertyname="characterEncoding"value="UTF-8"/>
    <propertyname="order"value="1"/>
    <propertyname="templateMode"value="HTML5"/>
    <propertyname="cacheable"value="false"/>
    </bean>
    <beanid="springTemplateEngine"class="org.thymeleaf.spring5.SpringTemplateEngine">
    <propertyname="templateResolver"ref="springResourceTemplateResolver"/>
    </bean>

    <!--配置thymeleaf视图解析器-->
    <beanid="thymeleafViewResolver"class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
    <propertyname="templateEngine"ref="springTemplateEngine"/>
    <propertyname="characterEncoding"value="UTF-8"/>
    </bean>

    <!--开启注解驱动-->
    <mvc:annotation-driven/>
    </beans>

  3. MyBatis的配置文件

    其实MyBatis的配置在Spring中都已经配置完,即使我们使用事务,也是使用Spring的事务处理,所以这里只需要配置一点点东西。

    <?xmlversion="1.0"encoding="UTF-8"?>
    <!DOCTYPEconfiguration
    PUBLIC"-//mybatis.org//DTDConfig3.0//EN"
    "mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    <!--扫描pojo对象,起个别名-->
    <typeAliases>
    <packagename="com.wang.model"/>
    </typeAliases>
    </configuration>

数据库内容
数据库内容
dao层+service层+controller层
  1. 创建一个实体类(Country)

    packagecom.wang.model;

    /**
    *@authorwya
    *@version1.0
    *@schoolhhu
    *@date2022/3/2119:10
    */
    publicclassCountry{
    privateIntegerid;

    privateStringcountryName;

    privateStringcountryCode;

    publicIntegergetId(){
    returnid;
    }

    publicvoidsetId(Integerid){
    this.id=id;
    }

    publicStringgetCountryName(){
    returncountryName;
    }

    publicvoidsetCountryName(StringcountryName){
    this.countryName=countryName;
    }

    publicStringgetCountryCode(){
    returncountryCode;
    }

    publicvoidsetCountryCode(StringcountryCode){
    this.countryCode=countryCode;
    }

    }

  2. 创建dao接口

    importcom.wang.model.Country;
    importorg.apache.ibatis.annotations.Param;
    importorg.springframework.stereotype.Repository;

    /**
    *@authorwya
    *@version1.0
    *@schoolhhu
    *@date2022/3/2119:11
    */
    @Repository
    publicinterfaceCountryDao{

    CountryselectACountry(@Param("countryId")intid);

    }

  3. 创建service接口

    packagecom.wang.service;

    importcom.wang.model.Country;

    /**
    *@authorwya
    *@version1.0
    *@schoolhhu
    *@date2022/3/2119:11
    */
    publicinterfaceCountryService{

    CountrygetCountryById(intid);

    }

  4. 实现service接口

    packagecom.wang.service.impl;

    importcom.wang.dao.CountryDao;
    importcom.wang.model.Country;
    importcom.wang.service.CountryService;
    importorg.springframework.beans.factory.annotation.Autowired;
    importorg.springframework.stereotype.Service;

    /**
    *@authorwya
    *@version1.0
    *@schoolhhu
    *@date2022/3/2119:11
    */
    @Service
    publicclassCountryServiceImplimplementsCountryService{

    @Autowired
    CountryDaocountryDao;

    @Override
    publicCountrygetCountryById(intid){
    /**
    *这里是业务层的操作,我们这里省略
    */
    returncountryDao.selectACountry(id);
    }
    }

  5. 创建controller

    packagecom.wang.controller;

    importcom.wang.model.Country;
    importcom.wang.service.CountryService;
    importorg.springframework.beans.factory.annotation.Autowired;
    importorg.springframework.stereotype.Controller;
    importorg.springframework.ui.Model;
    importorg.springframework.web.bind.annotation.RequestMapping;

    /**
    *@authorwya
    *@version1.0
    *@schoolhhu
    *@date2022/3/2119:09
    */
    @Controller
    publicclassCountryController{

    @Autowired
    CountryServicecountryService;

    @RequestMapping("hello")
    publicStringtest(Modelmodel){
    Countrycountry=countryService.getCountryById(1);
    model.addAttribute("country",country);
    return"hello";
    }

    }

映射文件

<?xmlversion="1.0"encoding="UTF8"?>
<!DOCTYPEmapper
PUBLIC"-//mybatis.org//DTDMapper3.0//EN"
"mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--定义为当前的命名空间-->
<mappernamespace="com.wang.dao.CountryDao">
<selectid="selectACountry"resultType="com.wang.model.Country">
select*fromcountrywhereid=#{countryId};
</select>

</mapper>
前端简单页面

<!DOCTYPEhtml>
<htmllang="en"xmlns:th="www.thymeleaf.org">
<head>
<metacharset="UTF-8">
<title>Title</title>
</head>
<body>
<center><h1>显示成功!!!</h1>
国家名字:<pth:text="${country.countryName}"></p>
国家ID:<pth:text="${country.countryCode}"></p>
</body>
</html>
配置tomcat,运行显示 总体项目架构

补充

后续需要其他依赖的再加入即可,像文件的上传下载依赖等。

SSM框架如何与Thymeleaf模板引擎实现集成?

有问题请联系我。