From ba0efcc0afae337e72e8d175a27de432487685c6 Mon Sep 17 00:00:00 2001 From: JasonGong <2602183349@qq.com> Date: Fri, 8 Dec 2023 22:03:44 +0800 Subject: [PATCH] Site updated: 2023-12-08 22:03:35 --- 404.html | 6 +- archives/2023/03/index.html | 6 +- archives/2023/03/page/2/index.html | 6 +- archives/2023/04/index.html | 6 +- archives/2023/04/page/2/index.html | 6 +- archives/2023/05/index.html | 6 +- archives/2023/05/page/2/index.html | 6 +- archives/2023/06/index.html | 6 +- archives/2023/07/index.html | 6 +- archives/2023/08/index.html | 6 +- archives/2023/09/index.html | 6 +- archives/2023/10/index.html | 6 +- archives/2023/11/index.html | 6 +- archives/2023/12/index.html | 6 +- archives/2023/index.html | 6 +- archives/2023/page/2/index.html | 6 +- archives/2023/page/3/index.html | 6 +- archives/2023/page/4/index.html | 6 +- archives/2023/page/5/index.html | 6 +- archives/2023/page/6/index.html | 6 +- archives/2023/page/7/index.html | 6 +- archives/2023/page/8/index.html | 6 +- archives/index.html | 6 +- archives/page/2/index.html | 6 +- archives/page/3/index.html | 6 +- archives/page/4/index.html | 6 +- archives/page/5/index.html | 6 +- archives/page/6/index.html | 6 +- archives/page/7/index.html | 6 +- archives/page/8/index.html | 6 +- baidusitemap.xml | 34 ++-- categories/index.html | 8 +- categories/个人/index.html | 6 +- categories/其它/index.html | 6 +- categories/前端/index.html | 6 +- categories/后端/index.html | 6 +- categories/后端/page/2/index.html | 6 +- categories/后端/page/3/index.html | 6 +- categories/后端/page/4/index.html | 6 +- categories/后端/page/5/index.html | 6 +- categories/后端/page/6/index.html | 6 +- categories/大数据/index.html | 6 +- categories/测试/index.html | 6 +- categories/运维/index.html | 6 +- categories/面试/index.html | 6 +- index.html | 56 ++++-- notice/index.html | 4 +- page/2/index.html | 35 ++-- page/3/index.html | 46 +++-- page/4/index.html | 55 +++--- page/5/index.html | 46 +++-- page/6/index.html | 34 ++-- page/7/index.html | 24 +-- page/8/index.html | 13 +- pictures/image-20231208205943762.png | Bin 0 -> 80807 bytes pictures/image-20231208211200859.png | Bin 0 -> 359537 bytes pictures/image-20231208212352206.png | Bin 0 -> 6591 bytes posts/11844.html | 10 +- posts/12367.html | 10 +- posts/12929.html | 10 +- posts/13579.html | 10 +- posts/13813.html | 10 +- posts/1416.html | 10 +- posts/14438.html | 10 +- posts/17259.html | 10 +- posts/1727.html | 10 +- posts/18459.html | 10 +- posts/19306.html | 6 +- posts/20683.html | 6 +- posts/21883.html | 10 +- posts/22202.html | 10 +- posts/22654.html | 10 +- posts/24183.html | 16 +- posts/24606.html | 10 +- posts/24637.html | 10 +- posts/25154.html | 10 +- posts/26768.html | 10 +- posts/27166.html | 10 +- posts/28101.html | 6 +- posts/28118.html | 10 +- posts/28687.html | 10 +- posts/29250.html | 6 +- posts/29367.html | 10 +- posts/29985.html | 10 +- posts/30127.html | 10 +- posts/31385.html | 10 +- posts/32246.html | 10 +- posts/32679.html | 10 +- posts/3269.html | 4 +- posts/32696.html | 10 +- posts/35630.html | 6 +- posts/36397.html | 10 +- posts/3661.html | 10 +- posts/38823.html | 10 +- posts/39654.html | 6 +- posts/40445.html | 10 +- posts/432.html | 10 +- posts/45572.html | 10 +- posts/45726.html | 6 +- posts/46054.html | 10 +- posts/46306.html | 10 +- posts/46317.html | 6 +- posts/47003.html | 10 +- posts/47407.html | 10 +- posts/48020.html | 10 +- posts/50465.html | 10 +- posts/50908.html | 10 +- posts/51007.html | 10 +- posts/53088.html | 10 +- posts/53306.html | 10 +- posts/53769.html | 10 +- posts/54835.html | 6 +- posts/56742.html | 10 +- posts/5727.html | 10 +- posts/58456.html | 246 +++++++++++++++++++++++++++ posts/60684.html | 10 +- posts/60685.html | 10 +- posts/60780.html | 10 +- posts/62429.html | 6 +- posts/62439.html | 10 +- posts/6319.html | 10 +- posts/63333.html | 6 +- posts/63587.html | 10 +- posts/63724.html | 10 +- posts/64205.html | 10 +- posts/64695.html | 30 +++- posts/6932.html | 10 +- posts/73.html | 10 +- posts/855.html | 6 +- posts/8957.html | 6 +- search.xml | 84 ++++++++- sitemap.txt | 20 ++- sitemap.xml | 222 +++++++++++++----------- tags/Blog/index.html | 6 +- tags/DFA/index.html | 6 +- tags/Docker/index.html | 6 +- tags/ElasticSearch/index.html | 6 +- tags/FinalShell/index.html | 6 +- tags/FreeMarker/index.html | 6 +- tags/Git/index.html | 6 +- tags/Hive/index.html | 6 +- tags/Java/index.html | 6 +- tags/Linux/index.html | 6 +- tags/MinIo/index.html | 6 +- tags/Mysql/index.html | 6 +- tags/OCR/index.html | 194 +++++++++++++++++++++ tags/SSM/index.html | 6 +- tags/SpringBoot/index.html | 6 +- tags/SpringCloud/index.html | 6 +- tags/Thymeleaf/index.html | 6 +- tags/VMWare/index.html | 6 +- tags/index.html | 8 +- tags/二维码/index.html | 6 +- tags/云计算/index.html | 6 +- tags/任务进度/index.html | 6 +- tags/前端/index.html | 6 +- tags/域名注册/index.html | 6 +- tags/大数据/index.html | 6 +- tags/学习路线/index.html | 6 +- tags/工具/index.html | 6 +- tags/常用命令/index.html | 6 +- tags/快捷键/index.html | 6 +- tags/技术书籍/index.html | 6 +- tags/插件/index.html | 6 +- tags/数据结构与算法/index.html | 6 +- tags/正则表达式/index.html | 6 +- tags/注释模板/index.html | 6 +- tags/测试/index.html | 6 +- tags/爬虫/index.html | 6 +- tags/特殊符号/index.html | 6 +- tags/环境搭建/index.html | 6 +- tags/简历/index.html | 6 +- tags/细节知识/index.html | 6 +- tags/网络/index.html | 6 +- tags/脚本/index.html | 6 +- tags/面试/index.html | 6 +- tags/项目实战/index.html | 6 +- website/index.html | 8 +- 178 files changed, 1464 insertions(+), 871 deletions(-) create mode 100644 pictures/image-20231208205943762.png create mode 100644 pictures/image-20231208211200859.png create mode 100644 pictures/image-20231208212352206.png create mode 100644 posts/58456.html create mode 100644 tags/OCR/index.html diff --git a/404.html b/404.html index d852425bb..8cb898e9e 100644 --- a/404.html +++ b/404.html @@ -62,7 +62,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2023-12-03 16:28:43' + postUpdate: '2023-12-08 22:03:26' }

