使用IDEA创建SpringMvc并整合Thymeleaf(Java配置版)
时间:2022-07-25
本文章向大家介绍使用IDEA创建SpringMvc并整合Thymeleaf(Java配置版),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、新建Maven项目
使用idea:File–>New–>Project–>Maven,然后勾选"Create from archetype",继续选中"maven-archetype-webapp"。最后填好GroupId和ArtifactId.
- groupId :the unique identifier of the organization or group that created the project. <======>GroupID 是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。
- artifactId :unique base name of the primary artifact being generated by this project <======>ArtifactID是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
二、导入相关maven的依赖包
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<spring.version>4.3.18.RELEASE</spring.version>
<thymeleaf.version>2.1.4.RELEASE</thymeleaf.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--J2EE-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!--SpringMvc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<!--Thymeleaf-->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring4</artifactId>
<version>${thymeleaf.version}</version>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>${thymeleaf.version}</version>
</dependency>
</dependencies>
三、创建目录结构
- 右击项目名称---->Add Framework Support…---->选择SpringMvc(如果没有这个选项,需要把Project Structure—>Modules—>Spring移除掉)
- 在main文件夹下添加java目录,然后右击Make Directory as—>Sources Root
- 在src目录下新建test目录,然后右击Make Directory as—>Test Sources Root
四、编写配置文件
- SpittrWebAppInitializer
/**
* 配置DispatcherServlet,相当于Web.xml的作用
*
* getServletConfigClasses()方法返回的带有@Configuration注解的类将会用来定义DispatcherServlet应用上下文中的Bean
* getRootConfigClasses()方法返回的带有@Configuration注解的类将会用来配置ContextLoaderListener创建的应用上下文中的Bean
*
*
* @Author: xjf
* @Date: 2019/6/28 17:37
*/
public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[]{RootConfig.class};
}
/**
* 指定配置类
* @return
*/
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[]{WebConfig.class};
}
/**
* 将DispatcherServlet映射到"/"。会将一个或多个路径映射到DispatcherServlet上
* @return
*/
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
}
- RootConfig
@Configuration
@ComponentScan(basePackages = "com.spittr",
excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,value = EnableWebMvc.class)})
public class RootConfig {
}
- WebConfig
/**
* WebConfig配置类(自定义的配置)
*
* @Author: xjf
* @Date: 2019/6/30 9:41
*/
@Configuration
@EnableWebMvc
@ComponentScan("com.spittr.config")
public class WebConfig extends WebMvcConfigurerAdapter {
/**
* Thymeleaf视图解析器
* @param templateEngine
* @return
*/
@Bean
public ViewResolver viewResolver(SpringTemplateEngine templateEngine){
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(templateEngine);
return viewResolver;
}
/**
* 模板引擎
* @param templateResolver
* @return
*/
@Bean
public SpringTemplateEngine templateEngine(TemplateResolver templateResolver){
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolver(templateResolver);
return templateEngine;
}
/**
* 模板解析器
* @return
*/
@Bean
public TemplateResolver templateResolver(){
TemplateResolver templateResolver = new ServletContextTemplateResolver();
templateResolver.setPrefix("/WEB-INF/templates/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode("HTML5");
return templateResolver;
}
}
五、编写一个控制类HelloController
@Controller
public class HelloController {
@RequestMapping(value = "/hello",method = RequestMethod.GET)
public String hello(){
System.out.println("hello");
return "hello";
}
}
六、编写一个hello.html
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>Spitter</title>
</head>
<body>
<h1>Welcome to Spittr</h1>
<a th:href="@{/spittles}">Spittles</a>
</body>
</html>
七、最后配置好tomcat就可以运行起来了
- 熔断器 Hystrix 源码解析 —— 断路器 HystrixCircuitBreaker
- 源码级别解读 mybatis 插件
- 在WebKit中并行加载外部脚本译:
- 100行代码,搞定http监控框架
- 【腾讯反病毒实验室】深度剖析APT28最新作品
- [译]clearfix改良及overflow:hidden详解
- 深入解析CSS样式层叠权重值
- [译]CSS边框实现“无图化”设计
- 自适应的多列图文混排改进
- [译]Laravel 5.0 之运行环境及环境变量
- 90行代码,搞定日志监控框架
- Laravel Migrate 中的 Fresh 和 Refresh 命令
- 框架组件,究竟要不要自研?
- Nginx泛解析到子目录,自动判断有无public目录
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- SwiftUI:辅助功能——简单介绍
- Xshell突出显示集
- samba服务安装脚本
- 【Vue.js】Vue.js组件库Element中的树形控件、分页、标记、头像和警告
- 磁盘分区空间检测工具
- 【Vue.js】Vue.js组件库Element中的加载、消息提示、弹框和通知
- 云主机装ikuai
- 【Vue.js】Vue.js组件库Element中的导航菜单、标签页、面包屑和页头
- CentOS7查看硬盘是SSD还是HDD
- 浅谈CentOS防火墙命令
- 【Vue.js】Vue.js组件库Element中的下拉菜单、步骤条、对话框和文字提示
- Win10触控板多指触控、手势操作教程
- 【Vue.js】Vue.js组件库Element中的弹出框、气泡确认框、卡片和走马灯
- 【Vue.js】Vue.js组件库Element中的折叠面板、时间线、分割线和日历
- 从Properties乱码来学习编码