自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (2)
  • 收藏
  • 关注

原创 Spring Boot 从2.1.x 升级到3.0.x的艰辛历程

凡是因果,为什么吃饱了撑着要从2.1.x升级到3.0.x,这不是没事找事做吗?一次性到位该用什么版本的就用什么版本的不好吗。一个项目不应该确定他JDK的版本和Springboot的基本版本吗?既然确定了你改什么,升什么级。这是嫌程序员的时间太多了找点事给他们做?初一开始我也这么想,为啥呀,我闲的蛋疼啊?好不容易实现业务了,各种测试也通过了。这个时候跟我说要做升级。为啥当初一开始不讨论清楚呢?其实在这个升级的过程中我也渐渐认清了应用的商业价值。慢慢理解了,必须要有人去做这个。

2023-11-30 12:02:18 4147 1

原创 【Springboot】 实现DynamicDataSource配置多数据源 - Part2

上一部分我们实现了一个简单的动态多数据源配置。我们说过,这个时候我们其实只能在调用mapper之前手动的去修改数据源名称来获取别的数据源。我们这次考虑使用注解+切面技术来让他动态的去设置数据源名称。

2023-10-18 17:47:55 272

原创 【Springboot】 实现DynamicDataSource配置多数据源 - Part1

在一个Springboot项目中需要使用到多个数据源(连接到多个不同的数据库)。项目中使用MybatisPlus作为持久层方案。需要做到类似于位某个Mybatis Mapper加不同的注解,就能够让该mapper连接到不同数据源。如下图: 有一个注解名字叫做@Datasource,该注解可以配置在class上面, 也可以配置在method上面。当配置在class上面, 表示当前mapper里面的所有method都使用class所配置的数据源。而配置在method上面表示当前method使

2023-10-18 17:09:58 1247

原创 【React】后台开发学前端 05 - React props & state

首先跟大家说医生抱歉,因为身体抱恙住院了几天,所以后台开发学前端停更了些许日子。再次也跟各位高程们提醒一句,身体是自己的,钱都是赚不完的。保命要紧!另外,我们之前已经清楚了React基本的一些结构和构成react最重要的东西 -组件。今天,我们要接触到关于react组件的一些状态传递相关的知识,props和state在进入学习之前,我们可以复习以下之前说起过的,React类组件是我们说到过的动态组件,他的动态在于能够根据传递的数据变化在某些页面加载的阶段来渲染一些“新东西”到页面。

2023-10-09 15:48:51 61

原创 【React】后台开发学前端 04 - React组件02 - 函数组件

用单独一个篇幅来介绍React所推荐的函数式组件,是因为在版本16以后,有了hooks函数后,函数组件完全可以替代类组件做任何事情。而且写法优雅,并且强调一下,是React推荐的方式。虽然这种Javascript里面的function的写法对后端开发来说很不友好。而且相比较来说类组件做起来更面向对象, 对于后端开发更容易理解一些。但是自从我接触了函数式组件依赖,我渐渐喜欢上了这种简单明了的写法。所以说函数式组件是静态组件。是一个三无产品(没有this没有生命周期没有state)

2023-09-20 16:35:02 65

原创 【React】后台开发学前端 04 - React组件01 - JSX, 类组件

经过上篇文章的介绍,我已经能够搭建一套React的项目框架,并且在框架中保留了基础的可运行的结构。然后我们修改了App.js后得到了一个Hello,World!界面。接下来我们需要一起来了解下构成react页面的基本元素了。

2023-09-18 11:45:59 150

原创 【React】后台开发学前端 03- 项目结构介绍 - Hello World!

凡是学习语言,第一步必然是神来一笔,Hello World。我们先一起用React做一个能够运行起来的Hello world页面。这一次你只管照着做。做完运行起来我在介绍它里面的原理。

2023-09-15 19:13:27 129

原创 【React】后台开发学前端 02 - 初入江湖,环境搭建

工欲善其事, 必先利其器。先把学习和开发需要的工具搞定。

2023-09-15 17:34:14 72