OCR-图片文字识别

一.什么是OCR

OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程

+ + + + + + + + + + + + + + + + + + + +
方案说明
百度OCR收费
Tesseract-OCRGoogle维护的开源OCR引擎,支持Java,Python等语言调用
Tess4J封装了Tesseract-OCR ,支持Java调用
+

二.Tesseract-OCR 的特点

    +
  • Tesseract支持UTF-8编码格式,并且可以“开箱即用”地识别100多种语言

    +
  • +
  • Tesseract支持多种输出格式:纯文本,hOCR(HTML),PDF等

    +
  • +
  • 官方建议,为了获得更好的OCR结果,最好提供给高质量的图像

    +
  • +
  • Tesseract进行识别其他语言的训练,具体的训练方式请参考官方提供的文档:https://tesseract-ocr.github.io/tessdoc/

    +
  • +
+

三.使用案例

1.导入相关的依赖

1
2
3
4
5
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>4.1.1</version>
</dependency>
+ +

2.导入中文字体库

地址: https://wwvc.lanzouj.com/iuPhc1h7j46f

+
+

chi_sim.traineddata

+
+

image-20231208212352206

+

3.编写测试类进行测试

待识别的图片

+

image-20231208205943762

+

测试程序

+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.heima;


import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;

import java.io.File;

