boot

Thymeleaf 模板引擎简介

余生长醉 提交于 2019-12-17 02:28:10
目录 Thymeleaf 模板引擎 官方文档下载 Hello World 新建应用 后台控制器 前端页面 浏览器访问测试 Thymeleaf 模板引擎 1、Thymeleaf 是 Web 和独立环境的现代服务器端 Java 模板引擎,能够处理HTML,XML,JavaScript,CSS 甚至纯文本。 2、Thymeleaf 的主要目标是提供一种优雅和高度可维护的创建模板的方式。为了实现这一点,它建立在自然模板的概念上,将其逻辑注入到模板文件中,不会影响模板被用作设计原型。这改善了设计的沟通,弥补了设计和开发团队之间的差距。 3、Thymeleaf 也从一开始就设计了Web标准 - 特别是 HTML5 - 允许您创建完全验证的模板,Spring Boot 官方推荐使用 thymeleaf 而不是 JSP。 4、Thymeleaf 官网:https://www.thymeleaf.org/ 5、Thymeleaf 在 Github 的主页:https://github.com/thymeleaf/thymeleaf 6、Spring Boot 中使用 Thymeleaf 模板引擎时非常简单,因为 Spring Boot 已经提供了默认的配置,比如解析的文件前缀,文件后缀,文件编码,缓存等等,程序员需要的只是写 html 中的内容即可,可以参考《Spring Boot 引入

再见 Spring Boot 1.X ,Spring Boot 2.X 走向舞台中心

情到浓时终转凉″ 提交于 2019-12-17 02:07:38
2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维护到2019年8月1日。 1.5.x 将会是 Spring Boot 1.0 系列的最后一个大版本。 如今 Spring Boot 1.X 版本最后将永久的定格在 v1.5.22.RELEASE ,其实回想起来自从 Spring Boot 1.0 发布已经过去了 5 年多,相当于 Spring Boot 一年发布一个大的子版本,然后到了现在的 1.5.x。 而 Spring Boot 2.0.0 也于2018年3月1号正式发布,如今已经过了整整一年多,同时 Spring Boot 2.2 已经到了第五个里程碑。 Spring Boot 2.X 也是时候走向舞台中心接力 Spring Boot 1.x 的历史使命。 我们来回顾一下 Spring Boot 重大版本的历史节点: 2014年04月01号,Spring Boot 发布 v1.0.0.RELEASE,Spring Boot 正式商用 2014年06月11号,Spring Boot 发布 v1.1.0.RELEASE,主要修复了若干 Bug 2014年12月11号,Spring

你一直用的 Spring Boot Starter 是怎么回事

早过忘川 提交于 2019-12-17 02:01:05
种一棵树最好的时间是十年前,其次是现在。 Spring Boot 对比 Spring MVC 最大的优点就是使用简单,约定大于配置。不会像之前用 Spring MVC 的时候,时不时被 xml 配置文件搞的晕头转向,冷不防还因为 xml 配置上的一点疏忽,导致整个项目莫名其妙的不可用,顿感生活无所依恋,简称生无可恋。 这要归功于组成了 Spring Boot 的各种各样的 starters,有官方提供的,也有第三方开源出来。可以这么说,基本上你打算用的功能都可以找到,如果没有找到,那就再找一找。 用 Spring Boot 的功能组件(例如 spring-boot-starter-actuator、 spring-boot-starter-data-redis 等)的步骤非常简单,用著名的把大象放冰箱的方法来概括的话,有以下三步就可以完成组件功能的使用: 第一步 在 pom 文件中引入对应的包,例如: < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-actuator </ artifactId > </ dependency > 第二步 在应用配置文件中加入相应的配置,配置都是组件约定好的,需要查看官方文档或者相关说明

SpringBoot各类扩展点详解

