Spring Cloud 2.x系列之springboot集成freemarker

简介: SVN多版本库环境的搭建 OAuth 2.0是什么?看这篇文章就够了。 前端 Java Python等资源合集大放送 springboot 中自带的页面渲染工具为thymeleaf ,freemarker这种模板引擎用的也比较多。

springboot 中自带的页面渲染工具为thymeleaf ,freemarker这种模板引擎用的也比较多。

一、在spring中springMVC代表着view层组件

二、为什么使用freemarker:简单容易学、逻辑分明

三、freemarker优点:不依赖servlet、网络或者web环境

7764af606ee8cce21c0d4b64b4f4d9861bf84261

1、新建maven项目,对应的pom.xml文件如下

<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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">

   <modelVersion>4.0.0</modelVersion>
   <groupId>spring-cloud</groupId>

   <artifactId>sc-freemarker</artifactId>

   <version>0.0.1-SNAPSHOT</version>

   <packaging>jar</packaging>

   <name>sc-freemarker</name>

   <url>http://maven.apache.org</url>



   <parent>

      <groupId>org.springframework.boot</groupId>

      <artifactId>spring-boot-starter-parent</artifactId>

      <version>2.0.4.RELEASE</version>

   </parent>

   <dependencyManagement>

      <dependencies>

        <dependency>

           <groupId>org.springframework.cloud</groupId>

           <artifactId>spring-cloud-dependencies</artifactId>

           <version>Finchley.RELEASE</version>

           <type>pom</type>

           <scope>import</scope>

        </dependency>

      </dependencies>

   </dependencyManagement>


   <dependencies>

      <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-web</artifactId>

      </dependency>


      <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-freemarker</artifactId>

      </dependency>

   </dependencies>

</project>

2、新建配置文件application.yml

server:
  port: 8081


spring:
  application:
    name: sc-freemarker
  freemarker:
    allow-request-override: false
    cache: true
    check-template-location: true
    charset:UTF-8
    content-type: text/html
    expose-request-attributes: false
    expose-session-attributes: false
    suffix: .ftl
    templateEncoding: UTF-8
    templateLoaderPath: classpath:/templates/
    expose-spring-macro-helpers: false

备注:freemarker有哪些配置项可以参考类

org.springframework.boot.autoconfigure.freemarker.FreeMarkerProperties

3、新建一个controller

package sc.freemarker.controller;

import java.util.ArrayList;

import java.util.List;



import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;



import sc.freemarker.model.User;



@Controller

public class FreemarkerController {



   @RequestMapping("/getUser")

   public StringgetUser(Integer id, Model model){

      User u = new User();

      u.setId(1);

      u.setAge(13);

      u.setSex(1);

      u.setUserName("黄金");

      User l = new User();

      l.setId(1);

      l.setAge(23);

      l.setSex(0);

      l.setUserName("白银");

      List<User> friends = newArrayList<User>();

      friends.add(l);

      u.setFriends(friends);

      model.addAttribute("user",u);

      return"getUser";

   }



}

备注:注意最外层的控制层注解只能用@Controller

4、新建模板文件getUser.ftl

<!DOCTYEhtml>

<htmlxmlns="http://www.w3.org/1999/xhtml"

      xmlns:th="http://www.thymeleaf.org"

      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">

<head>

<title>Hello World!</title>

</head>

<body>

      <center>

           <p>welcome${user.userName} to freemarker!</p>

           <p>

                      年龄: ${user.age}</br>

                 性别:

                 <#ifuser.sex==0> 女 <#elseifuser.sex==1> 男 <#else> 保密

                 </#if>

           </p>

           <h4>我的好友:</h4>

           <#listuser.friends as f> 姓名:${f.userName} , 年龄${f.age} <br>

           </#list>

      </center>

</body>

</html>

5、其他项目文件如下图

9142d0342724bb825754b50a1aa80fad36acbc48

6、运行FreemarkerApplication.java类,启动项目;并检查启动信息,确认freemarker配置是否生效

499cac3b78f18ecf3642482cb521972cece28d9c

