我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Springboot如何整合FreeMarker

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Springboot如何整合FreeMarker

这篇文章将为大家详细讲解有关Springboot如何整合FreeMarker,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一、项目搭建

1、新建模块

Springboot如何整合FreeMarker

Springboot如何整合FreeMarker

2、导入依赖 :将不相关的依赖删掉

<!--        <dependency>--><!--            <groupId>org.mybatis.spring.boot</groupId>--><!--            <artifactId>mybatis-spring-boot-starter</artifactId>--><!--            <version>2.1.4</version>--><!--        </dependency>-->         <dependency>            <groupId>tk.mybatis</groupId>            <artifactId>mapper-spring-boot-starter</artifactId>            <version>2.0.2</version>        </dependency>        <dependency>            <groupId>javax.persistence</groupId>            <artifactId>persistence-api</artifactId>            <version>1.0</version>            <scope>compile</scope>        </dependency>

3、新建软件包,放入student实体类

package com.lv.code.pojo; import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.experimental.Accessors; @Data@NoArgsConstructor@AllArgsConstructor@Accessors(chain = true)public class Student {        private Long stuId;         private String stuName;         private String stuPhone;         private Long stuClass;         private String stuAddress;}

4、新建StudentMapper接口

package com.lv.code.mapper; import com.lv.code.pojo.Student;import org.springframework.stereotype.Repository;import tk.mybatis.mapper.common.Mapper; @Repositorypublic interface StudentMapper extends Mapper<Student> { }

5、Springboot04Application内引用mapper

package com.lv.code; import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import tk.mybatis.spring.annotation.MapperScan; @SpringBootApplication@MapperScan("com.lv.code.mapper")public class Springboot04Application {     public static void main(String[] args) {        SpringApplication.run(Springboot04Application.class, args);    } }

6、application.yml文件配置

server:  port: 8080#  配置数据源spring:  datasource:    username: root    password: 123456    driver-class-name: com.mysql.cj.jdbc.Driver    url: jdbc:mysql://localhost:3306/aaa?userSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true#  日志打印logging:  level:    com.lv.code.mapper: debug

7、测试

Springboot04ApplicationTests:

package com.lv.code; import com.lv.code.mapper.StudentMapper;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest; @SpringBootTestclass Springboot04ApplicationTests {    @Autowired    StudentMapper mapper;     @Test    void contextLoads() {        System.out.println(mapper.selectAll());    } }

Springboot如何整合FreeMarker

8、将切面、util包、启动器导入

导入依赖

<dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-aop</artifactId>        </dependency>        <dependency>            <groupId>com.github.pagehelper</groupId>            <artifactId>pagehelper-spring-boot-starter</artifactId>            <version>1.2.10</version>        </dependency>

切面PageAspect:

package com.lv.code.aspect; import com.github.pagehelper.Page;import com.github.pagehelper.PageHelper;import com.github.pagehelper.PageInfo;import com.lv.code.util.PageBean;import lombok.extern.slf4j.Slf4j;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.springframework.stereotype.Component; @Component@Aspect@Slf4jpublic class PageAspect {     @Around(value = "execution(* *..*Service.*Pager(..))")    public Object invoke(ProceedingJoinPoint point) throws Throwable {        PageBean pageBean = null;        for (Object e : point.getArgs()) {            if (e instanceof PageBean) {                pageBean = (PageBean) e;                break;            }        }        if (pageBean != null && pageBean.isPagination()) {            PageHelper.startPage(pageBean.getPage(), pageBean.getRows());        }        Object obj = point.proceed(point.getArgs());        if (obj != null) {            if (obj instanceof Page) {                Page page = (Page) obj;                PageInfo pageInfo = new PageInfo(page);                pageBean.setTotal(new Long(pageInfo.getTotal()).intValue());                return pageInfo.getList();            }        }        return obj;    } }

util包中的PageBean类

