操作方法:Maven的Spring Boot和Thymeleaf

Spring Boot是一款很棒的软件,可让您在几秒钟内引导Spring应用程序。 它确实有效。 尽可能少的配置即可上手。 而且仍然可以更改默认值。 让我们看看用Thymeleaf和Maven引导Spring MVC并在IntelliJ中使用它是多么容易。

Spring MVC + Thymeleaf与Maven的基本设置

确保使用以下命令安装了Maven 3: mvn --version 。 导航到要在其中创建项目的目录并执行Maven原型:

mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=pl.codeleak.demos.sbt -DartifactId=spring-boot-thymeleaf -interactiveMode=false

上面的命令将创建一个新目录spring-boot-thymeleaf 。 现在,您可以将其导入到IDE中。 就我而言,这是IntelliJ。

下一步是配置应用程序。 打开pom.xml并添加一个父项目:如果未指定,则来自父项目的值将是该项目的默认值。

下一步是添加Web依赖项。 为了做到这一点,我首先删除了所有先前的依赖项(实际上是Junit 3.8.1),并添加了以下依赖项:现在,等待一秒钟,直到Maven下载依赖项并运行mvn dependency:tree来查看包含了哪些依赖项。

接下来是包装配置。 让我们添加Spring Boot Maven插件:通过以上步骤,基本配置已准备就绪。 现在我们可以运行该应用程序了。 Spring Boot Maven插件提供了两个run目标和repackage目标。 因此,让我们使用mvn spring-boot:run应用程序。 该命令应产生Hello World! 。 请注意, App类具有main方法。 因此,实际上,您可以在IntellJ(或任何其他IDE)中运行此类。

Hello World!

但请稍等。 这不是Web应用程序。 因此,让我们修改App类,使其成为Spring Boot应用程序的入口点:

package pl.codeleak.demos.sbt;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
 
@EnableAutoConfiguration
@Configuration
@ComponentScan
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class);
    }
}

除了上述内容外,我还将删除AppTest因为它很烂(它是由maven-archetype-quickstart创建的)! 现在我们可以再次运行该应用程序以查看会发生什么:

java.lang.IllegalStateException: Cannot find template location: class path resource [templates/] (please add some templates or check your Thymeleaf configuration)

明确。 然后添加一些Thymeleaf模板。

Thymeleaf模板放在哪里?

模板的默认位置是…classpath中可用的templates 。 因此,我们需要至少将一个模板放入src/main/resources/templates目录。 让我们创建一个简单的例子:再次运行该应用程序,将在端口8080上使用我们的应用程序启动嵌入式Tomcat:

Tomcat started on port(s): 8080/http

好。 但是缺少了一些东西。 当我们导航到localhost:8080 ,将看到404页面。 当然! 还没有控制器。 因此,让我们创建一个:

package pl.codeleak.demos.sbt.home;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 
@Controller
class HomeController {
 
    @RequestMapping("/")
    String index() {
        return "index";
    }
}

再次运行该应用程序后,您应该可以看到Hello Spring Boot! 页!

添加静态资源

与Thymeleaf模板类似,默认情况下,静态资源是从classpath提供的。
我们可以将CSS文件放入src/main/resources/css ,将JavaScript文件放入src/main/resources/js等。

在Thymeleaf模板中,我们像这样引用它们:

将包装从罐子转换为战争

但是,如果我们想将应用程序作为纯Web应用程序运行并将其作为war软件包提供,该怎么办? 使用Spring Boot相当容易。 首先,我们需要将pom.xml的包装类型从jar转换为war (包装元素)。 其次–确保Tomcat是提供的依赖项:最后一步是引导servlet配置。 创建Init类并从SpringBootServletInitializer继承:

package pl.codeleak.demos.sbt;
 
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
 
public class Init extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(App.class);
    }
}

我们可以检查配置是否适用于Maven: mvn clean package 。 战争文件应创建:

Building war: C:\Projects\demos\spring-boot-thymeleaf\target\spring-boot-thymeleaf-1.0-SNAPSHOT.war

使用Maven直接从war文件启动应用程序:

java -jar target\spring-boot-thymeleaf-1.0-SNAPSHOT.war

有了一个战争项目,我们可以在IntelliJ中运行该应用程序。 更改包装后,IntellJ应该检测项目中的更改,并在其中添加Web构面。 下一步是配置并运行Tomcat服务器。 导航到“ Edit Configurations然后添加带有爆炸战争产物的Tomcat服务器。 现在,您可以像其他任何Web应用程序一样运行该应用程序。

重新加载Thymeleaf模板

由于应用程序在IntelliJ中的本地Tomcat服务器上运行,因此我们可以在不重新启动服务器的情况下重新加载静态资源(例如CSS文件)。 但是默认情况下,Thymeleaf会缓存模板,因此为了更新Thymeleaf模板,我们需要更改此行为。 为此,使用以下属性将application.properties添加到src/main/resources目录: spring.thymeleaf.cache=false 。 重新启动服务器,从现在开始,您可以重新加载Thymeleaf模板,而无需重新启动服务器。

更改其他配置默认值

缓存配置不是我们可以调整的唯一可用配置。 请查看ThymeleafAutoConfiguration类以查看您可以更改的其他内容。 仅举几例: spring.thymeleaf.modespring.thymeleaf.encoding

最后的想法

Spring Boot简化了引导Web应用程序的过程。 仅需几步,您就可以拥有完全正常运行的Web应用程序,该应用程序可以是独立的,也可以在任何Servlet环境中运行。 除了学习Spring配置之外,您还可以专注于开发。 要进一步了解Spring Boot,请阅读该手册,并查看提供了许多有用的入门教程的Spring指南。 请享用!

资源资源

翻译自: https://www.javacodegeeks.com/2014/04/how-to-spring-boot-and-thymeleaf-with-maven.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值