原创 【React】后台开发学前端 01 系列预告 - 后台眼中的前端技术

所以籍此机会,会慢慢发布关于React学习的历程。因为发现自己摸索很久,还不如有个懂的人一语道破。所以用这样的机会记录一下自己宝贵的学习经验。再后来的后来,发现自己早就已经跟前端说再见了。因为发现现在前端基本上离不开node.js或者说是npm的环境了。到后来做过jsp,然后jsp已经不算是纯粹意义上的前端技术了,而是被归于后端技术。最近公司给机会,让项目组的前端老大们做了几个training,让我们渐渐入门React。15年后台开发,热爱技术。但是无奈于做了很多年后台开发,对前端的东西知之甚少。

2023-09-15 15:27:40 46

原创 藉此谈谈15年Java开发的心酸历程

所以刚进去一年,真的学了好多东西,Docker,Apache Kafka,Rancher,Jenkins, Active MQ...这些以前没有接触过,或者说没有机会接触到的东西,我都开始有了接触学习甚至实践的机会。还记的那年,我们这边项目组陆续的将人遣散,其方法是把人调到其他项目组,甚至是跟自己技术没有关系的其他部门,让其自生自灭。终于轮到我,给我调到了一个很虚的项目组,管理也虚,项目也需。大学毕业出来前三年也是几经挫折,做过司机,守过工程,送过货,甚至在农家乐打过工,还做过网管,仓管,卖过品牌女装。

2023-09-15 15:15:59 61

原创 [JUC] 通过ReentrantLock源码理解AQS的原理 (二)

四、通过ReentrantLock理解AQS原理2.ReentrantLock加锁机制:在上篇文章学习到了- 创建ReentrantLock对象-初次加锁的逻辑- 同一线程第二次加锁 (可重入性)的逻辑。现在我们回到我们最初的代码。public class ReentrantLockDemo1 { private static ReentrantLock lock = new ReentrantLock(); public static void main..

2021-07-19 01:44:26 106

原创 [JUC] 通过ReentrantLock源码理解AQS的原理 (一)

public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer implements java.io.Serializable { ...... static final class Node {...} private transient volatile Node head; private transient volatile Node tail;.

2021-07-19 00:34:37 113

原创 [JUC] LockSupport 相关原理和使用的学习

一、什么是LockSupportLockSupport是java.util.concurrent.locks包下面的一个类。在java并发包下各种同步组件的底层实现中,LockSupport的身影处处可见。JDK中的定义为用来创建锁和其他同步类的线程阻塞原语。我们可以使用它来阻塞和唤醒线程,功能和wait,notify有些相似,但是LockSupport比起wait,notify功能更强大,也好用的多。并发组件和并发工具大都是基于AQS来实现的, AQS就是AbstractQueuedSynchro

2021-07-13 01:19:16 219

转载 [JUC] sun.misc.Unsafe的原理 【转载】

什么是UnsafeUnsafe类在JDK源码中被广泛使用,在Spark使用off-heap memory时也会使用到,该类功能很强大,涉及到类加载机制,其实例一般情况是获取不到的,源码中的设计是采用单例模式,不是系统加载初始化就会抛出SecurityException异常。这个类的提供了一些绕开JVM的更底层功能,基于它的实现可以提高效率。(通常是直接操作内存)但是,它是一把双刃剑:正如它的名字所预示的那样,它是Unsafe的,它所分配的内存需要手动free(不被GC回收)。如果对Unsafe类理解

2021-07-12 23:25:39 124

原创 [JUC] Java Util Concurrent包的认识

jDK1.5开始,java增加了对并发处理的包java.util.concurrent. 该包在很多并发需求下有大量的使用需要。所以应该更多的去了解包的内容。下面是这个包的结构图。该包下面主要分5部分:collections:并发相关的集合的工具。如List,Set,Map和Queue tools:并发所用到的一些常用工具,这部分因为常常用到,所以需要牢记。 locks:并发用到的锁的概念,相对于synchronized隐式锁更加强大与灵活,并且对锁的操作花费的代价更低。要想在并发开发过程.

2021-07-12 16:40:42 113

原创 [多线程]Synchronized与java.util.concurrent.locks.Lock

我们学习的时候常常使用Synchronized关键字来做代码块或者方法等资源的同步操作。但是java.util.concurrent包中也提供了lock对象来手动的为自己的代码加锁。下面有相关的不同点,仅供参考:1.Synchronized: java内置关键字, Lock 是一个java util包下的类2.Synchronized: 无法判断获取锁的状态, Lock可以判断是否获取到了锁3.Synchronized: 会自动释放锁, Lock必须要手动释放锁,如果不释放,会造成死...

2021-07-04 23:48:05 207

原创 Ribbon -学习源码解析

Ribbon- 学习源码解析标记RestTemplate对象当我们使用@LoadBalanced标签对我们调用微服务提供方接口的RestTemplate类做注解的时候。这一步就是其实在标签里什么都没做,只是在spring容器中的RestTemplate对象打了一个标记。 @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); }Spri