/**
* @author Jason Gong
* @version 1.0
* @Date 2023/12/8
* @Description
*/
public class Main {

/**
* 识别图片中的文字
*
* @param args
*/
public static void main(String[] args) throws TesseractException {
//创建实例
Tesseract tesseract = new Tesseract();
//设置字体库的路径
tesseract.setDatapath("C:\\Gong\\data\\tess4j");
//设置语言
//字体库为chi_sim.traineddata,语言取.前面的内容,即文件名
//简体中文
tesseract.setLanguage("chi_sim");
//识别图片
String ocr = tesseract.doOCR(new File("C:\\Gong\\data\\tess4j\\tess4j.png"));
//打印识别的结果
//打印的时候可以去除回车和tab空格
//System.out.println(ocr.replaceAll("\\n|\\r","-"));
System.out.println(ocr);
}
}
+ +

识别的结果

+

image-20231208211200859

+

四.封装成工具类使用

1.创建工具类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.heima.common.tess4j;

import lombok.Getter;
import lombok.Setter;
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.awt.image.BufferedImage;

@Getter
@Setter
@Component
@ConfigurationProperties(prefix = "tess4j")
public class Tess4jClient {

private String dataPath;
private String language;

public String doOCR(BufferedImage image) throws TesseractException {
//创建Tesseract对象
ITesseract tesseract = new Tesseract();
//设置字体库路径
tesseract.setDatapath(dataPath);
//中文识别
tesseract.setLanguage(language);
//执行ocr识别
String result = tesseract.doOCR(image);
//替换回车和tal键 使结果为一行
result = result.replaceAll("\\r|\\n", "-").replaceAll(" ", "");
return result;
}

}
+ +

2.配置文件中添加配置

1
2
3
tess4j:
data-path: C:\workspace\tessdata # 字体库的路径
language: chi_sim # 识别的字体d
+ +
\ No newline at end of file diff --git a/posts/60684.html b/posts/60684.html index 7ce80f229..9625b949e 100644 --- a/posts/60684.html +++ b/posts/60684.html @@ -5,13 +5,13 @@ - + -

SpringBoot入门教程

尚硅谷雷丰阳的SpringBoot零基础入门教程

+ })(window)

SpringBoot入门教程

