SpringBoot构建Web应用,整合Thymeleaf模板

本文介绍了如何使用SpringBoot创建Web工程,并整合Thymeleaf模板引擎,详细步骤包括:创建SpringBoot Web项目,添加Lombok、web及Thymeleaf依赖,配置工程,设置数据库连接,自定义启动Banner,调整端口号,创建并配置视图控制器,以及解决Thymeleaf模板引擎的配置问题。通过这些步骤,成功实现了显示'Hello World'的Web页面。

创建springboot web 工程

  1. 官网https://start.spring.io
    点击绿色按钮在这里插入图片描述
    浏览器就会下载demo.zip解压在idea中打开就可以,当然要添加相应的依赖
  2. 创建springboot工程(在idea中创建)
    在这里插入图片描述
    添加Lombok插件可以在javaBean时省去写set、get和构造方法,通过@Setter @Getter 和@NoArgsConstructor 这个注解生成对应的get、set和空的构造方法
    在这里插入图片描述
    因为我们搭建的是web项目,所以我们要添加web依赖
    在这里插入图片描述
    引入模板引擎,Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP
    具体怎么用下文会介绍
    在这里插入图片描述
    添加MyBatis依赖 这里可以不添加先
    在这里插入图片描述
    填写工程名称点击Finish完成
    在这里插入图片描述
    完成以后打开后就这样了 当然这里我删掉了几个对我们demo无影响的文件
    在这里插入图片描述
    接下来看一下我们的依赖
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <!--springboot 的心脏-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.1</version>
        </dependency>
        <!--lombok依赖-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--手动添加,因为中央仓库没有这个jar-->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.1.0</version>
        </dependency>
        <!--用于测试的,如不用于测试可以注释-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

ojdbc6打入本地创库链接https://blog.youkuaiyun.com/WYpersist/article/details/80614949
spring-boot-starter-web内置tomcat 默认端口号8080
在这里插入图片描述
接下来就是启动这个工程,springboot 启动比较特殊,他是通过main方法启动的,点击下图红色框的绿色小图标就可以run了
在这里插入图片描述
你会发现下面这样的报错信息
在这里插入图片描述
原因是@SpringBootApplication注解,这是整个Spring Boot的核心注解,它的目的就是开启Spring Boot的自动配置。关于Spring Boot的自动配置那些事大家可以自行去百度,这里不做详解,接下来在把@SpringBootApplication()替换成下面这段,这样就可以启动了

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)

看到这个表示启动成功了,当然可以用另一种办法不改变注解
在这里插入图片描述
在resource文件加下可以看到application.properties,我用的是Oracle数据库连接,所以如下

spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:orcl
spring.datasource.username=scott
spring.datasource.password=tiger

启动就可以了
在这里插入图片描述
细心地同学会发现我的spring图标和端口号变了,在application.properties里添加下面这段代码,改变端口号

server.port=9092

定制banner
在resource文件夹下创建banner.txt,然后通过http://patorjk.com/software/taag网站生成需要的字符,将字符复制到banner.txt里就可以了
在这里插入图片描述
关闭banner
在启动类的main方法里添加如下代码就可以去掉banner,启动图标就消失了

builder.bannerMode(Banner.Mode.OFF).run(args);

步入web
首先按如下目录创建文件夹(红色框的)
在这里插入图片描述
刚创建出来的springboot中resource目录是没有META-INF 和view ,只有static 和templates 这两个都是springboot默认读取的文件,为了保证万无一失的读取到我们想要的文件,在application.properties中添加如下代码

spring.resources.static-locations=classpath:/static/,classpath:/view/,classpath:/META-INF/

创建好login.html,写上一句著名的语句 HELLO WORLD
在这里插入图片描述
按下图创建文件夹和类用于配置路径转发
在这里插入图片描述
WebConfiguration里的内容如下

@Configuration
    public class WebMVCConfig extends WebMvcConfigurerAdapter {
        @Override
        public void addViewControllers(ViewControllerRegistry registry) {
            registry.addViewController("/view").setViewName("/login");
            super.addViewControllers(registry);
        }

    }

在这里插入图片描述
继承WebMvcConfigureAdapter重写addViewControllers 跳转指定页面,这样我们就无须写Control就可以访问页面了,此时我们需要将WebConfiguration类添加到resource/META-INF/spring.factories如图
在这里插入图片描述
Spring Boot中的SPI机制

在Spring中也有一种类似与Java SPI的加载机制。它在META-INF/spring.factories文件中配置接口的实现类名称,然后在程序中读取这些配置文件并实例化。这种自定义的SPI机制是Spring Boot Starter实现的基础。

搞好这些后我们就需要配置引擎模板,在application.properties中


spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html
#开发时关闭缓存,不然没法看到实时页面
spring.thymeleaf.cache=false
# 在构建URL时预先查看名称的前缀
spring.thymeleaf.prefix=classpath:/view/
# 构建URL时附加查看名称的后缀.
spring.thymeleaf.suffix=.html
#thymeleaf end

spring.thymeleaf.mode=LEGACYHTML5 需要添加如下依赖

<dependency>
            <groupId>net.sourceforge.nekohtml</groupId>
            <artifactId>nekohtml</artifactId>
            <version>1.9.22</version>
        </dependency>

为了防止因为在html中少了结束标签,而让你找半天错误,比如
在这里插入图片描述
这个结束结束标签可有可无,如果把它spring.thymeleaf.mode=HTML5 设置这样就会错,报的是路径错,你会为此得不偿失,哈哈,吃一堑长一智

以下这是我application.properties的配置信息
在这里插入图片描述
现在就可以启动demo了,在地址栏上输入 http://localhost:9092/view,如下
在这里插入图片描述
看到Hello World Spring+thymeleaf就算搭建成功了,谢谢你们的阅读,希望能帮到大家,后面介绍springboot+mybatis配置教程

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值