前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用IDEA创建SpringMvc并整合Thymeleaf(Java配置版)

使用IDEA创建SpringMvc并整合Thymeleaf(Java配置版)

作者头像
凡人飞
发布2020-09-20 20:25:56
1.1K0
发布2020-09-20 20:25:56
举报
文章被收录于专栏:指缝阳光

一、新建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的依赖包

代码语言:javascript
复制
  <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>

三、创建目录结构

  1. 右击项目名称---->Add Framework Support…---->选择SpringMvc(如果没有这个选项,需要把Project Structure—>Modules—>Spring移除掉)
  2. 在main文件夹下添加java目录,然后右击Make Directory as—>Sources Root
  3. 在src目录下新建test目录,然后右击Make Directory as—>Test Sources Root

四、编写配置文件

  1. SpittrWebAppInitializer
代码语言:javascript
复制
/**
 * 配置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[]{"/"};
    }
}
  1. RootConfig
代码语言:javascript
复制
@Configuration
@ComponentScan(basePackages = "com.spittr",
        excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,value = EnableWebMvc.class)})
public class RootConfig {
}
  1. WebConfig
代码语言:javascript
复制
/**
 * 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

代码语言:javascript
复制
@Controller
public class HelloController {

    @RequestMapping(value = "/hello",method = RequestMethod.GET)
    public String hello(){
        System.out.println("hello");
        return "hello";
    }
}

六、编写一个hello.html

代码语言:javascript
复制
<!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就可以运行起来了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、新建Maven项目
  • 二、导入相关maven的依赖包
  • 三、创建目录结构
  • 四、编写配置文件
  • 五、编写一个控制类HelloController
  • 六、编写一个hello.html
  • 七、最后配置好tomcat就可以运行起来了
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档