2020-09-20 21:13:47 84

原创 学习客户端负载均衡 - Ribbon

什么是负载均衡负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。 一个没有用负载均衡的web架构类似下图: 在这里用户是直连到 web 服务器,如果这个服务器宕机了,那么用户自然也就没办法访问了。另外,如果同时有很多用户试图访问服务器,超过了其能处理的极限,就会出现加载速度缓慢或根本无法连接的情况。从图里可以看到,用户访问负载均衡器,再由负载均衡器将请求转发给后端服务器。在这种情况下,单点故障...

2020-09-18 01:21:49 158

原创 Springboot中的自动装载与初始化

Springboot中的自动装载ImportSelectorImportSelector接口是Spring导入外部配置的核心接口,在SpringBoot的自动化配置和@EnableXXX(功能性注解)中起到了决定性作用。当在@COnfiguration标注的Class上使用@Import引入了一个ImportSelector实现类后,会把实现类中返回的Class名称都定义为bean手动实现自动装载代码创建一个测试module跳过解释,直接创建出来不需要做任何配置创建一个需要被

2020-09-18 01:14:43 176

转载 Eureka的配置项详解

Eureka的配置项详解:Eureka instance 配置项#服务注册中心实例的主机名eureka.instance.hostname=localhost#注册在Eureka服务中的应用组名eureka.instance.app-group-name=#注册在的Eureka服务中的应用名称eureka.instance.appname=#该实例注册到服务中心的唯一IDeureka.instance.instance-id=#该实例的IP地址eureka.instance.ip

2020-09-18 01:05:24 7284 1

原创 Eureka Server的高可用实现 - Eureka 集群模拟

Eureka 实现高可用实现Eureka Server需要满足下面的条件实现高可用 需要有多个Eureka Server 微服务需要注册到所有Eureka Server上 消费者可以从各个Eureka Server上拉取服务 Eureka Server之间需要彼此通讯,信息同步和备份 实例模拟Eureka高可用准备两个EurekaServer 1号server: 9100端口 spring: application:

2020-09-18 00:52:28 174

原创 学习将Eureka引入到微服务架构到springcloud项目中

引入步骤搭建Eureka Server创建工程创建一个module用于搭建EurekaServer导入依赖pom.xml文件中加入对Eureka的支持<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starte

2020-09-18 00:41:48 318

原创 学习微服务注册解决方案和Eureka的实现

微服务注册解决方案和Eureka微服务架构会遇到的问题调用地址硬编码到了微服务的java代码中。 正式应用的时候微服务会有一大堆,调用方端需要记录维护每一个其他微服务的地址。增加了开发难度 微服务调用做负载均衡会有问题。 调用关系链路复杂,导致追踪困难服务注册Eureka (AP型注册中心)微服务注册中心注册中心可以说是微服务架构中的“通讯录”, 它记录了服务和服务地址的映射关系。在分布式系统架构中,服务会注册到这里,当服务需要调用其他服务时,就这里找到服务的地址,进行调用.

2020-09-18 00:29:44 170