公告
本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站!
目录
  1. 一.SpringBoot2核心技术-基础入门
    1. 1.Spring能做什么
    2. 2.SpringBoot
      1. 2.1 SpringBoot的优点
      2. 2.2、SpringBoot缺点
      3. 2.3 官方文档
    3. 3.SpringBoot入门
      1. 1.系统的要求
      2. 2.HelloWorld
      3. 3.简化配置
      4. 4.简化部署
    4. 4.了解自动装配原理
      1. 4.1 依赖管理
        1. 1.SpringBoot的自动版本仲裁机制
        2. 2.Starters场景启动器
      2. 4.2 自动配置
      3. 4.3 容器功能
        1. 1.组件添加
          1. 1.1 @Configuration
          2. 1.2 @Bean @Component @Controller @Service @Repository
          3. 1.3 @ComponentScan @Import
          4. 1.4 @Conditional 条件装配:满足Conditional指定的条件,则进行组件注入
        2. 2.原生配置文件的引入
          1. 2.1、@ImportResource
        3. 3.配置绑定
          1. 3.1 @ConfigurationProperties
      4. 4.4 自动配置原理入门
        1. 1.引导加载自动配置类
        2. 2.按需开启自动配置项
        3. 3.修改默认配置
        4. 3.4.最佳实践
      5. 4.5 简化开发
        1. 1.Lombok
        2. 2.简化日志开发
      6. 3.dev-tools
      7. 4.Spring Initailizr(项目初始化向导)
  2. 二.SpringBoot2核心技术-核心功能
    1. 一.配置文件
      1. 1、文件类型
        1. 1.1、properties
        2. 1.2、yaml
          1. 1.2.1、简介
          2. 1.2.2、基本语法
          3. 1.2.3、数据类型
          4. 1.2.4、示例
      2. 2、配置提示
    2. 二.Web开发
      1. 1.简单的功能分析
        1. 1.1 静态资源访问
          1. 1.静态资源目录
          2. 2.静态资源访问前缀
          3. 3.webjar
        2. 1.2 欢迎页支持
        3. 1.3 自定义 Favicon
        4. 1.4 静态资源配置原理
      2. 2.请求参数处理与数据响应
        1. 2.1、请求映射
          1. 1、rest使用与原理
          2. 2、请求映射原理
        2. 2.2、普通参数与基本注解
          1. 1.注解
          2. 2.Servlet API
          3. 3.复杂参数:
          4. 4.自定义对象参数
        3. 2.3 参数处理原理
        4. 2.4 数据响应与内容协商
          1. 2.4.1 相关依赖的引入
          2. 2.4.2 内容协商原理
          3. 2.4.3 自定义MessageConverter
      3. 3.视图解析与模板引擎
        1. 3.1 视图解析
        2. 3.2 模板引擎-Thymeleaf
          1. 3.2.1 Thymeleaf的使用
        3. 3.3 后台管理系统注意点
      4. 4.拦截器
        1. 1.HandlerInterceptor接口
        2. 2.拦截器实现登录检查操作
        3. 3.拦截器原理
      5. 5.文件上传
        1. 1.页面表单
        2. 2.文件上传代码
        3. 3.MultipartAutoConfiguration
      6. 6.异常处理
        1. 1.默认规则
        2. 2.自定义错误页面
      7. 7.Web原生组件注入(Servlet、Filter、Listener)
        1. 7.1 使用Servlet Api
          1. 1.原生的Servlet的使用
          2. 2.原生的Filter的使用
          3. 3.原生的Listener的使用
        2. 7.2 使用RegistrationBean
      8. 8.嵌入式Servlet容器
        1. 8.1 切换嵌入式Servlet容器
        2. 8.2 定制Servlet容器
    3. 三.数据访问
      1. 1.SQL
        1. 1.1 JDBC的使用
        2. 1.2 分析自动配置
    4. 四.单元测试
      1. 1.JUnit5的变化
      2. 2.JUnit5常用注解
      3. 3.断言
        1. 3.1 简单断言
        2. 3.2 数组断言
        3. 3.3 组合断言
        4. 3.4 异常断言
        5. 3.5 超时断言
        6. 3.6 快速失败
      4. 4.前置条件
      5. 5.嵌套测试
      6. 6.参数化测试
      7. 7.迁移指南
    5. 五.指标监控
      1. 1.SpringBoot Actuator
        1. 1.1 如何使用
        2. 1.2 常用的EndPoints
        3. 1.3 Health Endpoint
        4. 1.4 Metrics Endpoint
        5. 1.5 管理Endpoint
        6. 1.6 定制Endpoint
          1. 1.6.1 定制health endpoint
          2. 1.6.2 定制 info endpoint
          3. 1.6.3 定制Metrics信息
        7. 1.7 新增Endpoint
        8. 1.8 可视化
    6. 六.原理解析
      1. 1.Profile功能
