自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SAP Fiori 实战课程(二):新建页面

上一课中,利用Visual studio Code 新建、并运行了一个Demo工程。可以实现对项目的启动,启动后进入一个List清单。那么本次课程的目前就是在上一节Demo的基础上,从零开始新建一个完整的页面

2024-07-21 17:21:11 576

原创 SPA Fiori开发实战课程(一)

由于工作需要,对Fiori的开发有了一些具体实践,所以做一些记录和总结。

2024-07-19 18:14:10 303

原创 Spring Boot项目的404是如何发生的

在日常开发中,假如我们访问一个Sping容器中并不存在的路径,通常会返回404的报错,具体原因是什么呢?

2024-07-16 16:24:54 1208 1

原创 Java客户端调用SOAP方式的WebService服务实现方式分析

Java实现SOAP方式的WebService客户端调用方法及实例介绍

2024-07-09 20:05:23 1202

原创 Java实现图片的垂直方向拼接

实现任意两张图片的垂直方向拼接,对于过小图片实现了放大,保证了图片拼接后的清晰度。对于高度大于宽度的图片,进行了-90度旋转。

2024-07-04 16:34:20 331 1

原创 Nacos报错:Server check fail, please check server 127.0.0.1 ,port 9848 is available , error ={}

Spring Cloud Alibaba的项目启动,Nacos报错:java.util.concurrent.ExecutionException: com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exception。

2024-07-02 15:01:35 1192

原创 win10 下 mvn install 报错:编码GBK不可映射字符

win10下JDK编码导致的报错:编码GBK不可映射字符

2023-11-29 20:22:33 548

原创 okta/sf平台实现saml2.0单点登录集成实战(详细步骤+完整代码)

步骤详细的完全实战文章,基于Springboot+SpringSecurity+Saml2.0实现单点登录

2023-06-06 17:28:13 3687 10

原创 mysql是如何插入一条数据的

在很多资料中,都会说mysql的innodb是基于B+树的聚簇索引。这里对B+树不做深入讲解,可以理解为对简单的平衡二叉树进行了改进,通常的平衡二叉树是一个父节点挂左右两个字节的,B+树的子节点,有两个,也可能有三个,所以也简称二、三树。众所周知,把数据构造成一颗二叉树,最主要的作用就是可以通过二分查找的方式,快速找到指定数据。那么聚簇索引主要也是利用了这个原理,且由于它子节点比较多,会减少这颗二叉树的深度,从而加快查询速度。那么到底什么是聚簇索引呢?

2023-01-19 08:30:49 3870

原创 三方系统集成SF(SuccessFactors),实现单点登录要点

在笔者先前的文章中,详细介绍了如何把一个自开发的三方系统,集成到okta或者IAS平台。经过笔者的实际工作经验,发现SF自己本身其实也可以作为一个单点登录平台来使用。

2022-12-21 19:10:45 1642 1

原创 Java以Graph方式发送Outlook、Exchange邮件(2022新版)——修订版,可运行

Graph发送exchange邮件,2022新版

2022-12-07 18:38:15 2411 6

原创 SAML message intended destination endpoint did not match recipient endpoint,问题解决及原理

彻底解决报错:SAML message intended destination endpoint 'XXX' did not match the recipient endpoint 'XXX'

2022-12-04 17:16:11 933

原创 Springboot启动流程分析(四):完成启动流程

Springboot启动过程完结篇

2022-11-27 12:19:25 1075

原创 Springboot启动流程核心知识点(二):bean的实例化过程

Java Bean实例化过程,getBean、createBean原理解析

2022-11-05 12:44:41 1498

原创 Springboot启动流程核心知识点(一):Spring自动装配原理

依托Springboot启动流程,结合源码,完整了解Springboot自动装配原理。

2022-09-10 17:10:43 519 3

原创 Springboot启动流程分析(三):刷新IOC容器之执行beanFactory后置处理器原理

不惮其烦,逐行解析,全景再现Springboot启动流程。

2022-09-09 11:30:02 767

原创 org.opensaml.common.SAMLException: Response issue time is either too old or with date in the future

okta 单点登录报错解决

2022-09-02 20:18:31 452

原创 Springboot启动流程分析(二):准备IOC容器相关信息