原创 手动搭建微服务基本架构案例及步骤

创建一个maven项目初始化父工程创建父工程, 工程名称, AarifactId, 包。 父类工程中的pom中添加引入依赖。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/

2020-09-16 11:36:58 400

原创 学习分布式架构的核心知识

分布式核心知识核心概念远程调用技术 流行的调用技术 RPC: (Remote Procedure Call) 一种进程间的通讯方式,允许像调用本地服务一样调用远程服务。 RPC框架的主要目标就是让远程服务调用更简单透明。 RPC框架负责屏蔽底层的传输方式(TCP or UDP),序列化方式(XML / JOSN / 二进制)。开发人员咋i使用时候只需要了解谁在什么位置图i工了什么样的远程服务接口即可。不需要关心底层通讯细节和调用过程。 HTTP Restf

2020-09-16 11:16:02 229

原创 浅谈和学习项目系统架构的演变

# 系统架构演变## 单体应用架构> 一个完整的项目中包含所有的模块。![Screen Shot 2020-09-15 at 1.45.42 AM](/Users/tangyu/Desktop/study notes/pic/Screen Shot 2020-09-15 at 1.45.42 AM.png)- 优点: 开发简单,适用于小型应用- 缺点: 不以拓展,维护,代码耦合度高。## 垂直应用架构> 一个项目可以拆分成若干个子项目![Screen Shot 20

2020-09-16 10:53:07 107

原创 Springboot + swagger2 配置步骤及相关知识

通过学习,总结一下关于swagger2的应用场景和springboot集成swagger2的方法。本次学习有四块swagger2介绍 swagger2 应用场景 swagger2与springboot环境搭建 swagger2与springboot开发配置相关 swagger2 介绍 swagger官方网站: https://swagger.io/ 从官网上面基本上找不到swagger的介绍,只说是API文档生成框架,是一个规范和完整的框架,...

2020-09-13 00:12:32 2214

原创 关于Docker的学习资料 - 04 - docker build的一些基本操作

Dockerfile创建完成后,可以使用docker build命令根据Dockerfile构建一个镜像。在上一节中,我们在Dockerfile所在的文件夹下执行docker build -t myimage .这条命令,然后镜像就被构建了。现在我们来详细地讲这条命令。该docker build的命令格式如下:[quote]# docker build[OPTIONS]上下文路径...

2018-03-18 22:02:03 309

原创 关于Docker的学习资料 - 03 - Dockerfile 文件内容介绍

[size=medium][color=green]1. Dockerfile 文件内容[/color][/size] 基本上,一个Dockerfile包含以下的内容:[quote]# version 0.0.1-snapshot# 从一个基础镜像centos:6.8开始构建FROM centos:6.8# 维护者信息MAINTAINER hylexus "hylexu...

2018-03-18 18:02:56 125

原创 关于Docker的学习资料 - 02 - MacOS下Docker的安装

本文转载自 https://www.cnblogs.com/yu-hailong/p/7629130.html仅用于自我收藏学习,不做商业和推广用途 系统要求Docker for Mac 要求系统最低为 macOS 10.10.3 Yosemite,或者 2010 年以后的 Mac 机型,准确说是带 Intel MMU 虚拟化的,最低 4GB 内存。如果系统不满足需求,可以安...

2018-03-17 00:36:30 130

原创 关于Docker的学习资料 - 01 - Docker简介

本文转载自 http://blog.csdn.net/hylexus/article/details/52834558仅用于自我收藏学习,不做商业和推广用途 docker简介docker组件1 客户端和服务端2 镜像3 Registry4 容器docker的特点和传统虚拟化技术的对比 1 docker简介docker是...

2018-03-17 00:26:15 68

分布式版本控制工具 Mercurial 使用教程 (hg 入门简单命令)

1. 安装版本控制Mercurial直接下载使用Mercurial安装包进行傻瓜式安装,无需解释一用就灵 *改版本控制工具的命令都是以hg开头2. 检查是否安装好。 a. 使用命令 hg version 如果安装成功会显示类似下面的版本信息 Mercurial Distributed SCM (version 0.7) Copyright (C) 2005 M...

