• 阶段5 3.微服务项目【学成在线】_day04 页面静态化_03-freemarker测试环境搭建


    新建一个module 




    选择parent

    test-freemarker




    spring‐boot‐starter‐freemarker:spring boot 提供的关于 freemaker的相关的包
    lombok:写模型类需要。
    okhttp:远程访问的包

     <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-freemarker</artifactId>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>okhttp</artifactId>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-io</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
            </dependency>
        </dependencies>
     

    复制进来以后,刷新一下

    配置文件

    application.yml和logback-spring.xml
    两个配置文件直接复制过去


    只配置freemarker的两厢,测试的时候把缓存关闭。监测时候设置为0表示立即去检查

    server:
    port: 8088 #服务端口

    spring:
    application:
    name: test-freemarker #指定服务名
    freemarker:
    cache: false #关闭模板缓存,方便测试
    settings:
    template_update_delay: 0 #检查模板更新延迟时间,设置为0表示立即检查,如果时间大于0会有缓存不方便进行模板测试


    新建一个包


    日期类型的引入,是这个包下面的 java.util.Date;

    写完了实体类的属性,加上@Data的注解,报错,通过手动的导入lombok.Data这个命名空间也不行。

    application.yml的配置文件里面,导入的包也有lombok,并没有异常信息。

    解决lombok的问题

    在模块的引用里面,发现包的引用都有问题。

    后来经过对比自己创建项目的pom.xml和资料里面给的pom.xml做了对比。发现可能是在创建项目的时候,没有选择好 module的parent项目。在pom.xml加上parent的标签 里面的配置。

    完整的pom.xml代码

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    
        <parent>
            <artifactId>xc-framework-parent</artifactId>
            <groupId>com.xuecheng</groupId>
            <version>1.0-SNAPSHOT</version>
            <relativePath>../xc-framework-parent/pom.xml</relativePath>
        </parent>
    
        <version>1.0-SNAPSHOT</version>
    
        <modelVersion>4.0.0</modelVersion>
        <artifactId>test-freemarker</artifactId>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-freemarker</artifactId>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>okhttp</artifactId>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-io</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
            </dependency>
        </dependencies>
    </project>

    继续代码


     

    package com.xuecheng.test.freemarker.model;
    
    import lombok.Data;
    import lombok.ToString;
    
    import java.util.Date;
    import java.util.List;
    
    @Data
    @ToString
    public class Student {
        private String name;//姓名
        private int age;//年龄
        private Date birthday;//生日
        private Float money;//钱包
        private List<Student> friends;//朋友列表
        private Student bestFriend;//最好的朋友
    }
     

    创建模板

    新建templates文件夹

    新建模板文件。格式是ftl格式的


    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>Hello World!</title>
    </head>
    <body>
    Hello ${name}
    </body>
    </html>

    引入spring-boot-starter-web

    这里不知道是不是视频没有仔细看还是怎么的。需要引入,spring-boot-starter-web方面下面创建的Controller可以用SpringMVC的一些注解

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    controller

    新建controller文件夹,然后新建FreemarkerController





    map作为一个形参。响应给模板的数据


    package com.xuecheng.test.freemarker.controller;
    
    
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import java.util.Map;
    
    @RequestMapping("/freemarker")
    public class FreemarkerController {
        @RequestMapping("/test1")
        public String test1(Map<String,Object> map){
            //返回freemarker模板的位置
            map.put("name","传智播客");
            return "test1";
        }
    }

    创建spring boot的启动类

    package com.xuecheng.test.freemarker;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class FreemarkerTestApplication {
        public static void main(String[] args) {
            SpringApplication.run(FreemarkerTestApplication.class,args);
        }
    }





    conktroller加上@RestController


    重启应用,测试:http://localhost:8088/freemarker/test1

    在这里加断点测试

    把@ResetController改成@Controller





    最终代码

    package com.xuecheng.test.freemarker.controller;
    
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.Map;
    
    @RequestMapping("/freemarker")
    @Controller
    public class FreemarkerController {
        @RequestMapping("/test1")
        public String test1(Map<String,Object> map){
            //返回freemarker模板的位置
            map.put("name","传智播客");
            return "test1";
        }
    }


     

  • 相关阅读:
    STM32|4-20mA输出电路
    Delphi版IP地址与整型互转
    侧方位停车
    98年的‘风暴’,08年的‘危机’,18年的“钱荒‘’
    一些软件设计的原则
    oracle-数据库的各种-锁-详解
    演员李艾佳去世突发病征年仅36岁
    【人生】王石:没变强是因为你太舒服
    耐心看的人早晚会成人上人
    Linux之make的用法讲解
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11579393.html
Copyright © 2020-2023  润新知