7、访问页面http://127.0.0.1:8081/getUser

f30aedff079bd6daae6d94c19056aa159e8fb1e1

源码:

https://gitee.com/hjj520/spring-cloud-2.x/tree/master/sc-freemarker

本文作者:java乐园

本文来自云栖社区合作伙伴“JAVA乐园”,了解相关信息可以关注“JAVA乐园

相关文章
|
2天前
|
人工智能 自然语言处理 Java
Spring 集成 DeepSeek 的 3大方法(史上最全)
DeepSeek 的 API 接口和 OpenAI 是兼容的。我们可以自定义 http client,按照 OpenAI 的rest 接口格式,去访问 DeepSeek。自定义 Client 集成DeepSeek ,可以通过以下步骤实现。步骤 1:准备工作访问 DeepSeek 的开发者平台,注册并获取 API 密钥。DeepSeek 提供了与 OpenAI 兼容的 API 端点(例如),确保你已获取正确的 API 地址。
Spring 集成 DeepSeek 的 3大方法(史上最全)
|
14天前
|
Java 关系型数据库 MySQL
SpringBoot 通过集成 Flink CDC 来实时追踪 MySql 数据变动
通过详细的步骤和示例代码,您可以在 SpringBoot 项目中成功集成 Flink CDC,并实时追踪 MySQL 数据库的变动。
119 43
|
16天前
|
监控 前端开发 Java
SpringBoot集成Tomcat、DispatcherServlet
通过这些配置,您可以充分利用 Spring Boot 内置的功能,快速构建和优化您的 Web 应用。
48 21
|
23天前
|
监控 Java 应用服务中间件
SpringBoot是如何简化Spring开发的,以及SpringBoot的特性以及源码分析
Spring Boot 通过简化配置、自动配置和嵌入式服务器等特性,大大简化了 Spring 应用的开发过程。它通过提供一系列 `starter` 依赖和开箱即用的默认配置,使开发者能够更专注于业务逻辑而非繁琐的配置。Spring Boot 的自动配置机制和强大的 Actuator 功能进一步提升了开发效率和应用的可维护性。通过对其源码的分析,可以更深入地理解其内部工作机制,从而更好地利用其特性进行开发。
42 6
|
1月前
|
XML JavaScript Java
SpringBoot集成Shiro权限+Jwt认证
本文主要描述如何快速基于SpringBoot 2.5.X版本集成Shiro+JWT框架,让大家快速实现无状态登陆和接口权限认证主体框架,具体业务细节未实现,大家按照实际项目补充。
87 11
|
1月前
|
监控 Java Nacos
使用Spring Boot集成Nacos
通过上述步骤,Spring Boot应用可以成功集成Nacos,利用Nacos的服务发现和配置管理功能来提升微服务架构的灵活性和可维护性。通过这种集成,开发者可以更高效地管理和部署微服务。
208 17
|
1月前
|
人工智能 安全 Dubbo
Spring AI 智能体通过 MCP 集成本地文件数据
MCP 作为一款开放协议,直接规范了应用程序如何向 LLM 提供上下文。MCP 就像是面向 AI 应用程序的 USB-C 端口,正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 提供了一个将 AI 模型连接到不同数据源和工具的标准化方法。
|
1月前
|
缓存 安全 Java
Spring Boot 3 集成 Spring Security + JWT
本文详细介绍了如何使用Spring Boot 3和Spring Security集成JWT,实现前后端分离的安全认证概述了从入门到引入数据库,再到使用JWT的完整流程。列举了项目中用到的关键依赖,如MyBatis-Plus、Hutool等。简要提及了系统配置表、部门表、字典表等表结构。使用Hutool-jwt工具类进行JWT校验。配置忽略路径、禁用CSRF、添加JWT校验过滤器等。实现登录接口,返回token等信息。
369 12
|
1月前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
84 8
|
Java 应用服务中间件 Maven
传统maven项目和现在spring boot项目的区别
Spring Boot:传统 Web 项目与采用 Spring Boot 项目区别
537 0
传统maven项目和现在spring boot项目的区别

热门文章

最新文章