2018-03-16 01:42:44 1144

原创 SpringMVC DispatcherServlet中使用的特殊Bean

看了开涛博客里面关于SpringMVC的讲解,感觉特别详细,在这里仅仅将重要的内容再次记录到自己博客,该内容引自开涛的博客。[url]http://jinnianshilongnian.iteye.com/blog/1602617[/url][quote]DispatcherServlet默认使用WebApplicationContext作为上下文,因此我们来看一下该上下...

2014-04-11 15:52:14 381

原创 Spring中的代理模式 AOP XML实现方法

前面跟大家描述了一下我们Spring中使用Annotation实现AOP的方法,如果有需要的童鞋可以参考我的帖子: Spring中的代理模式 AOP Annotation实现方法: [url]http://goalietang.iteye.com/blog/2033825[/url] 今天我们来讲一下用XML配置来实现...

2014-03-20 00:21:13 117

原创 Spring中的代理模式 AOP Annotation实现方法

之前我们有讲过代理模式和动态代理,其实在Spring中的AOP就是一种动态代理的体现。今天我们的话题就是Spring中的代理模式-AOP。 什么是AOP呢?AOP为Aspect Oriented Programming的缩写,意为:面向切面编程(也叫面向方面),可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的...

2014-03-19 23:51:23 268

原创 浅谈设计模式2 -- 代理模式

说到代理模式,我想从字面意思,应该是最容易理解的吧。就是本来该我做的事情,我让别人帮我代做了,我不去管别人怎么做,或者说别人做的时候开始会不会多做点什么,结束会不会多做点什么。反正我只知道,我交代做的事情要一件不差的给我代办好。 举个例子,火车票代购,我事情太多,要找个人代我去买一张火车票。反正我把钱给他了,我的目的就是得到一张票,我管你是偷是抢还是怎样去帮我...

2014-03-18 01:49:52 122

原创 Spring 的配置

[size=medium][b]1.Web项目引入Spring的方式。(web.xml的配置)[/b][/size] spring有三种启动方式,使用ContextLoaderServlet,ContextLoaderListener和ContextLoaderPlugIn spring3.0及以后版本中已经删除ContextLoaderS...

2014-03-17 23:46:15 90

原创 XML 解析(二) JDOM, DOM4J,Digester

延续XML解析的几种方式(一)的代码格式,我们来写一个用JDOM解析XML的方法,这个方法首先依赖于外部包org.jdom。让我们仔细看看代码,知道他解析XML的简单和效率。[code="java"]public class ExecuteXMLwithJDOM implements XMLExecutor { //JDOM创建XML public v...

2014-03-13 02:05:16 162

原创 XML 解析(一) 原始的DOM和SAX解析(用于理解解析原理)

我们今天的话题是XML的解析。现在做项目很多时候用到框架,就算不用到SSH这些通用框架,每个公司基本上也会用到自己的一些框架技术。而说到框架技术,很重要的一点就是可配置。而XML的使用则是实现可配置的重要条件。我们的配置文件无非是properties和xml,但是因为properties支持的仅仅是键值对的方式,不利于复杂的表述和扩展。所以很多框架上还是提倡使用XML来实现配置。闲...

2014-03-13 00:54:29 149

原创 浅谈设计模式1 -- 责任链模式

设计模式之责任链模式,在Gof的《设计模式》巨作里面是被这样定义的:[quote] 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。[/quote] 在比较容易理解的阎宏博士的《JAVA与模式》一书里面,又是这样被定义的:[quote] ...

2014-03-11 01:30:10 128

利用JDOM解析XML的例子

这是一个利用JDOM解析XML的方法,虽然for循环比较繁琐,但是容易理解,有利于初学者学习

2008-10-27

一个关于Digiest解析XML的例子

这是一个利用Digiest来解析XML的例子,用他解析xml很简单,不过在解析前首先应该对应xml标签来建立JAVABean

2008-10-27

空空如也

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

TA关注的人

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