不惮其烦,逐行解析,全景再现Springboot启动流程。

2022-08-28 19:49:06 686

原创 Springboot启动流程分析(一):IOC容器初始化

干货满满,深入源码,全流程分析Springboot启动过程

2022-08-20 15:45:09 980

原创 SpringMVC核心流程分析(源码讲解)

SpringMVC核心流程分析

2022-08-17 15:02:34 522

原创 SpringMVC框架原理剖析(一):如何自定义一个@ResponseBody

在我们平常使用的@RestController注解中,就已经包含了对返回结果的处理:其关键点便在于@ResponseBody这个注解,在我们的普通MVC框架,在获取结果以后是要同时返回ModelAndView的。如果标注了@ResponseBody注解,则会触发默认的后置处理器,对返回结果进行处理,其核心方法如下:其核心方法便是实现接口HandlerMethodReturnValueHandler中的两个方法:通过supportsReturnType确认进入此类,然后执行handleReturnValue

2022-07-12 10:29:22 692

原创 ConcurrentHashMap核心方法分析(简略版)

ConcurrentHashMap

2022-07-06 18:00:20 278

原创 前k个高频元素

输入:arr={2, 2, 2, 2, 3, 3, 3, 1},k = 2;输出:[3,2];利用PrioriQueue的特性和Map的数据结构,返回前k个高频元素。

2022-06-29 21:55:07 89

原创 求滑动窗口最大值

Java求滑动窗口最大值

2022-06-26 11:38:59 84

原创 反转字符串,并去除前后多余空格

