自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 收藏
  • 关注

原创 ElasticsearchTemplate连接带有密码的elasticsearch

pom文件 注意自己的elasticsearch服务端版本 下面的方式只在6.8.0版本测试过。

2022-08-20 17:31:45 981 1

原创 linux中可能会用到的操作命令(持续更新)

linuxscp 包名 用户名@主机名或者ip地址:/目录 向远程服务器发送文件jps 查看运行中的进程kill -9 pid 杀进程./xxx.sh 当前目录下执行脚本cd 目录 切换目录ssh 主机名或ip地址 切换远程主机mysqlmysql -u 用户名 -p 之后输入密码 登录数据库show databases; 查看数据库列表use 库名; 切库show tables; 查看当前库 表列表mysql -u 用户名 -p -D 库名 < ./文件名 执行文件中的sql

2022-03-31 19:33:06 4152

原创 java中使用redistemplate批量读取数据并处理数据

参考代码redis数据结构

2022-03-23 18:09:57 1498

原创 Spring源码深度解析 Spring Boot 体系原理总结

Spring Boot 特点如下:创建独立的 Spring 应用程序;嵌入的 Tomcat ,无须部署 WAR 文件;简化 Maven 配置;自动配置 Spring;提供生产就绪型功能,如指标、健康检查和外部配置;绝对没有代码生成,以及对 XML 没有配置要求首先搭建一个 maven 工程, pom 如下:然后建立一个 controller 类最后再加入启动整个项目的 main 函数最后启动main函数并在浏览器中输入localhost:8080第一个 Starterspr

2022-03-22 19:54:53 1135

原创 Spring源码深度解析 Spring 消息总结

