- 博客(88)
- 资源 (3)
- 收藏
- 关注
原创 在Spring Cloud Alibaba中把Nacos集群与Nginx反向代理整合的步骤
介绍了在Spring Cloud Alibaba中把Nacos集群与Nginx反向代理整合的步骤
2025-02-14 15:55:00
535
原创 把Nacos服务器上的配置属性持久化到MySQL数据库中-Spring Cloud Alibaba微服务开发专题
在Spring Cloud Alibaba中把Nacos服务器上的配置属性持久化到MySQL数据库中
2025-02-13 19:00:37
789
原创 在Spring Cloud Alibaba中Nacos与GateWay的整合步骤
介绍在Spring Cloud Alibaba中Nacos与GateWay的整合步骤。
2025-02-13 15:35:49
698
原创 在Spring Cloud Alibaba框架中通过IDEA如何启动微服务的多个实例
介绍在Spring Cloud Alibaba框架中通过IDEA启动微服务的多个实例的方法
2025-02-13 15:15:30
529
原创 Nacos的安装和启动步骤详解-Spring Cloud Alibaba微服务开发专题
本文摘自孙卫琴的经典书籍《Spring Cloud Alibaba微服务开发零基础入门到实操》,详细介绍了Nacos的安装和启动步骤。
2025-02-13 14:56:48
399
原创 Spring Cloud Alibaba框架包含哪些常用组件
本书深入浅出地讲解了利用Spring Cloud Alibaba框架开发分布式微服务系统的技术,详细阐述了各种组件的用法,包括:注册和配置中心Nacos、负载均衡器LoadBalancer、远程调用组件OpenFeign、远程调用框架Dubbo、流量控制组件Sentinel、网关Gateway、链路追踪组件SkyWalking、消息中间件Stream和 RocketMQ、分布式事务管理框架Seata、分库分表中间件ShardingSphere、分布式缓存数据库Redis、分布式任务调度框架XXL-JOB。
2025-02-13 14:45:26
361
原创 Spring Cloud框架中包含哪些常用组件
下文摘自孙卫琴的经典书籍《Spring Cloud Alibaba微服务开发零基础入门到实操》,介绍了Spring Cloud框架中的常用组件。阿云:“微服务的管理组件从何而来,也需要自己开发吗?这个难度太大了。答主:“有一些开源组织或软件公司已经开发了开源的或商业的微服务管理组件,它们各司其责,有的负责注册微服务,有的负责负载均衡,有的负责远程调用,有的负责分布式事务等。阿云:“要把这些管理组件整合起来,也是很麻烦的事。有没有已经整合好的现成框架呢?答主:“Spring Cloud就是现成的框架。
2025-02-13 14:37:01
259
原创 在高流量高负载的网络环境中微服务产生的由来-Spring Cloud Alibaba微服务开发专题
要解决网站并发访问的瓶颈,也是采取同样的思路,把网站的服务拆分成多个微服务,这些微服务分布在多个主机中,由多个主机同时执行,就能及时响应更多客户的请求了。在传统的Web应用中,由一台Web服务器响应各种各样的客户请求。如图2所示,购物网站拆分成用户管理、订单管理、商品管理等微服务模块,把这些微服务模块部署到多个主机上各自独立运行,就能同时为更多的客户提供服务,从而提高网站的并发性能和运行性能。阿云:“这倒也是,微服务分布在不同的主机中,它们的通信比独立的单体应用程序的内部模块之间的通信要复杂多了。
2025-02-13 14:12:59
849
原创 深度比较Dubbo和OpenFeign进行微服务远程调用的区别-Spring Cloud微服务开发专题
本书深入浅出地讲解了利用Spring Cloud Alibaba框架开发分布式微服务系统的技术,详细阐述了各种组件的用法,包括:注册和配置中心Nacos、负载均衡器LoadBalancer、远程调用组件OpenFeign、远程调用框架Dubbo、流量控制组件Sentinel、网关Gateway、链路追踪组件SkyWalking、消息中间件Stream和 RocketMQ、分布式事务管理框架Seata、分库分表中间件ShardingSphere、分布式缓存数据库Redis、分布式任务调度框架XXL-JOB。
2025-02-13 13:08:25
616
原创 用一个形象比喻帮助初学者一文看懂Spring Cloud Alibaba框架是什么
本书深入浅出地讲解了利用Spring Cloud Alibaba框架开发分布式微服务系统的技术,详细阐述了各种组件的用法,包括:注册和配置中心Nacos、负载均衡器LoadBalancer、远程调用组件OpenFeign、远程调用框架Dubbo、流量控制组件Sentinel、网关Gateway、链路追踪组件SkyWalking、消息中间件Stream和 RocketMQ、分布式事务管理框架Seata、分库分表中间件ShardingSphere、分布式缓存数据库Redis、分布式任务调度框架XXL-JOB。
2025-02-13 12:31:17
735
原创 在Spring Cloud Alibaba微服务框架中通过KeepAlived建立Nginx集群的步骤
本书以一位学习微服务开发的新手阿云向答主(本书作者)请教微服务开发技术为线索,激发读者主动探索知识的学习兴趣,把本来看似深奥复杂的分布式微服务系统如庖丁解牛般剖析得淋漓尽致,浅显易懂。对于不熟悉Java编程的读者,阅读本书,也能领略Spring Cloud Alibaba框架的基本用法和微服务开发的核心思想。(6)在浏览器中通过虚拟IP访问Nginx集群,URL为:http://192.168.100.188,如果看到5.4节的图5-9所示的Nginx的主页面,就表示Nginx集群搭建成功。
2025-02-13 12:27:28
620
原创 Spring Cloud Alibaba、Spring Cloud和Spring Boot的版本匹配
Spring Cloud Alibaba框架依赖Spring Cloud和Spring Boot,要求三者的软件版本匹配,才能顺利地整合到一起。想学习Spring Cloud Alibaba,推荐孙卫琴姐姐刚出版的《Spring Cloud Alibaba微服务开发零基础入门到实操》图1 Spring Cloud Alibaba、Spring Cloud、Spring Boot的版本匹配关系。在以上网址,还列出了Spring Cloud Alibaba和各个微服务管理组件的版本的匹配关系,参见图2。
2025-02-13 11:36:38
248
原创 推荐一本微服务开发经典书籍《Spring Cloud Alibaba微服务开发零基础入门到实操》
本书深入浅出地讲解了利用Spring Cloud Alibaba框架开发分布式微服务系统的技术,详细阐述了各种组件的用法,包括:注册和配置中心Nacos、负载均衡器LoadBalancer、远程调用组件OpenFeign、远程调用框架Dubbo、流量控制组件Sentinel、网关Gateway、链路追踪组件SkyWalking、消息中间件Stream和 RocketMQ、分布式事务管理框架Seata、分库分表中间件ShardingSphere、分布式缓存数据库Redis、分布式任务调度框架XXL-JOB。
2025-02-09 18:05:54
287
原创 福利:Spring Cloud Alibaba微服务开发零基础入门到实操-经典视频课程-免费观看(121集)-孙卫琴主讲
视频课程观看网址:Spring Cloud Alibaba微服务开发从入门到实操-121集经典视频课程-孙卫琴主讲课程源代码下载网址:Spring Cloud Alibaba微服务开发从入门到实操-范例源代码课程PPT讲义下载网址:配套PPT讲义-供教学和自学用本课程的配套参考书籍是孙卫琴老师创作的《Spring Cloud Alibaba微服务开发零基础入门到实操》,书的详细信息参见:《Spring Cloud Alibaba微服务开发零基础入门到实操》技术支持 (javathinker.net)本课程循
2025-02-09 18:03:00
800
原创 在Java类中使用自定义注解
在Person类的源代码中,在类的前面使用了@Programmer注解,在构造方法前使用了@ConstructorNote注解,在成员变量、成员方法和参数前使用了@Common注解。在编译Person类时,由于它所引用的三个自定义注解的有效范围都是RetentionPolicy.RUNTIME,因此编译器会把这些注解编译到Person类的类文件中。接下来就可以在其他类中使用这三个注解。因此用JDK的javadoc命令为Person类生成的JavaDoc文档中,会包含@Programmer注解信息。
2023-10-14 09:28:49
221
原创 用Java内置注解来限定自定义注解的技巧
Inherited注解是标识性注解,指定@MyAnnotation注解可以被继承。假定在声明@MyAnnotation注解时使用了@Inherited注解,在声明Sample类时使用了@MyAnnotation注解,那么Sample类的子类也会继承@MyAnnotation注解,即相当于Sample类的子类在声明时也使用了@MyAnnotation注解。@Target注解用来指定@MyAnnotation注解所适用的目标,即@MyAnnotation注解可以为源代码中的哪些内容做注解。
2023-10-14 09:25:00
162
原创 一文看懂什么是Java自定义注解类型
为了把注解类型和其他Java类型区分开发,在引用注解时以@开头,例如以上代码定义了@MyAnnotation注解。当@MyAnnotation注解的类体为空“{}”,不包含任何成员,这样的注解称为标识型注解。以上default关键字用于为成员设定默认值。在以上代码中,value成员的默认值为“默认构造方法”,type成员的默认值为“void.class”。注解也属于一种Java类型,用@interface标记声明。如果注解中只有一个成员,通常把它命名为value。
2023-10-14 09:19:18
122
原创 《Java面向对象编程》导读-趣味讲解Java注解的作用
Java软件应用之间进行协作,最常见的方式是调用接口的方法。而注解为Java软件应用之间的协作提供了另外一种便利途径。如果把宠物狗和主人比作两个软件系统,那么安装在狗身上的定位器就类似于注解。主人无法直接让狗汇报自己所处的位置,但是主人可以通过读取定位器的信息来了解狗的行踪。同样,如果软件应用A希望从软件应用B中获取与程序代码相关的元数据,软件应用B就可以用注解来指定这些元数据。Java应用程序中插入由Spring框架定义的注解。安装在宠物狗身上的定位器就像源程序中的注解。
2023-10-14 08:30:06
83
原创 孙卫琴的《精通JPA与Hibernate》的读书笔记:JPA的事件处理API的用法
JPA API也提供了处理事件的办法,它主要包括两个步骤:(1)创建监听器类。(2)在持久化类中通过@EntityListeners注解来注册监听器。1.创建监听器类监听器类不需要实现特定的接口,可以是任意的Java类,例如以下MyLastUpdateListener类就是一个监听器类。/* MyLastUpdateListener.java */package mypack;import javax.persistence.*;import java.util.*;public clas
2022-08-31 09:04:19
201
原创 孙卫琴的《精通JPA与Hibernate》的读书笔记: 用JPQL批量处理数据
JPA的JPQL(JPA Query Language,JPA查询语言)不仅可以检索数据,还可以用于进行批量更新、删除和插入数据。批量操作实际上直接在数据库中完成,所处理的数据不会被保存在Session的持久化缓存中,因此不会占用内存空间。Query.executeUpdate()方法和JDBC API中的PreparedStatement.executeUpdate()很相似,前者执行用于更新、删除和插入的JPQL语句,而后者执行用于更新、删除和插入的SQL语句。1.批量更新数据以下程序代码演示通过
2022-08-31 09:03:57
277
原创 孙卫琴的《精通JPA与Hibernate》的读书笔记:通过JPA处理Blob和Clob类型的数据
在持久化类中,二进制大对象可以声明为byte[]或java.sql.Blob类型;字符串大对象可以声明为java.lang.String或java.sql.Clob类型。java.sql.Blob和java.sql.Clob是JDBC API中的接口。在默认情况下,Blob和Clob接口的实现会使用SQL定位器,这意味着当程序从数据库加载Blob类型或Clob类型的数据时,实际上加载的仅是Blob类型或Clob类型的数据的逻辑指针。接下来程序需要通过Blob.getBinaryStream()或Clob.
2022-08-31 09:03:30
1022
原创 孙卫琴的《精通Vue.js》读书笔记-组件的递归
在一个组件的模板中,还可以嵌套自身组件,这样就构成了组件的递归。为了避免无限递归,需要设置递归的结束条件。在例程1的recursive.html中,组件的模板会插入自身组件,从而递归遍历访问list数组中的所有嵌套的元素。模板中“”的v-if指令用来设置递归结束条件,当list数组为空,就结束递归。通过浏览器访问recursive.html,会得到如图1所示的网页,list数组中的嵌套内容会以缩进对齐的方式一层层展示出来。图1 recursive.html的网页。本文参考孙卫琴,杜聚宾所创作的。.....
2022-08-31 09:02:29
110
原创 孙卫琴的《精通Vue.js》读书笔记-在Vue项目中使用Axios
本文参考孙卫琴,杜聚宾所创作的一书为了在Vue项目中使用Axios,首先要安装Axios插件,还有可选的Vue-Axios插件。Vue-Axios插件能够把Axios与Vue更方便地整合在一起,允许组件通过this.axios的形式来访问Axios。在src/main.js中引入Axios和Vue-Axios插件,参见例程1。例程1 main.js接下来在Vue组件的代码中就可以通过this.axios的形式来访问Axios了。...
2022-08-31 09:01:53
266
原创 孙卫琴的《精通Vue.js》读书笔记-Vuex中异步操作
本文参考孙卫琴,杜聚宾所创作的一书此外,还可以通过async/await来执行异步操作,例如。
2022-08-31 09:01:16
238
原创 孙卫琴的《精通Vue.js》读书笔记-自定义指令范例:v-drag指令
本文介绍一个比较复杂的自定义指令v-drag,它支持用鼠标来拖曳网页上的特定DOM元素,参见例程1的v-drag.html。用鼠标选中任意一个方框,在整个网页的区域内移动鼠标,方框就会随之移动,松开鼠标,方框就停止移动。在v-drag.html页面上有两个不同颜色的方框,分别对应两个。通过浏览器访问v-drag,html,会出现图1所示的网页。图1 v-drag.html的网页。本文参考孙卫琴,杜聚宾所创作的。例程1 v-drag.html。...
2022-08-31 09:00:44
170
原创 孙卫琴的《精通Vue.js》读书笔记-插槽slot的基本用法
答案是肯定的,可以使用Vue的插槽组件来实现。(2)父组件的模板为子组件模板中的组件提供内容,子组件模板的组件读取父组件提供的内容,并把它插入到子组件模板中。在basic.html中,根组件就是组件的父组件。由此可见,组件模板中的组件就像占位标记,它能够把父组件提供的内容插入到子组件模板中组件所在的位置。Vue组件可以像DOM元素一样插入到父组件的模板中。组件模板中的组件能够读取以上内容“Hello”,并把它插入到组件的模板中。(1)在子组件的模板的特定位置插入组件,表示此处存在一个插槽。...
2022-08-30 15:17:25
166
原创 孙卫琴的《精通Vue.js》读书笔记-分割setup()函数
本文参考孙卫琴,杜聚宾所创作的一书Vue框架的组合API的主要用途是更加灵活地对项目进行模块化的分割。当setup()函数本身非常庞大,也必须对它进行分割,这样才能发挥组合API的特长。对setup()函数的分割包括两个步骤:(1)把setup()函数分割成多个函数。把处理相关业务逻辑的代码分割到同一个函数中。(2)把从setup()函数中分割出来的每个函数放到单独的.js文件中。...
2022-08-30 15:15:01
337
原创 孙卫琴的《精通Vue.js》读书笔记-CSS中DOM元素的过渡模式
通过浏览器访问mode.html,网页一开始显示红色的div1,点击网页上的“切换”按钮,div1进入隐藏过渡阶段,与此同时,div1下方的蓝色的div2进入显示过渡阶段。通过浏览器访问mode.html,网页一开始显示红色的div1,点击网页上的“切换”按钮,div1下方的蓝色的div2进入显示过渡阶段。(2)in-out: B先进入显示过渡阶段, B过渡结束后, A再进入隐藏过渡阶段,A过渡结束后, B取代A的位置。(1)默认:A和B同时过渡,过渡结束后, B取代A的位置。...
2022-08-30 15:11:37
227
原创 孙卫琴的《精通Vue.js》读书笔记-命名路由
本文参考孙卫琴,杜聚宾所创作的一书路由可以通过name属性来设置名字,这样便于在其他场合引用路由。由于上述组件的to属性是一个对象表达式,所以需要通过v-bind指令来为to属性赋值。以上组件的to属性的取值为{name: ‘item’, params: {id: item.id}},params属性用来为路径中的id路径参数赋值。做了上述修改后,再次运行helloworld项目,会发现通过路由的名字,也能在网页上正确地导航到Items组件和Item组件。...
2022-08-30 15:09:15
250
原创 孙卫琴的《精通Vue.js》读书笔记-路由管理器的基本用法
根组件模板中的组件会根据当前的路由显示相应的组件。组件可以放置在模板的任意位置,相当于一个占位标记,实际要显示的组件会被插入到组件所在的位置。在myroute.html网页上选择“主页”或“关于我们”的链接,路由管理器就会根据它的routes属性所设定的路由,显示相应的HomeComponent组件或AboutComponent组件。路由管理器的routes属性指定路由,即网页中待显示的各个组件和链接的对应关系。在myroute.html中,根组件模板中的组件和组件都来自于Router路由管理器。...
2022-08-30 15:06:08
222
原创 孙卫琴的《精通Vue.js》读书笔记-路由导航中抓取数据
本文参考孙卫琴,杜聚宾所创作的一书当用户在浏览器端进行路由导航时,有些目标路由的组件需要从服务器端抓取数据,再把这些数据显示到网页上。抓取数据有两种方式:(1)导航后抓取:在导航完成后,在目标路由的组件的生命周期函数中抓取数据。在抓取的过程中,可以在网页上显示“正在加载中…”的提示信息。(2)导航前抓取:先在导航守卫函数beforeRouteEnter()和beforeRouteUpdate()中抓取数据,接下来再进行导航。...
2022-08-30 15:03:39
176
原创 孙卫琴的《精通Vue.js》读书笔记-Vue组件的单向数据流
如果在oneflow.html的网页的输入框输入新的数字,根组件的data1和data2变量会发生更新,组件的v1和v2属性也会被同步更新。由此可见,当父组件的变量与子组件的属性绑定后,如果父组件的变量发生更新,那么子组件的属性会同步更新。子组件获得了父组件传入的属性值后,如果仅仅把它作为初始值,以后还需要做独立于父组件的特定的更新,或者需要依据子组件的属性推算出其他数据,该怎么办呢?在例程1的oneflow.html中,根组件在自己的模板中会把变量data1和data2传给子组件的属性v1和v2。...
2022-08-30 15:00:29
340
原创 孙卫琴的《精通Vue.js》读书笔记-注册全局组件和局部组件
本文参考孙卫琴,杜聚宾所创作的一书普通Vue组件按照使用范围,可以分为两种:(1)全局组件:通过Vue应用实例的component()方法注册,可以直接被其他Vue组件访问。(2)局部组件:只有父组件通过components选项注册了一个局部组件,父组件才能访问该局部组件。无论是全局组件还是局部组件,都具有data、methods、computed和watch等选项,而且和根组件一样,也具有类似的生命周期以及生命钩子函数。......
2022-08-30 14:56:37
268
原创 孙卫琴的《精通Vue.js》读书笔记-Vue组件的命名规则
对于组件的属性和事件,它们的名字可以遵守lower-kebab-case或者lower-camel-case命名规则。例如“nameOfStudent”就是符合lower-camel-case命名规则的属性名,“name-of-student”是符合lower-kebab-case命名规则的属性名。从表1可以看出,无论组件的名字采用lower-kebab-case或者upper-camel-case命名规则,在外置模板中总是使用lower-kebab-case命名规则。(1)名字中的所有字符采用小写。...
2022-08-30 14:52:17
238
原创 孙卫琴的《精通Vue.js》读书笔记-Vue组件的数据监听
如果Vue组件的一个变量num会被频繁更新,并且当变量num每次被更新时,需要进行一系列耗时的操作,比如访问远程服务器的资源,或者通过复杂耗时的运算更新那些依赖变量num的其他变量(比如result变量)。在这种情况下,可以通过Vue框架的数据监听器Watcher来实现对变量num的监听。Vue的watch选项会通过Watcher来监听数据。例程1的mywatch.html演示了watch选项的基本用法。例程1 mywatch.html。......
2022-08-30 11:59:42
308
原创 孙卫琴的《精通Spring》的学习笔记:在SpringCloud中创建并注册微服务
本文选自孙卫琴的《精通Spring:Java Web开发技术详解》清华大学出版社出版技术支持网址为:www.javathinker.net/spring.jsp本书对应的直播和录播课:www.javathinker.net/zhibo.jsp孙卫琴的QQ学习答疑群:915851077本文将创建一个包含微服务的servicemodule模块,并且把当前模块注册到Eureka服务器中。如图1所示,servicemodule模块包含以下内...
2021-10-07 21:14:24
273
原创 孙卫琴的《精通Spring》的学习笔记:用WebFlux框架上传和下载文件
本文选自孙卫琴的《精通Spring:Java Web开发技术详解》清华大学出版社出版技术支持网址为:www.javathinker.net/spring.jsp本书对应的直播和录播课:www.javathinker.net/zhibo.jsp孙卫琴的QQ学习答疑群:915851077本文介绍在WebFlux框架中采用异步非阻塞的方式上传或下载文件。以下例程1的FileController类的upload()方法和download()方法分别...
2021-10-07 21:10:51
922
3
原创 孙卫琴的《精通Spring》的学习笔记:WebFlux框架的函数式开发模式
本文选自孙卫琴的《精通Spring:Java Web开发技术详解》清华大学出版社出版技术支持网址为:www.javathinker.net/spring.jsp本书对应的直播和录播课:www.javathinker.net/zhibo.jsp孙卫琴的QQ学习答疑群:915851077所谓函数式开发模式,是和面向对象开发模式相对的一个概念。在面向对象的开发模式中,对象是程序中的主角,程序在运行时会创建各种对象,这些对象产生各种行为,彼此之间互相协...
2021-10-07 21:06:45
761
原创 孙卫琴的《精通Spring》的学习笔记:支持分页和排序的Repository 接口
本文选自孙卫琴的《精通Spring:Java Web开发技术详解》清华大学出版社出版技术支持网址为:www.javathinker.net/spring.jsp本书对应的直播和录播课:www.javathinker.net/zhibo.jsp孙卫琴的QQ学习答疑群:915851077PagingAndSortingRepository接口能够对查询结果进行分页或排序。该接口声明了以下两个查询方法:Page<T> findAll(Pa...
2021-10-07 21:02:38
240
福利:Spring Cloud Alibaba微服务开发零基础入门到实操-ppt讲义-免费下载-孙卫琴主讲
2025-02-12
孙卫琴的Java对象持久化技术之旅视频精讲
2021-06-19
文本编辑器(EmEditor Pro) V16.1.4 绿色便携版.rar
2020-05-18
孙卫琴的Java分布式架构视频精讲
2020-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人