" hello world I am judy! " 反转为: "judy! am I world hello"步骤1:去除前后空格,中间多余空格去除步骤2:反转所有字符串步骤2:按单词反转public class StringTest { public static void main(String[] args) { char[] strArray = {' ',' ','h', 'e', 'l', 'l', 'o', ' ', ' ', 'w', 'o',

2022-05-23 14:29:12 410

原创 单链表删除倒数第n个链表节点

前置准备:public class NodeTest { static class MyNode { int val; MyNode preNode; MyNode nextNode; public MyNode(int val, MyNode preNode, MyNode nextNode) { this.val = val; this.preNode = preNode;

2022-05-13 20:47:26 378

原创 反转单向链表

前置:static class MyNode { int val; MyNode preNode; MyNode nextNode; public MyNode(int val, MyNode preNode, MyNode nextNode) { this.val = val; this.preNode = preNode; this.nextNode = nex

2022-05-13 20:44:45 135

原创 设计模式之监听器模式

监听器模式,主要由3个角色组成:事件(EventObject),监听器(EventListener),事件发布者(EventPublish)。其核心流程便是,由事件发布者发布事件,在事件发布前后分别放置监听器。其代码示例如下:1.事件public class MethodExecutionEvent extends EventObject { private static final long serialVersionUID = -71960369269303337L;

2022-04-16 10:13:13 2182 3

原创 基于saml2.0的平台(适用多种平台)单点登录配置,以okta为例

SAP中SCI平台、OKTA 平台单点登录 集成Java自开发平台

2022-04-13 18:15:34 8658 7

原创 Qaurtz报错:org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named‘xx‘available

目录NoSuchBeanDefinitionException报错解决NoSuchBeanDefinitionException报错原因分析1.容器未实例化指定类2.Qaurtz前台页面,bean名称配置错误3.Qaurtz框架在非集群环境下,使用同一个数据库,部署了多个版本的代码(重点)结语NoSuchBeanDefinitionException报错解决关于Qaurtz定时框架的运行原理,在文章《Qaurtz定时框架,是怎么运行的(源码讲解)》中有详细讲解,自以为

2022-03-26 18:10:04 3388 1

原创 手写一个简易数据库连接池

数据库连接池,一般用于后台应用与后台数据库的交互,其目的主要是控制服务器资源消耗,常用的有Druid、C3P0、Hikari。为了对数据库连接池有一个更深入的了解,我们手写一个简易连接池。其具体步骤如下:核心参数:空闲线程数 freeConnectPool活动线程数 activeConnectPool原理:1.根据配置文件参数,初始化连接池,设置初始线程数2.通过getConnection(),获取连接,如果空闲线程大于0,则直接从空闲线程取连接,此时freeConnectPool计

2022-03-18 11:18:49 2373 5

原创 Java简单实现HashMap

构造map接口:package com.extHashMap;import sun.awt.SunHints;public interface ExtMap<K,V> { V put(K k,V v); V get(K k ); interface Entry<K,V>{ K getKey(); V getValue(); V setValue(V v); }}构造HashMa

2022-03-15 14:38:37 1996

原创 Java简单实现List集合

根据list集合的原理,简单的实现一版原理,有助于更好的了解jdk源码。1.构造list接口:package com.arraylist;public interface ExtList<T> { boolean add(T t); T get(int i );}2.实现ArrayList:package com.arraylist;import org.springframework.context.ConfigurableApplicat

2022-03-11 16:28:52 599

原创 双向链表删除指定节点,JAVA实现

构造双向链表,删除指定节点:public class NodeTest { static class MyNode { int val; MyNode preNode; MyNode nextNode; public MyNode(int val, MyNode preNode, MyNode nextNode) { this.val = val; this.preNode =

2022-02-24 15:37:58 1790

原创 Qaurtz定时框架,是怎么运行的(源码讲解)

我们从一个小的业务场景开始。当一个springboot项目集成好Quartz框架之后,其前端界面如下:此时我们点击最右边的立即执行按钮,后台是如何执行的呢?和我们平常的同步执行方法不同,这个方法其实是异步执行的。其核心原理就是,先把需要执行的任务信息持久化到数据库,再通过Quartz自带的后台线程查询数据库,获取需要执行的定时任务。下面我们从源码开始分析:...

2022-02-23 11:42:51 1149

原创 jpa设置ddl-auto不生效

在一般的配置中,jpa自动生成表的配置为:spring.jpa.hibernate.ddl-auto = update笔者采用的是springboot的2.3.2.RELEASE版本,按照上面配置之后,总是不能生成表格。所以进入源代码,看了下具体情况:找到类DataSourceInitializedPublisher,可以发现其利用的Spring生命周期中的后置处理器:BeanPostProcessor,在entityManagerFactory实例化之后,判断是否初始化数据库,具.

2022-01-20 12:08:12 2841

原创 com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

问题背景:在使用VPN的情况下,远程linux服务器运行mysql8.0的docker镜像。本机navicat软件连接可以访问,java的JDBC无法访问。解决方法:JVM启动加参数:-Djava.net.preferIPv4Stack=true详细报错如下:The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from .

2021-12-20 11:00:53 3227

原创 This scheduler instance (...) is still active but was recovered by another instance in the cluste

问题描述:这是关于Quartz服务部署的集群问题。先说结论,如果只有这一个报错可以不予理会,这是由于在Quartz集群部署引起的,原因是在集群环境中,对于同一个集群实例,只允许一个可用服务器来执行定时任务。PS:如果想要彻底解决,方便本地调试,可以设置org.quartz.jobStore.isClustered=false。实际过程:在单体服务中,引入了Quartz定时任务框架,且使用的是集群模式,当部署了公司的DEV环境以后,由于开发需要,还需要在本地启动服务,这就导致隔一段时间,log就会.

2021-12-13 18:09:34 13445 1

原创 springboot使用中,引入jar包冲突解决,通用方法

最核心的,看报错,仔细看控制台打印的输出日志。下面以具体的案例来说明如何操作。先看报错:***************************APPLICATION FAILED TO START***************************Description:An attempt was made to call a method that does not exist. The attempt was made from the following location:

2021-11-19 10:26:42 5899

原创 两个有序数组,合并后排序

以数组nums1={1, 3, 5, 9}和nums2={3, 4, 6, 8}为例,其求解思路如下:1、构造一个空数组,长度为8,名为ints={};2、比较nums1[0]和nums2[0],1<3,把1放在ints的第1位{1},由于nums1中的第一个 元素已经被使用,其当前索引后移一位,以后用下一位元素3和nums2的第1位元素3比较;3、比较nums1[1]和nums2[0],3不小于3,把nums2[0]放入ints第2位:{1,3};4、比较nums1[1]和...

2021-11-12 15:56:22 651

SAP Fiori 实战课程(二):新建页面

products.json文件

2024-07-20

空空如也

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

TA关注的人

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