package com.lv.code.util; import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor; import javax.servlet.http.HttpServletRequest;import java.util.Map; @Data@NoArgsConstructor@AllArgsConstructorpublic class PageBean {     private int total;    private int page = 1;    private int rows = 5;    private boolean pagination = true;    private String url;    private Map<String, String[]> ms;     public void setMs(Map<String, String[]> ms) {        this.ms = ms;    }     public int calcStartIndex() {        return (page - 1) * rows;    }     public int calcMaxPage() {        return total % rows == 0 ? total / rows : total / rows + 1;    }     public int nextPage() {        return Math.min(page + 1, calcMaxPage());    }     public int prevPage() {        return Math.max(page - 1, 1);    }     public void setRequest(HttpServletRequest req) {        setUrl(req.getRequestURL().toString());        setMs(req.getParameterMap());        String page = req.getParameter("page");        if (page == null) {            setPage(1);        } else {            setPage(Integer.parseInt(page));        }        String rows = req.getParameter("rows");        if (rows == null) {            setRows(5);        } else {            setRows(Integer.parseInt(rows));        }        String pagination = req.getParameter("pagination");        if ("false".equals(pagination)) {            setPagination(false);        }    } }

9、新建service层

新建StudentService接口:

package com.lv.code.service; import com.lv.code.pojo.Student;import com.lv.code.util.PageBean; import java.util.List; public interface StudentService {     List<Student> findPager(PageBean pageBean); }

实现StudentService接口:StudentServiceImpl

package com.lv.code.service; import com.lv.code.mapper.StudentMapper;import com.lv.code.pojo.Student;import com.lv.code.util.PageBean;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service; import java.util.List; @Servicepublic class StudentServiceImpl implements StudentService {    @Autowired    private StudentMapper mapper;     @Override    public List<Student> findPager(PageBean pageBean) {        return mapper.selectAll();    }}

10、新建controller层

StudentController类:

package com.lv.code.controller; import com.github.pagehelper.PageRowBounds;import com.lv.code.service.StudentService;import com.lv.code.util.PageBean;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; @RestControllerpublic class StudentController {    @Autowired    private StudentService service;     @GetMapping    public Object find(HttpServletRequest request){        PageBean pageBean=new PageBean();        pageBean.setRequest(request);        return service.findPager(pageBean);    } }

11、运行启动类Springboot04Application,访问localhost:8080网址

二、freemarker介绍

1、新建资源文件application.yml

更改配置文件,添加freemarker配置

server:  port: 8080#  配置数据源spring:  datasource:    username: root    password: 123456    driver-class-name: com.mysql.cj.jdbc.Driver    url: jdbc:mysql://localhost:3306/aaa?userSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true  freemarker:    #指定HttpServletRequest的属性是否可以覆盖controller的model的同名项    allow-request-override: false    #req访问request    request-context-attribute: req    #后缀名freemarker默认后缀为.ftl,当然你也可以改成自己习惯的.html    suffix: .ftl    #设置响应的内容类型    content-type: text/html;charset=utf-8    #是否允许mvc使用freemarker    enabled: true    #是否开启template caching    cache: false    #设定模板的加载路径,多个以逗号分隔,默认: [ “classpath:/templates/” ]    template-loader-path: classpath:/templates/    #设定Template的编码    charset: UTF-8#  日志打印logging:  level:    com.lv.code.mapper: debug

2、模板语法

Springboot如何整合FreeMarker

 3、在资源文件中的templates文件下新建index.ftl文件

增加模块:

Springboot如何整合FreeMarker

Springboot如何整合FreeMarker

Springboot如何整合FreeMarker

 然后可选中freemarker直接生成ftl文件

关于“Springboot如何整合FreeMarker”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Springboot如何整合FreeMarker

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Springboot如何整合FreeMarker

这篇文章将为大家详细讲解有关Springboot如何整合FreeMarker,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、项目搭建1、新建模块2、导入依赖 :将不相关的依赖删掉