资讯详情

SpringBoot项目整合jetbrick-template

📅 2026/10/31 6:42:36 | 华诺云谱 👁 阅读
SpringBoot项目整合jetbrick-template
由于项目升级迁移一些老的ssm项目需要迁移到springboot项目其中涉及jetbrick-template的迁移整合下面记录了迁移前后项目的结构文件配置对比和迁移所需要的步骤ssm项目对比springboot项目传统SSMSpringSpringMVCMyBatis 是手动整合三大框架的经典 JavaEE 架构SpringBoot是基于 SSM 的自动配置、开箱即用的快速开发框架二者核心技术栈一致都用 Spring 全家桶但项目结构、配置文件、开发模式、部署方式却有不小差异核心定位与设计理念对比维度传统 SSM 项目SpringBoot 项目核心定位手动整合 SpringSpringMVCMyBatis纯手动配置约定大于配置自动整合 SSM简化开发、快速搭建设计理念全手动配置灵活性高但繁琐自动配置 起步依赖零 XML / 少 XML开箱即用适用场景老旧项目、需要极致自定义配置的项目新项目、微服务、快速迭代、云原生项目核心优势配置完全可控适配极特殊需求开发效率极高、无冗余配置、内置容器项目目录结构对比ssm:ssm-project/├── src/│ └── main/│ ├── java/ # 核心Java代码│ │ └── com/xxx/│ │ ├── controller/ # 控制层│ │ ├── service/ # 业务层│ │ ├── dao/ # 数据访问层│ │ ├── entity/ # 实体类│ │ └── config/ # 配置类可选大部分用XML│ ├── resources/ # 配置文件│ │ ├── spring/ # Spring核心配置XML│ │ ├── springmvc/ # SpringMVC配置XML│ │ ├── mybatis/ # MyBatis配置XML│ │ ├── jdbc.properties # 数据库连接配置│ │ └── log4j.properties # 日志配置│ └── webapp/ # WEB核心目录SSM标志性目录│ ├── WEB-INF/│ │ ├── web.xml # 核心部署描述符必须配置│ │ └── lib/ # 依赖jar包手动导入│ └── index.jsp # 页面文件└── pom.xml # 手动导入所有依赖springboot:springboot-project/├── src/│ └── main/│ ├── java/ # 核心Java代码固定包扫描规则│ │ └── com/xxx/│ │ ├── controller/ # 控制层│ │ ├── service/ # 业务层│ │ ├── mapper/ # DAO层MyBatis│ │ ├── entity/ # 实体类│ │ ├── config/ # 配置类替代XML│ │ └── SpringbootApplication.java # 启动类核心│ └── resources/ # 极简配置│ ├── application.yml/application.properties # 唯一核心配置│ ├── mapper/ # MyBatis映射文件可选│ ├── static/ # 静态资源js/css/img│ └── templates/ # 模板页面Thymeleaf等└── pom.xml # 仅导入起步依赖结构核心区别1.无 webapp 目录SpringBoot 内置 Tomcat彻底抛弃 WEB-INF/web.xml2.必须有启动类SSM 无启动类靠容器加载SpringBoot 通过main()方法启动3.静态资源目录标准化SpringBoot 固定static/templatesSSM 自定义4.包扫描自动生效SpringBoot 默认扫描启动类同级及子包SSM 需手动配置配置文件对比最核心差异传统SSM有很多XML配置SpringBoot是注解单文件配置几乎零XML。1. 配置文件数量传统 SSM最少5个XML配置文件web.xml、applicationContext.xml、spring-mvc.xml、mybatis-config.xml、jdbc.propertiesSpringBoot1 个核心配置文件application.yml / application.properties90% 场景无需额外配置2. 核心配置对比1web.xml 配置SSM 必须SpringBoot 彻底抛弃SSM 需要手动配置前端控制器、监听器、编码过滤器、资源映射SpringBoot自动配置无需一行 XML。2框架整合配置SSMXML 中手动配置数据源、SqlSessionFactory、Mapper 扫描、事务管理、MVC 视图解析器、包扫描SpringBoot自动配置导入mybatis-spring-boot-starter后自动配置数据源、SqlSession、MVC、事务只需在配置文件写数据库地址。3配置文件格式SSM纯 XML propertiesSpringBootyml推荐层级清晰/properties 注解Configuration4配置示例数据库连接SSMXMLpropertiesjdbc.propertiespropertiesjdbc.drivercom.mysql.cj.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/test jdbc.usernameroot jdbc.password123456applicationContext.xml手动加载、手动配置数据源xmlcontext:property-placeholder locationclasspath:jdbc.properties/ bean iddataSource classcom.alibaba.druid.pool.DruidDataSource property namedriverClassName value${jdbc.driver}/ property nameurl value${jdbc.url}/ property nameusername value${jdbc.username}/ property namepassword value${jdbc.password}/ /beanSpringBoot单 yml 文件yamlspring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/test username: root password: 123456无需创建 Bean无需手动扫描框架自动完成配置依赖管理Maven对比1. 传统 SSM手动导入所有依赖Spring 核心、SpringMVC、MyBatis、整合包、数据库驱动、连接池、日志、JSON 等必须手动管理版本兼容比如 Spring5.x 搭配 MyBatis3.x版本冲突会直接报错pom.xml 冗长易漏包、错包。2. SpringBoot起步依赖starter导入一个spring-boot-starter-web自动包含 Spring、SpringMVC、Tomcat、JSON 等所有依赖自动版本仲裁父工程统一管理版本绝对无版本冲突pom.xml 极简只需导入业务相关依赖。运行与部署方式对比维度传统 SSMSpringBoot运行方式必须依赖外部 Tomcat打包成 war 包放到 webapps 下内置 Tomcat/Jetty直接运行启动类 main 方法打包格式war 包jar 包内置容器直接 java -jar 运行端口配置外部 Tomcat 的 server.xml 配置application.yml 直接写 server.port部署难度繁琐需安装配置 Tomcat极简服务器有 Java 环境即可一键运行微服务支持不支持需手动改造天然支持微服务SpringCloud注解使用对比核心注解一致但 SpringBoot简化了注解功能传统 SSMSpringBoot启动加载无靠 web.xmlSpringBootApplication(三合一)包扫描context:component-scan自动扫描无需注解配置类ConfigurationXMLConfiguration控制层ControllerController/RestController事务Transactional完全一致MyBatis 映射Mapper XML 配置Mapper/MapperScan自动配置SpringBootApplicationConfigurationComponentScanEnableAutoConfiguration核心差异速记结构SSM 有webapp/WEB-INF/web.xmlSpringBoot 无用启动类 扁平化结构配置SSM 是 XML 配置地狱SpringBoot 只用application.yml 注解依赖SSM 手动导包管版本SpringBoot 用starter 起步依赖自动管理运行SSM 依赖外部 TomcatSpringBoot 内置容器直接 jar 包运行本质SpringBoot 不是新框架是SSM 的自动化简化工具核心技术完全一致ssm项目迁移jetbrick-template到springboot项目1.添加依赖jetbrick-template没有提供spring starter适配dependency groupIdcom.github.subchen/groupId artifactIdjetbrick-template-springmvc/artifactId version2.1.8/version /dependency2.添加configuration配置类由于jetbrick-template没有提供spring starter适配不支持自动配置所以添加配置类这个类的作用是通知spring我用的是jetbrick模版帮我集成进mvc;具体实现步骤1.创建注册视图解析器让 Controller 返回字符串时知道去渲染 Jetbrick 模板2.同时还创建 JetEngine让 Spring 启动模板引擎package com.sd.managesystem.config; import jetbrick.template.web.springmvc.JetTemplateViewResolver; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; Configuration public class JetbrickConfig { Bean public JetTemplateViewResolver jetTemplateViewResolver() { JetTemplateViewResolver resolver new JetTemplateViewResolver(); // 必须空 resolver.setPrefix(); resolver.setSuffix(); resolver.setContentType(text/html; charsetUTF-8); resolver.setOrder(Ordered.HIGHEST_PRECEDENCE); return resolver; } }3.添加配置属性文件jetbrick-template.properties放在启动类所在的模块这个属性文件相当于jetbrick引擎的说明书, 引擎怎么运行、去哪里找模板、怎么编译、怎么输出页面。#每次访问页面都重新编译模板;生产环境需配置为none compile.strategy always #使用类的静态方法时需要配置 jetx.import.classescom.sd.managesystem.* #使用jetbrick自定义标签、自定义函数、全局方法时需要配置 jetx.autoscan.packagescom.sd.managesystem jetx.trim.directive.commentstrue jetx.trim.directive.whitespacestrue jetx.trim.directive.comments.prefix!-- jetx.trim.directive.comments.suffix-- jetx.trim.leading.whitespacestrue jetx.template.suffix.html jetx.template.loaders $templates jetx.input.encodingutf-8 jetx.output.encodingutf-8 # 模板放在 classpath:/templates/ $templates jetbrick.template.loader.ClasspathResourceLoader $templates.root /templates/ # SpringBoot 开发开启热加载 $templates.reloadable true4.写html文件resource/templates/路径下写hello.html文件!DOCTYPE html html langzh-CN head meta charsetUTF-8 title${title}/title /head body h1${title}/h1 p当前时间${now}/p h3用户列表/h3 ul #for(user : users) liID${user.id} 姓名${user.name}/li liID${user.id} 姓名${User.getName()}/li #end /ul /body /html5.写controller类package com.sd.managesystem.controller; import com.sd.managesystem.vo.User; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import java.time.LocalDateTime; import java.util.Arrays; import java.util.List; Controller public class HelloController { GetMapping(/hello) public String index(Model model) { model.addAttribute(title, Spring Boot 集成 Jetbrick 成功); model.addAttribute(now, LocalDateTime.now()); ListUser userList Arrays.asList( new User(1, 张三), new User(2, 李四), new User(3, 王五) ); model.addAttribute(users, userList); return hello; } }运行代码访问http://localhost:8080/hello引入jetbrick-templatejetbrick默认只在根路径classpath:/找配置文件也就是项目的src/main/resources/如果放在了/resources/profile下则需要在application.yml配置文件中指定路径jetbrick:template:config-location: classpath:profile/jetbrick-template.properties
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