最近更新
avatar
Jason
Debug the World!
Ctrl + D 收藏
公告
本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站!
目录
  1. 一.SpringBoot2核心技术-基础入门
    1. 1.Spring能做什么
    2. 2.SpringBoot
      1. 2.1 SpringBoot的优点
      2. 2.2、SpringBoot缺点
      3. 2.3 官方文档
    3. 3.SpringBoot入门
      1. 1.系统的要求
      2. 2.HelloWorld
      3. 3.简化配置
      4. 4.简化部署
    4. 4.了解自动装配原理
      1. 4.1 依赖管理
        1. 1.SpringBoot的自动版本仲裁机制
        2. 2.Starters场景启动器
      2. 4.2 自动配置
      3. 4.3 容器功能
        1. 1.组件添加
          1. 1.1 @Configuration
          2. 1.2 @Bean @Component @Controller @Service @Repository
          3. 1.3 @ComponentScan @Import
          4. 1.4 @Conditional 条件装配:满足Conditional指定的条件,则进行组件注入
        2. 2.原生配置文件的引入
          1. 2.1、@ImportResource
        3. 3.配置绑定
          1. 3.1 @ConfigurationProperties
      4. 4.4 自动配置原理入门
        1. 1.引导加载自动配置类
        2. 2.按需开启自动配置项
        3. 3.修改默认配置
        4. 3.4.最佳实践
      5. 4.5 简化开发
        1. 1.Lombok
        2. 2.简化日志开发
      6. 3.dev-tools
      7. 4.Spring Initailizr(项目初始化向导)
  2. 二.SpringBoot2核心技术-核心功能
    1. 一.配置文件
      1. 1、文件类型
        1. 1.1、properties
        2. 1.2、yaml
          1. 1.2.1、简介
          2. 1.2.2、基本语法
          3. 1.2.3、数据类型
          4. 1.2.4、示例
      2. 2、配置提示
    2. 二.Web开发
      1. 1.简单的功能分析
        1. 1.1 静态资源访问
          1. 1.静态资源目录
          2. 2.静态资源访问前缀
          3. 3.webjar
        2. 1.2 欢迎页支持
        3. 1.3 自定义 Favicon
        4. 1.4 静态资源配置原理
      2. 2.请求参数处理与数据响应
        1. 2.1、请求映射
          1. 1、rest使用与原理
          2. 2、请求映射原理
        2. 2.2、普通参数与基本注解
          1. 1.注解
          2. 2.Servlet API
          3. 3.复杂参数:
          4. 4.自定义对象参数
        3. 2.3 参数处理原理
        4. 2.4 数据响应与内容协商
          1. 2.4.1 相关依赖的引入
          2. 2.4.2 内容协商原理
          3. 2.4.3 自定义MessageConverter
      3. 3.视图解析与模板引擎
        1. 3.1 视图解析
        2. 3.2 模板引擎-Thymeleaf
          1. 3.2.1 Thymeleaf的使用
        3. 3.3 后台管理系统注意点
      4. 4.拦截器
        1. 1.HandlerInterceptor接口
        2. 2.拦截器实现登录检查操作
        3. 3.拦截器原理
      5. 5.文件上传
        1. 1.页面表单
        2. 2.文件上传代码
        3. 3.MultipartAutoConfiguration
      6. 6.异常处理
        1. 1.默认规则
        2. 2.自定义错误页面
      7. 7.Web原生组件注入(Servlet、Filter、Listener)
        1. 7.1 使用Servlet Api
          1. 1.原生的Servlet的使用
          2. 2.原生的Filter的使用
          3. 3.原生的Listener的使用
        2. 7.2 使用RegistrationBean
      8. 8.嵌入式Servlet容器
        1. 8.1 切换嵌入式Servlet容器
        2. 8.2 定制Servlet容器
    3. 三.数据访问
      1. 1.SQL
        1. 1.1 JDBC的使用
        2. 1.2 分析自动配置
    4. 四.单元测试
      1. 1.JUnit5的变化
      2. 2.JUnit5常用注解
      3. 3.断言
        1. 3.1 简单断言
        2. 3.2 数组断言
        3. 3.3 组合断言
        4. 3.4 异常断言
        5. 3.5 超时断言
        6. 3.6 快速失败
      4. 4.前置条件
      5. 5.嵌套测试
      6. 6.参数化测试
      7. 7.迁移指南
    5. 五.指标监控
      1. 1.SpringBoot Actuator
        1. 1.1 如何使用
        2. 1.2 常用的EndPoints
        3. 1.3 Health Endpoint
        4. 1.4 Metrics Endpoint
        5. 1.5 管理Endpoint
        6. 1.6 定制Endpoint
          1. 1.6.1 定制health endpoint
          2. 1.6.2 定制 info endpoint
          3. 1.6.3 定制Metrics信息
        7. 1.7 新增Endpoint
        8. 1.8 可视化
    6. 六.原理解析
      1. 1.Profile功能
最近更新

Java爬虫

视频教程1: 狂神说Java Jsoup爬虫入门实战 https://www.bilibili.com/video/BV1La4y1x7Wm?vd_source=aee5e475191b69e6c781059ab6662584