天大地大妈咪最大 提交于 2019-12-17 00:00:51
一、前言   上篇文章我们深入分析了SpringBoot的一站式启动流程。然后我们知道SpringBoot的主要功能都是依靠它内部很多的扩展点来完成的,那毋容置疑,这些扩展点是我们应该深入了解的,那么本次且听我一一道来SpringBoot的各类扩展点。 二、SpringBoot各类扩展点详解   下面我们就一一为大家来解析这些必须的扩展点: 1.SpringApplicationRunListener ​   从命名我们就可以知道它是一个监听者,那纵观整个启动流程我们会发现,它其实是用来在整个启动流程中接收不同执行点事件通知的监听者。源码如下: public interface SpringApplicationRunListener { void starting(); void environmentPrepared(ConfigurableEnvironment environment); void contextPrepared(ConfigurableApplicationContext context); void contextLoaded(ConfigurableApplicationContext context); void finished(ConfigurableApplicationContext context, Throwable exception)

Spring Boot 一个依赖搞定 session 共享,没有比这更简单的方案了!

爱⌒轻易说出口 提交于 2019-12-16 22:27:24
有的人可能会觉得题目有点夸张,其实不夸张,题目没有使用任何修辞手法!认真读完本文,你就知道松哥说的是对的了! 在传统的单服务架构中,一般来说,只有一个服务器,那么不存在 Session 共享问题,但是在分布式/集群项目中,Session 共享则是一个必须面对的问题,先看一个简单的架构图: 在这样的架构中,会出现一些单服务中不存在的问题,例如客户端发起一个请求,这个请求到达 Nginx 上之后,被 Nginx 转发到 Tomcat A 上,然后在 Tomcat A 上往 session 中保存了一份数据,下次又来一个请求,这个请求被转发到 Tomcat B 上,此时再去 Session 中获取数据,发现没有之前的数据。对于这一类问题的解决,思路很简单,就是将各个服务之间需要共享的数据,保存到一个公共的地方(主流方案就是 Redis): 当所有 Tomcat 需要往 Session 中写数据时,都往 Redis 中写,当所有 Tomcat 需要读数据时,都从 Redis 中读。这样,不同的服务就可以使用相同的 Session 数据了。 这样的方案,可以由开发者手动实现,即手动往 Redis 中存储数据,手动从 Redis 中读取数据,相当于使用一些 Redis 客户端工具来实现这样的功能,毫无疑问,手动实现工作量还是蛮大的。 一个简化的方案就是使用 Spring Session

Spring boot中使用log4j

杀马特。学长 韩版系。学妹 提交于 2019-12-16 15:06:20
  我们知道,Spring Boot中默认日志工具为logback,但是对于习惯了log4j的开发者,Spring Boot依然可以很好的支持,只是需要做一些小小的配置功能。Spring Boot使用log4j只需要一下几步 引入log4j依赖   在创建Spring Boot工程时,我们引入了 spring-boot-starter ,其中包含了 spring-boot-starter-logging ,该依赖内容就是Spring Boot默认的日志框架Logback,所以我们在引入log4j之前,需要先排除该包的依赖,再引入log4j的依赖,就像下面这样 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot<

了解Spring Boot的自动配置

我只是一个虾纸丫 提交于 2019-12-16 14:03:07
摘自: https://www.jianshu.com/p/ddb6e32e3faf Spring Boot的自动配置给开发者带来了很大的便利,当开发人员在pom文件中添加starter依赖后,maven或者gradle会自动下载很多jar包到classpath中。当Spring Boot检测到特定类的存在,就会针对这个应用做一定的配置,自动创建和织入需要的spring bean到程序上下文中。 在之前的文章中,我们只是在pom文件中增加各种starter的依赖,例如: spring-boot-starter-data-jpa, spring-boot-starter-web, spring-boot-starter-data-test 等等。接下来将在之前的工程的基础上,观察在程序的引导启动过程中,Spring Boot通过自动配置机制帮我们做了哪些工作。 How Do Spring Boot启动时将自动配置的信息通过DEBUG级别的日志打印到控制台。可以通过设置环境变量(DEBUG)或者程序属性(--debug)设置程序的日志输出级别。 在项目目录下运行 DEBUG=true mvn spring-boot:run 启动应用程序; 在后台可以看到DEBUG级别的日志输出,在启动日志的最后,可以看到类似 AUTO-CONFIGURATION REPORT 的字样。

Spring Boot 的静态资源处理

倾然丶 夕夏残阳落幕 提交于 2019-12-16 12:44:33
做web开发的时候,我们往往会有很多静态资源,如html、图片、css等。那如何向前端返回静态资源呢?以前做过web开发的同学应该知道,我们以前创建的web工程下面会有一个webapp的目录,我们只要把静态资源放在该目录下就可以直接访问。但是,基于Spring boot的工程并没有这个目录,那我们应该怎么处理? 一、最笨的方式 我们首先来分享一种最笨的办法,就是将静态资源通过流直接返回给前端,我们在maven工程的resources的根目录下建立一个html的目录,然后我们把html文件放在该目录下,并且规定任何访问路径以/static/开头的即访问该目录下的静态资源,其实现如下: @Controller public class StaticResourceController { @RequestMapping("/static/**") public void getHtml(HttpServletRequest request, HttpServletResponse response) { String uri = request.getRequestURI(); String[] arr = uri.split("static/"); String resourceName = "index.html"; if (arr.length > 1) {

Spring Boot 外部化配置(一)- Environment、ConfigFileApplicationListener

坚强是说给别人听的谎言 提交于 2019-12-16 10:26:39
[toc] 前言 最近在学习Spring Boot相关的课程,过程中以笔记的形式记录下来,方便以后回忆,同时也在这里和大家探讨探讨,文章中有漏的或者有补充的、错误的都希望大家能够及时提出来,本人在此先谢谢了! 开始之前呢,希望大家带着几个问题去学习: 1、Spring Boot 外部化配置是什么? 2、整体流程或结构是怎样的? 3、核心部分是什么? 4、怎么实现的? 这是对自我的提问,我认为带着问题去学习,是一种更好的学习方式,有利于加深理解。好了,接下来进入主题。 1、起源 这篇文章我们就来讨论 Spring Boot 的外部化配置功能,该功能主要是通过外部的配置资源实现与代码的相互配合,来避免硬编码,提供应用数据或行为变化的灵活性。相信小伙伴们在日常工作中都有使用过,如在 properties 或者 YAML 文件中定义好key value格式的数据后,就可在程序中通过 @Value 注解获取该value值。还可以定义一些同外部组件约定好的key,如以 spring 或 redis 等组件名为前缀的key,之后相应的组件就可读取到该value值进行工作。当然,这只是外部化配置的一小部分内容,接下来进行详细讨论。 2、外部化配置的资源类型 先来看看外部化配置的几种资源类型,除了 properties 和 YAML 外,还有环境变量、系统属性、启动参数等。所有的资源类型将近二十种

Spring Boot是什么

与世无争的帅哥 提交于 2019-12-16 07:05:44
Spring boot 是什么 一、什么是Spring Boot 在使用传统的Spring去做Java EE(Java Enterprise Edition)开发中,大量的 XML 文件存在于项目之中,导致JavaEE项目变得慢慢笨重起来,,繁琐的配置和整合第三方框架的配置,导致了开发和部署效率的降低。 Spring Boot 并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。同时它集成了大量常用的第三方库配置,Spring Boot应用中这些第三方库几乎可以是零配置的开箱即用(out-of-the-box),大部分的 Spring Boot 应用都只需要非常少量的配置代码(基于 Java 的配置),开发者能够更加专注于业务逻辑。 二、Spring Boot的好处 1.良好的基因 因为SpringBoot是伴随着Spring 4.0而生的,boot是引导的意思,也就是它的作用其实就是在于帮助开发者快速的搭建Spring框架,因此SpringBoot继承了Spring优秀的基因,在Spring中开发更为方便快捷。 2.简化编码 .比如我们要创建一个 web 项目,使用 Spring 的朋友都知道,在使用 Spring 的时候,需要在 pom 文件中添加多个依赖,而 Spring Boot 则会帮助开发着快速启动一个