JMS 的独立使用发送端实现接收端实现Spring 整合 ActiveMQSpring 配置文件发送端接收端到这里已经完成了 Spring 消息的发送与接收操作 但是 如 HelloWorldReciver 中所示的代码,使用 jmsTemplate.receive( destination )方法只能接收一次消息 ,如果未接收到消息,则会一直等待。当然用户可以通过设置 timeout 属性来控制等待时间,但是一旦接收到消息,本次接收任务就会结束 虽然用户可以通过 while(

2022-03-19 16:57:00 439

原创 Spring源码深度解析 远程服务总结

RMI使用示例建立 RMI 对外接口建立接 口实现类建立服务端配置文件。建立服务端测试完成了服务端的配置后,还需要在测试端建立测试环境以及测试代码 首先建立测试端配置文件编写测试代码服务端实现启动 Spring 中的 RMI 服务并没有多余的操作,仅仅是开启 Spring的环境 new ClassPathXmlApplicationContext(”test/remote/RMIServer.xml ”),仅此一句 于是,分析很可能是 RMIServiceExporte

2022-03-19 16:07:35 657

原创 Spring源码深度解析 SpringMVC总结

SpringMVC 快速体验配置 web.xmlcontextConfigLocation: Spring 的核心就是配置文件,可以说配直文件是 Spring 中必不可少的东西,而这个参数就是使 Web 与 Spring 的配直文件相结合的一个关键配直DispatcherServlet :包含了 SpringMVC 的请求逻辑, Spring 使用此类拦截 Web 请求并进行相应的逻辑处理创建 Spring 配置文件 applicationContext.xml创建model创建co

2022-03-18 22:42:50 557

原创 Spring源码深度解析 事务总结

JDBC 方式下的事务使用示例创建数据表结构创建对应数据表的 PO创建表与实体间的映射创建数据操作接口创建数据操作接口实现类创建 Spring 配置文件测试默认情况下 Spring 中的 事务处理只对 RuntimeException 方法进行回滚,所以,如果此处将 RuntimeException 替换成普通的 Exception 不会产生回滚效果事务自定义标签在配置文件中有这样一个配置 tx:annotation-driven/ 可以说此处配置是事务的开关使用

2022-03-17 19:15:13 997

原创 Spring源码深度解析 整合MyBatis总结

MyBatis 独立使用建立 PO建立 Mapper建立配置文件配置文件的基本结构configuration :根元素properties 定义配置外在化settings 一些全局性的配置typeAliases :为一些类定义别名typeHandlers :定义类型处理,也就是定义 Java 类型与数据库中的数据类型之间的转换关系objectFactory :用于指定结果集对象的实例是如何创建的plugins: MyBatis 的插件,插件可以修改 MyBatis 内部的运行

2022-03-16 19:09:43 877

原创 Spring源码深度解析 数据库连接JDBC总结

Spring 连接数据库程序实现( JDBC )创建数据表结构创建对应数据表的 PO创建表与实体间的映射创建数据操作接口创建数据操作接口实现类创建 Spring 配置文件测试save/update 功能的实现首先以保存实体类为例进行代码跟踪进入 jdbcTemplate中的 update 方法。进入 update 方法后, Spring 并不是急于进入核心处理操作,而是先做足准备工作,使用ArgTypePreparedStatementSetter 对参数与参数

2022-03-16 18:12:06 1394

原创 Spring源码深度解析 AOP总结

动态 AOP 使用示例创建用于拦截的 bean创建 Advisor创建配置文件测试动态 AOP 自定义标签Spring 中的自定义注解,如果声明了自定义的注解,那么就一定会在程序中的某个地方注册了对应的解析器在 AopNamespaceHandler 中对应着这样一段函数:在解析配 文件的时候, 旦遇到 aspectjautoproxy 注解时就会使用解析器AspectJAutoProxyBeanDefinitionParser 进行解析注册 AnnotationAware

2022-03-15 19:22:54 1589 3

原创 Spring源码深度解析 容器的功能扩展总结

ApplicationContext 和 BeanFacotry 两者都是用于加载 Bean 的,但是相比之下, ApplicationContext提供了更多的扩展功能,简单一点说 ApplicationContext 包含 BeanFactory 的所有功能通常建议比 BeanFactory 优先 ,除非在一些限制的场合,比如字节长度对内存有很大的影响时(Applet)使用 BeanFactory 方式加载 XML使用 ApplicationContext 方式加载 XMLClassP

2022-03-14 19:59:28 848

原创 Spring源码深度解析 bean的加载总结

对于加载 bean 的功能,在 Spring 中的调用方式为转换对应 beanName这里传入的参数可能是别名,也可能是 FactoryBean ,所以需要进行一系列的解析,这些解析内容包括如下内容去除FactoryBean 的修饰符,也就是如果name=“&aa”,那么会首先去除&而使 name=“aa”取指定 alias 所表示的最终 beanName,例如别名A 指向名称为B的 bean 则返回 B;若别名A 指向别名B ,别名B又指向名称为C的 bean 则返回C尝试

2022-03-12 17:01:29 1213

原创 Spring源码深度解析 自定义标签的解析总结

当完成从配置文件到 Document 的转换并提取对应的 root 后,将开始了所有元素的解析,而在这一过程中便开始了默认标签与自定义标签两种格式的区分当 Spring 拿到一个元素时首先要做的是根据命名空间进行解析,如果是默认的命名空间,则使用 parseDefaultElement 方法进行元素解析,否则使用 parseCustomElement 方法进行解析自定义标签使用扩展 Spring 自定义标签配置大致需要以下几个步骤(前提是要把 Spring Core包加入项目中)创建一个需要扩

2022-03-09 17:57:46 242

原创 Spring源码深度解析 默认标签的解析总结

默认标签的解析是在 parseDefaultElement 函数中进行的,分别对4种不同标签( import alias bean 和 beans ) 做了不同的处理bean标签的解析及注册首先委托 BeanDefinitionDelegate 类的 parseBeanDefinitionElement 方法进行元素解析,返回 BeanDefinitionHolder 类型的实例 bdHolder 经过这个方法后, bdHolder 实例已经包含我们配置文件中配置的各种属性了,例如 clas

2022-03-09 16:23:21 295

原创 Spring源码深度解析 容器的基本实现总结

容器基本用法bean 定义配置文件测试代码直接使用 BeanFactory 作为容器对于 Spring 的使用来说并不多见,甚至是甚少使用,因为在企业级的应用中大多数都会使用的是 ApplicationContext功能分析读取配置文件 beanFactoryTest.xml根据 beanFactoryTest.xml 中的配置找到对应的类的配直,并实例化调用实例化后的实例ConfigReader :用于读取及验证配置文件 我们要用配置文件里面的东西,当然首先要做的就是读取,然后

2022-03-08 20:54:07 318

原创 Spring源码深度解析 Spring整体架构和环境搭建总结

Core Container (核心容器)包含有 Core Beans Context Expression Language 模块Core Beans 模块是框架的基础部分,提供 IoC (转控制)和依赖注入特性 这里的基础概念是 BeanFactory ,它提供对 Factory 模式的经典实现来消除对程序’性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置Core 模决主要包含 Spring 框架基本的核心工具类, Spring 的其他纽件都要用到这个包里的类, Core 模.

2022-03-07 19:44:34 237 1

原创 方正排版只支持rtf格式的文件在线打开的解决方案

利用wps后台打开的方式 将doc、docx、wps格式的文件隐藏转换为rtf格式 就可以在线打开了//原始文件路径var href = platformWpsUploadUrl() + "/download?attachId=" + attachId + "&redisKey=" + data.redisKey; //var href = headPath + "/platform/UploadChunkController/download?attachId=

2022-02-27 14:28:25 364

原创 项目是通过文件流的方法查看文件 无法直接在线查看mht后缀文件的解决方案

@Override public void transformation(String attachId) { //attachId 文件在数据库中的id //查出数据库中的文件 SysAttachmentEntity sysAttachment = this.sysAttachmentRepository.findByAttachIdAndIsValid(attachId, YNEnum.Y.toString()); //判空 if

2022-02-18 15:19:12 327

原创 记一次使用JPA分页查询SQL优化

没优化前代码如下问题出在List countList = query.getResultList();分页查询查总数的时候把所有的数据都查出来了 数据量多的话 会导致查询方法非常慢 StringBuilder sql = new StringBuilder("SQL语句"); Query query = em.createNativeQuery(sql.toString()); query.unwrap(NativeQueryImpl.class).setResu

2022-02-17 17:06:07 1227

原创 Java编程思想 图形化用户界面总结

设计中要遵循的一条基本原则是 让简单的事情变得容易 让困难的事情变得可行applet它是一种可以在Internet上传递 并在Web浏览器中运行的程序(出于安全性 只能在所谓的沙盒内运行)Swing基础大多数Swing应用都被构建在基础的JFrame内部 JFrame在你使用的任何操作系统中都可以创建视窗应用 视窗的标题可以像下面这样使用JFrame的构造器来设置请注意最后一行如果...

2019-11-28 18:02:51 2657

原创 Java编程思想 并发总结

并发的多面性并发编程令人困惑的一个主要原因是 使用并发时需要解决的问题有多个 而实现并发的方式也有多种 并且在这两者之间没有明显的映射关系(而且通常只具有模糊的界线) 因此 你必须理解所有这些问题和特例 以便有效地使用并发用并发解决的问题大体上可以分为 速度 和 设计可管理性 两种更快的执行速度问题初听起来很简单 如果你想要一个程序运行得更快 那么可以将其断开为多个片段 在单独的处理器上运...

2019-11-26 23:22:42 1462

原创 Java编程思想 注解总结

注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法 使我们可以在稍后某个时刻非常方便地使用这些数据基本语法在下面的例子中 使用@Test对testExecute()方法进行注解 该注解本身并不做任何事情 但是编译器要确保在其构造路径上必须有@Test注解的定义 程序员可以创建一个通过反射机制来运行testExecute()方法的工具定义注解下面就是前例中用到的注解@Tes...

2019-11-11 16:08:49 278

原创 Java编程思想 枚举类型总结

关键字enum可以将一组具名的值的有限集合创建为一种新的类型 而这些具名的值可以作为常规的程序组件使用 这是一种非常有用的功能基本enum特性创建enum时 编译器会为你生成一个相关的类 这个类继承自java.lang.Enum 下面的例子演示了Enum提供的一些功能将静态导入用于enumBurrito.java的另一个版本使用static import能够将enum实例的标识符带...

2019-11-01 11:59:44 385 1

原创 Java编程思想 Java I/O系统总结

File类目录列表器假设我们想查看一个目录列表 可以用两种方法来使用File对象 如果我们调用不带参数的list()方法 便可以获得此File对象包含的全部列表 然而 如果我们想获得一个受限列表 例如 想得到所有扩展名为.java的文件 那么我们就要用到 目录过滤器 这个类会告诉我们怎样显示符合条件的File对象下面是一个示例 注意 通过使用java.utils.Arrays.sort()和...

2019-10-30 17:29:46 1163

原创 Java编程思想 容器深入研究总结

完整的容器分类法下面是集合类库更加完备的图 包括抽象类和遗留构件(不包括Queue的实现)填充容器虽然容器打印的问题解决了 容器的填充仍然像java.util.Arrays一样面临同样的不足 就像Arrays一样 相应的Collections类也有一些实用的static方法 其中包括fill() 与Arrays版本一样 此fill()方法也是只复制同一个对象引用来填充整个容器的 并且只对L...

2019-10-18 18:17:08 251

原创 Java编程思想 数组总结

数组为什么特殊数组与其他种类的容器之间的区别有三方面 效率 类型和保存基本类型的能力数组可以持有基本类型 而泛型之前的容器则不能 但是有了泛型 容器就可以指定并检查它们所持有对象的类型 并且有了自动包装机制 容器看起来还能够持有基本类型 下面是将数组与泛型容器进行比较的示例数组是第一级对象下例总结了初始化数组的各种方式 以及如何对指向数组的引用赋值 使之指向另一个数组对象 此例也说明 ...

2019-10-15 17:17:12 281

原创 Java编程思想 泛型总结

一般的类和方法 只能使用具体的类型 要么是基本类型 要么是自定义的类 如果要编写可以应用于多种类型的代码 这种刻板的限制对代码的束缚就会很大与C++的比较Java中的泛型就需要与C++进行一番比较 理由有二 首先 了解C++模板的某些方面 有助于你理解泛型的基础 同时 非常重要的一点是 你可以了解Java泛型的局限是什么 以及为什么会有这些限制 最终的目的是帮助你理解 Java泛型的边界在哪里...

2019-09-27 10:25:39 365

原创 Java编程思想 类型信息总结

运行时类型信息使得你可以在程序运行时发现和使用类型信息为什么需要RTTI在这个例子中 当把Shape对象放入List的数组时会向上转型 但在向上转型为Shape的时候也丢失了Shape对象的具体类型 对于数组而言 它们只是Shape类的对象当从数组中取出元素时 这种容器——实际上它将所有的事物都当作Object持有——会自动将结果转型回Shape 这是RTTI最基本的使用形式 因为在Ja...

2019-09-17 14:33:44 210

原创 js上传文件并且附带自定义信息

实现的思路用了一个保存信息的数组和一个图片的数组 保持住两者的顺序一一对应 最后提交到后台 下面贴出相关代码 供有需要的同学参考页面:代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt...

2019-08-26 09:00:46 995

原创 Java编程思想 字符串总结

不可变StringString对象是不可变的 String类中每一个看起来会修改String值的方法 实际上都是创建了一个全新的String对象 以包含修改后的字符串内容 而最初的String对象则丝毫未动当把q传给upcase()方法时 实际传递的是引用的一个拷贝 其实 每当把String对象作为方法的参数时 都会复制一份引用 而该引用所指的对象其实一直待在单一的物理位置上 从未动过重载...

2019-07-30 16:55:39 219

原创 Java编程思想 通过异常处理错误总结

Java的基本理念是 结构不佳的代码不能运行概念异常 这个词有 我对此感到意外 的意思 问题出现了 你也许不清楚该如何处理 但你的确知道不应该置之不理 你要停下来 看看是不是有别人或在别的地方 能够处理这个问题 只是在当前的环境中还没有足够的信息来解决这个问题 所以就把这个问题提交到一个更高级别的环境中 在这里将作出正确的决定使用异常所带来的另一个相当明显的好处是 它往往能够降低错误处理代码...

2019-07-24 16:34:21 571

原创 Java编程思想 持有对象总结

如果一个程序只包含固定数量的且其生命期都是已知的对象 那么这是一个非常简单的程序泛型和类型安全的容器使用Java SE5之前的容器的一个主要问题就是编译器允许你向容器中插入不正确的类型在本例中 Apple和Orange都放置在了容器中 然后将它们取出 正常情况下 Java编译器会报告警告信息 因为这个示例没有使用泛型 在这里 我们使用Java SE5所特有的注解来抑制了警告信息 注解以 @ ...

2019-07-12 15:50:52 178

原创 Java编程思想 内部类总结

可以将一个类的定义放在另一个类的定义内部 这就是内部类创建内部类更典型的情况是 外部类将有一个方法 该方法返回一个指向内部类的引用如果想从外部类的非静态方法之外的任意位置创建某个内部类的对象 那么必须像在main()方法中那样 具体地指明这个对象的类型 OuterClassName.InnerClassName链接到外部类...

2019-07-11 09:27:41 199 1

原创 Java编程思想 接口总结

接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法抽象类和抽象方法抽象方法 abstract void f();包含抽象方法的类叫做抽象类 如果一个类包含一个或多个抽象方法 该类必须被限定为抽象的(否则 编译器就会报错)如果从一个抽象类继承 并想创建该新类的对象 那么就必须为基类中的所有抽象方法提供方法定义 如果不这样做(可以选择不做) 那么导出类便也是抽象类 且编译器将会强制...

2019-07-09 14:51:59 290

原创 Java编程思想 多态总结

在面向对象的程序设计语言中 多态是继数据抽象和继承之后的第三种基本特征再论向上转型对象既可以作为它自己本身的类型使用 也可以作为它的基类型使用 这种把对某个对象的引用视为对其基类型的引用的做法被称作向上转型——因为在继承树的画法中 基类是放置在上方的转机方法调用绑定将一个方法调用同一个方法主体关联起来被称作绑定 若在程序执行前进行绑定(如果有的话 由编译器和连接程序实现) 叫做前...

2019-07-02 17:27:50 312

原创 Java编程思想 复用类总结

组合语法每一个非基本类型的对象都有一个toString()方法 而且当编译器需要一个String而你却只有一个对象时 该方法便会被调用"source = " + source将调用toString() 把source转换成为一个String对象引用会被初始化为null 而且如果你试图为它们调用任何方法 都会得到一个异常——运行时错误 在不抛出异常的情况下仍旧可以打印一个null引用编译器...

2019-06-28 11:38:34 211

原创 Java编程思想 访问权限控制总结

访问控制(或隐藏具体实现)与 最初的实现并不恰当 有关包:库单元包内包含有一组类 它们在单一的名字空间之下被组织在了一起使用包中类 可以使用全名来指定 或者import关键字 要想导入包中所有的类 只需要使用 *一个Java编译单元中 只可以有一个public类 并且名称要与文件的名称相同(包括大小写)代码组织当编译一个.java文件时 在.java文件中的每个类都会有一个输出文件 而...

2019-06-19 14:50:22 171

原创 Java编程思想 初始化与清理总结

用构造器确保初始化在创建对象时:new Rock();将会为对象分配存储空间 并调用相应的构造器方法重载方法名相同而形式参数不同区分重载方法每个重载的方法都必须有一个独一无二的参数类型列表 参数顺序不同也可以区分两个方法 不建议这样做 会使代码难以维护涉及基本类型的重载基本类型能从一个 较小 的类型自动提升至一个 较大 的类型如果传入的数据类型(实际参数类型)小于方法中声明的形...

2019-06-12 16:41:26 196

原创 Java编程思想 控制执行流程总结

true和falseJava不允许我们将一个数字作为布尔值使用 在C和C++里是允许的(真 是非零 而 假 是零)if-elseelse if 并非新的关键字 而仅仅只是一个else后面紧跟另一个新的if语句迭代while和do-while唯一的区别就是do-while中的语句至少会执行一次 即便表达式第一次就被计算为false 而在while循环结构中 如果条件第一次就为fals...

2019-06-10 14:57:48 148

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除