+ })(window)

Java爬虫

视频教程1: 狂神说Java Jsoup爬虫入门实战 https://www.bilibili.com/video/BV1La4y1x7Wm?vd_source=aee5e475191b69e6c781059ab6662584

视频教程2:https://www.bilibili.com/video/BV1RU4y147eZ?vd_source=aee5e475191b69e6c781059ab6662584

具体的看视频 急速入门

入门实战教程

1.引入依赖

1
2
3
4
5
6
<!-- 爬取视频或者音频需要使用别的依赖 -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.3</version>
</dependency>
@@ -188,10 +188,10 @@

image-20230509233922789

image-20230509234019249

-
公告
本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站!
avatar
Jason
Debug the World!
Ctrl + D 收藏
公告
本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站!
最近更新

xShell自定义配色方案

自定义配色方案

+ })(window)

xShell自定义配色方案

自定义配色方案

20230321180350

20230321180405

字体大小的设置

20230321180420

-
公告
本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站!
最近更新
avatar
Jason
Debug the World!
Ctrl + D 收藏
公告
本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站!
最近更新

SpringCloud相关资料

SpringCloud相关资料

一.Eureka注册中心、Ribbon负载均衡、Nacos注册中心

+ })(window)

SpringCloud相关资料

SpringCloud相关资料

一.Eureka注册中心、Ribbon负载均衡、Nacos注册中心

@@ -205,10 +205,10 @@ -
公告
本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站!
avatar
Jason
Debug the World!
Ctrl + D 收藏
公告
本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站!
最近更新

Java生成二维码

SpringBoot + zxing 生成二维码

+ })(window)

Java生成二维码

avatar
Jason
Debug the World!
Ctrl + D 收藏
公告
本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站!
最近更新

阿里云对象存储OSS

1.官网介绍

​ 阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。OSS具有与平台无关的RESTful API接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。您可以使用阿里云提供的API、SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS。数据存储到阿里云OSS以后,您可以选择标准存储(Standard)作为移动应用、大型网站、图片分享或热点音视频的主要存储方式,也可以选择成本更低、存储期限更长的低频访问存储(Infrequent Access)、归档存储(Archive)、冷归档存储(Cold Archive)作为不经常访问数据的存储方式。

+ })(window)

阿里云对象存储OSS

1.官网介绍

​ 阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。OSS具有与平台无关的RESTful API接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。您可以使用阿里云提供的API、SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS。数据存储到阿里云OSS以后,您可以选择标准存储(Standard)作为移动应用、大型网站、图片分享或热点音视频的主要存储方式,也可以选择成本更低、存储期限更长的低频访问存储(Infrequent Access)、归档存储(Archive)、冷归档存储(Cold Archive)作为不经常访问数据的存储方式。

2.使用

2.1 使用的前置准备

(1)申请阿里云账号
(2)实名认证
(3)开通“对象存储OSS”服务
(4)进入管理控制台

2.2 创建Bucket

点击创建Bucket

image-20230422210404204

@@ -242,10 +242,10 @@

image-20230612114314757

解决方法

image-20230612114238391

-
avatar
Jason
Debug the World!
Ctrl + D 收藏
公告
本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站!
最近更新

开发环境的搭建

1.后端环境搭建

1.1 JDK环境的配置

常规的安装,无需教程

+ })(window)

开发环境的搭建

1.后端环境搭建

1.1 JDK环境的配置

常规的安装,无需教程

IDEA中设置默认的JDK

image-20230604120610791

选中需要设置为默认JDK的JDK

@@ -212,10 +212,10 @@

3.前后端公共环境的搭建

1.Git环境的搭建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#以下的操作在下载安装完毕之后进行
#1.鼠标在桌面右键 选择Git Bash Here 打开控制台

#2.配置用户名和邮箱
git config --global user.name "用户名" #随意
git config --global user.email "邮箱" #自己的邮箱

#3.配置SSH免密连接
#生成密钥
ssh-keygen -t rsa -C "在码云上注册的邮箱地址" #连续三次回车
#查看密钥并复制公钥的内容
cat ~/.ssh/id_rsa.pub

#4.将密钥的复制到码云的SSH公钥中
#4.1添加公钥 公钥名随意 公钥内容就是上面复制的内容

