Java笔记:SpringBoot开发常用技术整合(1)

简介: Java笔记:SpringBoot开发常用技术整合

一、构建springboot工程

参考源码地址

https://github.com/leechenxiang/imooc-springboot-starter

可选IDE

STS Spring Tool Suit

快速开始:https://spring.io/quickstart

配置文件 application.properties

############################################################
#
# 开发模式设置
#
############################################################
# 热部署生效
spring.devtools.restart.enabled=true
# 监听目录
spring.devtools.restart.additional-paths=src/main/java
#spring.devtools.restart.exclude=static/**,public/**
#spring.devtools.restart.exclude=WEB-INF/**
############################################################
#
# server 服务端配置
#
############################################################
server.port=8080
#server.servlet.context-path=/demo
#server.error.path=/error
#server.address=192.168.1.2
#server.session-timeout=60
############################################################
#
# server.tomcat 服务端配置
#
############################################################
#server.tomcat.max-threads=250
server.tomcat.uri-encoding=UTF-8
#server.tomcat.basedir=H:/springboot-tomcat-tmp
#server.tomcat.access-log-enabled=true
#server.tomcat.access-log-pattern=
#server.tomcat.accesslog.directory=
#logging.path=H:/springboot-tomcat-tmp
#logging.file=myapp.log

二、接口返回json


# 时间格式化
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
spring.jackson.serialization.write-dates-as-timestamps=false
package com.example.demo.pojo;
/**
 * 统一的返回封装
 */
