12 2021 档案

摘要:有时一些特殊的任务需要在系统启动时执行,例如配置文件加载、数据库初始化等操作。Spring Boot 提供了两种解决方案:CommandLineRunner 和 ApplicationRunner。二者使用方式大体一致,差别主要体现在参数上。一、使用 CommandLineRunner 1,基本介绍 阅读全文
posted @ 2021-12-31 15:22 山河永慕~ 阅读(915) 评论(0) 推荐(0) 编辑
摘要:Spring MVC 中提供了 AOP 风格的拦截器,拥有更加精细的拦截处理能力。Spring Boot 中拦截器的注册与使用更加方便,下面通过样例进行演示。 1,创建拦截器 首先我们实现 HandlerInterceptor 接口自定义一个拦截器 MyInterceptor1,内容如下: (1)拦 阅读全文
posted @ 2021-12-31 15:01 山河永慕~ 阅读(1541) 评论(0) 推荐(0) 编辑
摘要:一、基本用法 1,基本介绍 Spring Boot 推荐使用 java 配置完全代替 XML 配置,java 配置是通过 @Configration 和 @Bean 注解实现的。二者作用如下: @Configration 注解:声明当前类是一个配置类,相当于 Spring 中的一个 XML 文件 @ 阅读全文
posted @ 2021-12-31 14:43 山河永慕~ 阅读(4129) 评论(0) 推荐(0) 编辑
摘要:前文提到的两种自定义 Error 数据、Error 视图的方式都是对 BasicErrorController 类中的某个环节进行修补。如果需要更加灵活地对 Error 视图和数据进行处理,可以通过继承 BasicErrorController 来实现自己的 ErrorController。 三、高 阅读全文
posted @ 2021-12-31 14:07 山河永慕~ 阅读(659) 评论(0) 推荐(0) 编辑
摘要:二、简单地自定义 Error 数据、Error 视图 1,自定义 Error 数据 我们知道 Spring Boot 返回的错误信息一共 5 条,分别是:timestamp、status、error、message、path。如果需要增加自定义的错误信息,只需要自定义一个 ErrorAttribut 阅读全文
posted @ 2021-12-31 14:04 山河永慕~ 阅读(637) 评论(0) 推荐(0) 编辑
摘要:在之前的文章中我介绍了如何使用 @ControllerAdvice 来进行全局异常处理,但是这种异常处理方式一般用来处理应用级别的异常,一些容器级别的错误就处理不了,比如 Filter 中抛出的异常。因此,Spring Boot 中对于异常的处理还有另外的方式。 比如默认情况下,当我们通过 Post 阅读全文
posted @ 2021-12-20 15:01 山河永慕~ 阅读(1877) 评论(0) 推荐(0) 编辑
摘要:七、Lombok注解详解(4) 12,@log (1)该注解用在类上,可以省去从日志工厂生成日志对象这一步,直接进行日志记录,具体注解根据日志工具的不同而不同。不同的日志注解总结如下(上面是注解,下面是实际作用): 我们也可以在注解中使用 topic 来指定生成 log 对象时的类名。 @Commo 阅读全文
posted @ 2021-12-17 11:04 山河永慕~ 阅读(580) 评论(0) 推荐(0) 编辑
摘要:六、Lombok 注解详解(3) 8,@Data (1)@Data 是一个复合注解,用在类上,使用后会生成:默认的无参构造函数、所有属性的 getter、所有非 final 属性的 setter 方法,并重写 toString、equals、hashcode 方法。 import lombok.Da 阅读全文
posted @ 2021-12-17 10:22 山河永慕~ 阅读(557) 评论(0) 推荐(0) 编辑
摘要:五、Lombok 注解详解(2) 5,@NoArgsConstructor 注解在类上,为类提供一个无参的构造方法。 注意: 当类中有 final 字段没有被初始化时,编译器会报错,此时可用 @NoArgsConstructor(force = true),然后就会为没有初始化的 final 字段设 阅读全文
posted @ 2021-12-17 10:16 山河永慕~ 阅读(851) 评论(0) 推荐(0) 编辑
摘要:四、Lombok 注解详解(1) 1,@Setter 和 @Getter (1)这两个注解用于生成 setter 和 getter 方法,可以用在类或者属性上: 如果用在属性上:则只为该属性提供 setter 和 getter 方法 如果是用在类上:则为这个类所有属性供 setter 和 gette 阅读全文
posted @ 2021-12-17 10:12 山河永慕~ 阅读(683) 评论(0) 推荐(0) 编辑
摘要:我们创建 POJO 类时,经常需要先写属性,然后手写或者自动生成 get 和 set 方法,然后还要重写 toString 方法....一系列操作下来,这个 POJO 类便会产生太多的样板式代码。 这种传统的方式不仅使得代码十分臃肿,有时也不方便维护,比如:当变量名或者是修饰符改变了,我们就要删除  阅读全文
posted @ 2021-12-17 10:02 山河永慕~ 阅读(284) 评论(0) 推荐(0) 编辑
摘要:在前文中我介绍了 Controller 如何接收通过 GET 方式传递过来的参数,下面接着演示如何接收通过 POST 方式传递过来的参数。 一、接收 Form 表单数据 1,基本的接收方法 (1)下面样例 Controller 接收 form-data 格式的 POST 数据: import org 阅读全文
posted @ 2021-12-16 16:33 山河永慕~ 阅读(9026) 评论(0) 推荐(0) 编辑
摘要:利用 Spring Boot 来制作 Web 应用,就必定会涉及到前端与后台之间互相传递参数。下面演示 Controller 如何接收以 GET 方式传递过来的参数。 一、参数直接在路径中 (1)假设请求地址是如下这种 RESTful 风格,hangge 这个参数值直接放在路径里面: http:// 阅读全文
posted @ 2021-12-16 11:37 山河永慕~ 阅读(7210) 评论(0) 推荐(0) 编辑
摘要:我们知道无论是 Get 请求还是 Post 请求,Controller 这边都可以定义一个实体类来接收这些参数。而 @ControllerAdvice 结合 @InitBinder 还能实现请求参数预处理,即将表单中的数据绑定到实体类上时进行一些额外处理。 三、请求参数预处理(搭配 @InitBin 阅读全文
posted @ 2021-12-14 17:39 山河永慕~ 阅读(585) 评论(0) 推荐(0) 编辑
摘要:二、添加全局数据(搭配 @ModelAttribute) 1,设置全局数据 (1)@ControllerAdvice 是一个全局数据处理组件,因此也可以在 @ControllerAdvice 中配置全局数据,使用 @ModelAttribute 注释进行配置。(1)这里我们在全局配置中添加了两个方法 阅读全文
posted @ 2021-12-14 17:02 山河永慕~ 阅读(414) 评论(0) 推荐(0) 编辑
摘要:顾名思义,@ControllerAdvice 就是 @Controller 的增强版。@ControllerAdvice 主要用来处理全局数据,一般搭配 @ExceptionHandler、@ModelAttribute、@InitBinder 使用。下面分别进行介绍。 一、全局异常处理(搭配 @E 阅读全文
posted @ 2021-12-14 16:36 山河永慕~ 阅读(601) 评论(0) 推荐(0) 编辑
摘要:在前文中我介绍了 Spring Boot 项目如何实现单文件上传,而多文件上传逻辑和单文件上传基本一致,下面通过样例进行演示。 二、多文件上传 1,代码编写 (1)首先在 static 目录中创建一个 uploads.html 文件,内容如下: <!DOCTYPE html> <html lang= 阅读全文
posted @ 2021-12-14 15:12 山河永慕~ 阅读(4405) 评论(0) 推荐(0) 编辑
摘要:Spring Boot 对文件上传做了简化,基本做到了零配置,我们只需要在项目中添加 spring-boot-starter-web 依赖即可。 一、单文件上传 1,代码编写 (1)首先在 static 目录中创建一个 upload.html 文件,内容如下: <!DOCTYPE html> <ht 阅读全文
posted @ 2021-12-14 14:40 山河永慕~ 阅读(3037) 评论(0) 推荐(0) 编辑
摘要:在开发前后端分离的项目时,常常会碰到跨域请求的问题。即由于浏览器的安全性限制,不允许 AJAX 访问协议不同、域名不同、端口号不同的数据接口,否则会出报 No 'Access-Control-Allow-Origin' header is present on the requested resou 阅读全文
posted @ 2021-12-14 14:06 山河永慕~ 阅读(2757) 评论(0) 推荐(0) 编辑
摘要:一、默认静态资源访问策略 (1)当我们使用 IntelliJ IDEA 创建 Spring Boot 项目,会默认创建 classpath:/static/ 目录,我们直接把静态资源放在这个目录下即可。 (2)我们直接在浏览器中输入“http://localhost:8080/1.png”即可看到我 阅读全文
posted @ 2021-12-14 13:53 山河永慕~ 阅读(750) 评论(0) 推荐(0) 编辑
摘要:JSON 是目前主流的前后端数据传输方式。在 Spring Boot 项目中,只要添加了 Web 依赖(spring-boot-starter-web),就可以很方便地实现 JSON 转换。下面我们通过样例进行演示。 Web 依赖默认加入了 jackson-databind 作为 JSON 处理器, 阅读全文
posted @ 2021-12-13 17:53 山河永慕~ 阅读(2707) 评论(0) 推荐(1) 编辑
摘要:假设一个使用了 Thymeleaf 模板引擎的 Spring Boot 项目,可能有一些模版页面不需要通过控制器加载数据,只需要直接跳转展示。 过去使用 SpringMVC 时,如果访问一个页面,必须要写相应的 Controller 类。而 SpringBoot 要实现这个需求只需要直接在 MVC  阅读全文
posted @ 2021-12-13 17:37 山河永慕~ 阅读(953) 评论(0) 推荐(0) 编辑
摘要:一、基本介绍 1,什么是 Thymeleaf Thymeleaf 是新一代的 Java 模版引擎,类似于 Velocity、FreeMarker 等传统 Java 模版引擎。 Thymeleaf 的主要目标是将优雅的自然模板带到开发工作流程中,并将 HTML 在浏览器中正确显示,并且可以作为静态原型 阅读全文
posted @ 2021-12-13 17:23 山河永慕~ 阅读(517) 评论(0) 推荐(0) 编辑
摘要:1,基本介绍 (1)YAML 是 JSON 的超集,简洁而强大,是一种专门用来书写配置文件的语言,可以替代 application.properties。 (2)在创建一个 SpringBoot 项目时,引入的 spring-boot-starter-web 依赖间接地引入了 snakeyaml 依 阅读全文
posted @ 2021-12-13 17:07 山河永慕~ 阅读(11144) 评论(0) 推荐(1) 编辑
摘要:1,开启自动转码功能 application.properties 提供了自定义属性的支持,如果数据有中文的话需要进行转码,否则可能会出现乱码问题。 如果我们使用的是 IntelliJ IDEA,那么直接在 setting 配置中进行如下设置,这样编辑器就会自动对中文内容进行转码。 2,配置属性的定 阅读全文
posted @ 2021-12-13 15:43 山河永慕~ 阅读(6409) 评论(0) 推荐(0) 编辑
摘要:我们知道 Spring Boot 项目启动时会在控制台打印出一个 banner,下面演示如何定制这个 banner。 1,修改 banner 文字 (1)首先在 resources 目录下创建一个 banner.txt 文件。 (2)在这个文件中写入的文本将在项目启动时打印出来。比如我写入如下内容: 阅读全文
posted @ 2021-12-13 11:39 山河永慕~ 阅读(1066) 评论(0) 推荐(0) 编辑
摘要:Spring Boot 和 Spring Cloud 已成为当前最流行的微服务框架。本文通过样例演示如何搭建并运行一个简单的 Spring Boot 项目。在开发之前,首先确认我们的电脑上已经有以下环境: JDK8 Maven3.0+ Intellij IDEA 一、创建项目 创建项目一共有两种方式 阅读全文
posted @ 2021-12-13 11:05 山河永慕~ 阅读(2502) 评论(0) 推荐(0) 编辑
摘要:四、保留策略 1,基本介绍 (1)保留策略 Retention Policy(RP)是 InfluxDB 数据架构的一部分,它描述了 InfluxDB 保存数据的时间。InfluxDB 会比较服务器本地的时间戳和请求数据里的时间戳,并删除比你在 RPs 里面用 DURATION 设置的更老的数据。 阅读全文
posted @ 2021-12-09 14:53 山河永慕~ 阅读(501) 评论(0) 推荐(1) 编辑
摘要:三、InfluxQL 查询语言详解 1,基本查询 (1)从单个 measurement 查询所有的 field 和 tag: 注意:machine 和 type 是 tag,external 和 internal 是 fieldSELECT * FROM "temperature" (2)从单个 m 阅读全文
posted @ 2021-12-09 14:18 山河永慕~ 阅读(999) 评论(0) 推荐(1) 编辑
摘要:借助 Apache Phoenix,我们可以使用标准 SQL 和 JDBC 接口来操作 HBase。前文演示了 Spring Boot 项目使用 JdbcTemplate 来操作 HBase 数据库,本文接着演示使用 MyBatis 来操作 HBase 数据库。 三、使用 MyBatis 操作 HB 阅读全文
posted @ 2021-12-08 15:16 山河永慕~ 阅读(1408) 评论(0) 推荐(0) 编辑
摘要:三、SCHEMA 的启用、操作、关闭 1,启用 SCHEMA 注意: Phoenix 中将 HBase 的 namespace 叫做 SCHEMA,相当于 mysql 中的库的概念。 (1)默认 Phoenix 的自定义 SCHEMA 并没有开启,需要在 HBase 的 hbase-site.xml 阅读全文
posted @ 2021-12-08 15:06 山河永慕~ 阅读(676) 评论(0) 推荐(0) 编辑
摘要:二、Phoenix Shell 的使用 1,进入 Phoenix 命令行 (1)执行如下命令进入 phoenix 的终端(启动脚本 sqlline.py 参数是 Zookeeper 节点) sqlline.py localhost:2181 (2)首次进入 phoenix 终端会自动建立的 phoe 阅读全文
posted @ 2021-12-08 15:05 山河永慕~ 阅读(621) 评论(0) 推荐(0) 编辑
摘要:前文演示了借助 Apache Phoenix,我们使用标准 SQL 和 JDBC 接口来操作 HBase。而 JdbcTemplate 是 Spring 提供的一套 JDBC 模版框架,Spring Boot 项目自然也可以使用它来操作 HBase 数据库,下面通过样例进行演示。 二、使用 Jdbc 阅读全文
posted @ 2021-12-08 14:41 山河永慕~ 阅读(630) 评论(0) 推荐(0) 编辑
摘要:我在之前的文章中介绍了如何在 Java 项目中通过 hbase-client 来操作 HBase 数据库。而借助 Apache Phoenix,可以让我们能够使用标准 SQL 和 JDBC 接口来操作 HBase。下面通过样例进行演示。 一、使用标准的 JDBC 来操作 HBase 1,准备工作 ( 阅读全文
posted @ 2021-12-08 14:34 山河永慕~ 阅读(1888) 评论(3) 推荐(0) 编辑
摘要:序:基本介绍 1,什么是 Phoenix? Phoenix 是构建在 HBase 上的一个 SQL 层,能让我们用标准的 JDBC APIs 而不是 HBase 客户端 APIs 来创建表,插入数据和对 HBase 数据进行查询。 Phoenix 完全使用 Java 编写,作为 HBase 内嵌的  阅读全文
posted @ 2021-12-08 13:21 山河永慕~ 阅读(1397) 评论(0) 推荐(0) 编辑
摘要:二、过滤器 Filter 1,基本介绍 Filter 可以在 Scan 的结果集基础之上,对返回的记录设置更多条件值,这些条件可以与 RowKey 有关,可以与列名有关,也可以与列值有关,还可以将多个 Filter 条件组合在一起等等。基于 Hbase 本身提供的三维有序(主键有序、列有序、版本有序 阅读全文
posted @ 2021-12-08 11:37 山河永慕~ 阅读(644) 评论(0) 推荐(0) 编辑
摘要:HBase 是一个分布式的、面向列的开源的 NoSQL 数据库。Spring Boot 项目如果需要操作 HBase 通常有如下几种客户端可以使用: hbase-client:比较底层,需要自己进一步封装 api,而且版本号和安装的 hbase 也要匹配,否则会报错 spring-data-hado 阅读全文
posted @ 2021-12-07 17:43 山河永慕~ 阅读(5041) 评论(0) 推荐(1) 编辑
摘要:1,问题描述 (1)在远程服务器上搭建了个HBase 服务,并且在服务器上使用 hbase shell 命令行工具可以成功进行建表、插入数据、查询数据等操作。 (2)但是发现在项目中使用 HBase Client 能够成功与 Zookeeper 连接,却无法与 HBase Server 连接,错误信 阅读全文
posted @ 2021-12-07 17:33 山河永慕~ 阅读(3455) 评论(0) 推荐(0) 编辑
摘要:二、安装教程(单机版) 1,下载二进值包 (1)首次我们访问:https://archive.apache.org/dist/hbase,页面打开后点击 stable 链接(这里面为当前最稳定的版本) (2)接着找到 hbase-2.2.4-bin.tar.gz 链接地址,然后在服务器上通过 wge 阅读全文
posted @ 2021-12-07 17:19 山河永慕~ 阅读(1298) 评论(0) 推荐(0) 编辑
摘要:二、安装部署、基本用法 1,安装启动 (1)首先访问 InfluxDB 官网(点击访问),找到选择合适的版本: (2)假设我们服务器是 CentOS,执行如下命令下载 rpm 文件: wget https://dl.influxdata.com/influxdb/releases/influxdb- 阅读全文
posted @ 2021-12-04 11:42 山河永慕~ 阅读(2290) 评论(0) 推荐(1) 编辑
摘要:一、基本介绍 1,时序数据介绍 (1)时间序列数据(Time Series Data,TSD,以下简称时序)从定义上来说,就是一串按时间维度索引的数据。 (2)简单的说,就是这类数据描述了某个被测量的主体在一个时间范围内的每个时间点上的测量值。它普遍存在于 IT 基础设施、运维监控系统和物联网中。 阅读全文
posted @ 2021-12-04 10:03 山河永慕~ 阅读(992) 评论(0) 推荐(2) 编辑
摘要:ava.io.IOException: HADOOP_HOME or hadoop.home.dir are not set. at org.apache.hadoop.util.Shell.checkHadoopHome(Shell.java:302) at org.apache.hadoop.u 阅读全文
posted @ 2021-12-02 14:02 山河永慕~ 阅读(984) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示