#5.测试
ssh -T git@gitee.com
-
avatar
Jason
Debug the World!
Ctrl + D 收藏
公告
本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站!
最近更新

Java学习路线

+ })(window)

Java学习路线

@@ -183,10 +183,10 @@
-

IDEA常用快捷键

1.常用快捷键

    + })(window)

    IDEA常用快捷键

    1.常用快捷键

    1. 在写一个main主函数的时候可以直接在键盘上敲main ,然后根据提示补全全部(模板快捷键)

    2. 在写System.out.println();输出函数代码的时候可以直接在键盘上面敲sout,然后根据提示补全(模板快捷键)

      @@ -224,10 +224,10 @@
    3. Ctrl + F 全局查找

    -
    公告
    本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站!
avatar
Jason
Debug the World!
Ctrl + D 收藏
公告
本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站!
最近更新

SpringBoot整合Logback日志

1.创建一个SpringBoot的工程

2.在resources目录下创建logback-spring.xml的配置文件

创建的时候要修改日志输出的路径

+ })(window)

SpringBoot整合Logback日志

1.创建一个SpringBoot的工程

2.在resources目录下创建logback-spring.xml的配置文件

创建的时候要修改日志输出的路径

日志的级别根据需要自己修改

级别:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
<!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true -->
<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->

<contextName>logback</contextName>
<!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
<property name="log.path" value="C:/AlYun/log" />

<!-- 彩色日志 -->
<!-- 配置格式变量:CONSOLE_LOG_PATTERN 彩色日志格式 -->
<!-- magenta:洋红 -->
<!-- boldMagenta:粗红-->
<!-- cyan:青色 -->
<!-- white:白色 -->
<!-- magenta:洋红 -->
<property name="CONSOLE_LOG_PATTERN"
value="%yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%blue(%thread) |%blue(%file:%line) |%green(%logger) |%cyan(%msg%n)"/>


<!--输出到控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
<!-- 例如:如果此处配置了INFO级别,则后面其他位置即使配置了DEBUG级别的日志,也不会被输出 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
<!-- 设置字符集 -->
<charset>UTF-8</charset>
</encoder>
</appender>


<!--输出到文件-->

<!-- 时间滚动输出 level为 INFO 日志 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/log_info.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录info级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>

<!-- 时间滚动输出 level为 WARN 日志 -->
<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/log_warn.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录warn级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>warn</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>


<!-- 时间滚动输出 level为 ERROR 日志 -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/log_error.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录ERROR级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>

<!--
<logger>用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender>。
<logger>仅有一个name属性,
一个可选的level和一个可选的addtivity属性。
name:用来指定受此logger约束的某一个包或者具体的某一个类。
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
如果未设置此属性,那么当前logger将会继承上级的级别。
-->
<!--
使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作:
第一种把<root level="INFO">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息
第二种就是单独给mapper下目录配置DEBUG模式,代码如下,这样配置sql语句会打印,其他还是正常DEBUG级别:
-->
<!--开发环境:打印控制台-->
<springProfile name="dev">
<!--可以输出项目中的debug日志,包括mybatis的sql日志-->
<logger name="com.guli" level="INFO" />

<!--
root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,默认是DEBUG
可以包含零个或多个appender元素。
-->
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="INFO_FILE" />
<appender-ref ref="WARN_FILE" />
<appender-ref ref="ERROR_FILE" />
</root>
</springProfile>


<!--生产环境:输出到文件-->
<springProfile name="pro">

<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="DEBUG_FILE" />
<appender-ref ref="INFO_FILE" />
<appender-ref ref="ERROR_FILE" />
<appender-ref ref="WARN_FILE" />
</root>
</springProfile>

</configuration>

3.日志的样式如下图所示

image-20230412171350769

-
公告
本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站!
avatar
Jason
Debug the World!
Ctrl + D 收藏
公告
本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站!
最近更新
标签 - OCR
2023
OCR-图片文字识别
OCR-图片文字识别
\ No newline at end of file diff --git a/tags/SSM/index.html b/tags/SSM/index.html index 081379053..cc8ae4c98 100644 --- a/tags/SSM/index.html +++ b/tags/SSM/index.html @@ -62,7 +62,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2023-12-03 16:28:46' + postUpdate: '2023-12-08 22:03:28' }