public class JsonResult {
    private Integer code;
    private String msg;
    private Object data;
    public JsonResult(Integer code, String msg, Object data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
    public static JsonResult success(Object data){
        return new JsonResult(0, "success", data);
    }
    public static JsonResult error(String errorMessage) {
        return new JsonResult(-1, errorMessage, null);
    }
    public Integer getCode() {
        return code;
    }
    public void setCode(Integer code) {
        this.code = code;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public Object getData() {
        return data;
    }
    public void setData(Object data) {
        this.data = data;
    }
}
package com.example.demo.pojo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import java.util.Date;
/**
 * jackson注解使用示例
 */
@Data
public class User {
    private String name;
    private Integer age;
    // 忽略显示
    @JsonIgnore
    private String password;
    // 格式化
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", locale="zh", timezone="GMT+8")
    private Date birthday;
    // 为空不显示
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String desc;
}

三、热部署

<!--热部署-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

IDEA需要做额外的配置

四、资源属性配置

resource.properties

# 配置文件
com.demo.name=MyBlog
com.demo.language=zh
package com.example.demo.pojo;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
/**
 * 资源文件中的配置映射到实体类
 */
@Configuration
@ConfigurationProperties(prefix = "com.demo")
@PropertySource(value = "classpath:resource.properties")
public class Resource {
    private String name;
    private String language;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getLanguage() {
        return language;
    }
    public void setLanguage(String language) {
        this.language = language;
    }
}

五、模板引擎

<!--模板引擎 freemarker-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!--模板引擎 thymeleaf-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
############################################################
#
# freemarker
#
############################################################
# 上线改为true
spring.freemarker.cache=false
#spring.freemarker.template-loader-path=classpath:/templates
#spring.freemarker.charset=UTF-8
#spring.freemarker.check-template-location=true
#spring.freemarker.content-type=text/html
#spring.freemarker.expose-request-attributes=true
#spring.freemarker.expose-session-attributes=true
#spring.freemarker.request-context-attribute=request
#spring.freemarker.suffix=.ftl
############################################################
#
# thymeleaf
#
#############################################################
# 上线改为true
spring.thymeleaf.cache=false
#spring.thymeleaf.prefix=classpath:/templates/
#spring.thymeleaf.suffix=.html
#spring.thymeleaf.mode=HTML5
#spring.thymeleaf.encoding=UTF-8
#spring.thymeleaf.servlet.content-type=text/html
# 静态文件
spring.mvc.static-path-pattern=/static/**

freemarker

<h2>freemarker</h2>
<p>${resource.name}</p>
<p>${resource.language}</p>


thymeleaf

基本使用方式

对象引用方式

时间类型转换

text与utext

URL

引入静态资源文件js/css

条件判断th:if与th:unless

循环th:each

分支th:switch与th:case

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script th:src="@{/static/js/index.js}"></script>
</head>
<body>
<h2>基本语法</h2>
<p><input type="text" th:value="${user.name}"  th:id="${user.name}" th:name="${user.name}"></p>
<p><input type="text" th:value="${user.age}"></p>
<p><input type="text" th:value="${user.birthday}"></p>
<h2>日期格式化</h2>
<p><input type="text" th:value="${#dates.format(user.birthday, 'yyyy-MM-dd')}"></p>
<h2>简便写法</h2>
<div th:object="${user}">
    <p><input type="text" th:value="*{name}"  th:id="*{name}" th:name="*{name}"></p>
    <p><input type="text" th:value="*{age}"></p>
    <p><input type="text" th:value="*{birthday}"></p>
</div>
<h2>text与utext</h2>
<p>text: <span th:text="${user.desc}"></span></p>
<p>utext: <span th:utext="${user.desc}"></span></p>
<h2>网址</h2>
<a th:href="@{https://www.baidu.com/}">www.baidu.com</a>
<h2>表单</h2>
<form th:action="@{/thymeleaf/user}" method="post" th:object="${user}">
    <!-- field == id, name, value -->
    <input type="text" th:field="*{name}">
    <input type="submit">
</form>
<h2>判断</h2>
<p th:if="${user.age} == 20"> age == 20</p>
<p th:if="${user.age} gt 20"> age > 20</p>
<p th:if="${user.age} lt 20"> age < 20</p>
<p th:if="${user.age} ge 20"> age >= 20</p>
<p th:if="${user.age} le 20"> age <= 20</p>
<h2>选择框</h2>
<select name="" id="">
    <option th:selected="${user.age} == 20">20</option>
    <option th:selected="${user.age} == 18">18</option>
</select>
<h2>循环</h2>
<p th:each="person:${userList}">
    <span th:text="${person.name}"></span>
</p>
<h2>分支</h2>
<p th:switch="${user.name}">
    <span th:case="#{roles.superadmin}">超级管理员</span>
    <span th:case="#{roles.manager}">管理员</span>
    <span th:case="*">普通会员</span>
</p>
</body>
</html>
目录
打赏
0
0
0
0
58
分享
相关文章
飞算 JavaAI:革新电商订单系统 Spring Boot 微服务开发
在电商订单系统开发中,传统方式耗时约30天,需应对复杂代码、调试与测试。飞算JavaAI作为一款AI代码生成工具,专注于简化Spring Boot微服务开发。它能根据业务需求自动生成RESTful API、数据库交互及事务管理代码,将开发时间缩短至1小时,效率提升80%。通过减少样板代码编写,提供规范且准确的代码,飞算JavaAI显著降低了开发成本,为软件开发带来革新动力。
智慧班牌源码,采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署
智慧班牌系统是一款基于信息化与物联网技术的校园管理工具,集成电子屏显示、人脸识别及数据交互功能,实现班级信息展示、智能考勤与家校互通。系统采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署与私有化定制。核心功能涵盖信息发布、考勤管理、教务处理及数据分析,助力校园文化建设与教学优化。其综合性和可扩展性有效打破数据孤岛,提升交互体验并降低管理成本,适用于日常教学、考试管理和应急场景,为智慧校园建设提供全面解决方案。
160 70
Java程序员在AI时代必会的技术:Spring AI
在AI时代,Java程序员需掌握Spring AI技术以提升竞争力。Spring AI是Spring框架在AI领域的延伸,支持自然语言处理、机器学习集成与自动化决策等场景。它简化开发流程,无缝集成Spring生态,并提供对多种AI服务(如OpenAI、阿里云通义千问)的支持。本文介绍Spring AI核心概念、应用场景及开发步骤,含代码示例,助你快速入门并构建智能化应用,把握AI时代的机遇。
|
1月前
|
基于SpringBoot的Redis开发实战教程
Redis在Spring Boot中的应用非常广泛,其高性能和灵活性使其成为构建高效分布式系统的理想选择。通过深入理解本文的内容,您可以更好地利用Redis的特性,为应用程序提供高效的缓存和消息处理能力。
161 79
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
20分钟上手DeepSeek开发:SpringBoot + Vue2快速构建AI对话系统
本文介绍如何使用Spring Boot3与Vue2快速构建基于DeepSeek的AI对话系统。系统具备实时流式交互、Markdown内容渲染、前端安全防护等功能,采用响应式架构提升性能。后端以Spring Boot为核心,结合WebFlux和Lombok开发;前端使用Vue2配合WebSocket实现双向通信,并通过DOMPurify保障安全性。项目支持中文语义优化,API延迟低,成本可控,适合个人及企业应用。跟随教程,轻松开启AI应用开发之旅!
智慧产科一体化管理平台源码,基于Java,Vue,ElementUI技术开发,二开快捷
智慧产科一体化管理平台覆盖从备孕到产后42天的全流程管理,构建科室协同、医患沟通及智能设备互联平台。通过移动端扫码建卡、自助报道、智能采集数据等手段优化就诊流程,提升孕妇就诊体验,并实现高危孕产妇五色管理和孕妇学校三位一体化管理,全面提升妇幼健康宣教质量。
70 12
SaaS云计算技术的智慧工地源码,基于Java+Spring Cloud框架开发
智慧工地源码基于微服务+Java+Spring Cloud +UniApp +MySql架构,利用传感器、监控摄像头、AI、大数据等技术,实现施工现场的实时监测、数据分析与智能决策。平台涵盖人员、车辆、视频监控、施工质量、设备、环境和能耗管理七大维度,提供可视化管理、智能化报警、移动智能办公及分布计算存储等功能,全面提升工地的安全性、效率和质量。
CRaC技术助力ACS上的Java应用启动加速
容器计算服务借助ACS的柔性算力特性并搭配CRaC技术极致地提升Java类应用的启动速度。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等