- 博客(87)
- 资源 (1)
- 问答 (15)
- 收藏
- 关注
原创 在Spring框架中实现属性配置动态刷新,不需要重启应用。
相当于增加一份配置文件,它可以来源于文件或网络,这取决于你如何拿到数据。下面是一个示例,这个属性源有一个名字:myPropertySource,里面只包含了一个属性:abc_123。/*** 自定义属性源} }事实上你可以从外部网络,比如某个HTTP接口获取一堆属性值,对于你来说无非是将它们映射成KV结构。当然你用其它结构也可以,但是要保证能将一堆属性存储下来,并且能够根据名字(键)快速查找出来。/*** 自定义属性源,从HTTP接口获取配置属性集。
2023-03-19 12:26:50
2397
原创 在Spring boot项目中实现多数据源的方案
定义一个拦截器,在请求时检查Controller类和方法上的注解,根据配置的值设置当前请求用什么数据源。在请求响应回去时清除当前线程绑定的数据,做一个资源的释放动作。在实际项目开发过程中,因为业务发展和技术实现的需要,我们会在项目中同时连接多个数据库,具体该怎么做呢?解决异步执行时上下文传递的问题。
2023-02-21 04:00:00
752
原创 在elasticsearch8.3中安装elasticsearch-analysis-ik中文分词插件
在elasticsearch8.3中安装elasticsearch-analysis-ik中文分词插件。
2023-02-18 11:54:26
955
原创 在Spring框架中创建Bean实例的几种方法
我们希望Spring框架帮忙管理Bean实例,以便得到框架所带来的种种功能,例如依赖注入等。将一个类纳入Spring容器管理的方式有几种,它们可以解决在不同场景下创建实例的需求。为了获取Spring容器,一般会创建一个工具类,方便开发者在代码任意位置就能拿到容器,下面代码可以拿走即用。获取ApplicationContext来构建。
2023-02-17 10:36:43
426
原创 在Linux环境安装ElasticSearch8.3和Kibana8.3
在Linux环境安装ElasticSearch8.3和Kibana8.3。
2023-02-15 23:17:16
373
原创 在Linux环境安装ElasticSearch8.3和Kibana8.3
title: 在Linux环境安装ElasticSearch8.3和Kibana8.3。
2023-02-14 22:34:56
440
原创 介绍架构分类、设计及架构师工作
本文从理论上分析、梳理架构相关知识,帮助自己更好的理解架构工作。关于架构的定义业界有太多不同的定义,但大同小异、本质趋同,只不过侧重各有不同,就以IEEE(电气和电子工程师协会)的定义来说:架构描述了一个系统的基本组织结构,包含了组成系统的组件、组件之间的关系、组件与环境之间的关系,以及指导上述内容进行设计和演化的原则。系统组织起来完成一系列功能的组件集组件组件是一个系统模块化的某部分,从设计角度来理解组件其实就是一系列功能集的封装体。环境。
2023-02-11 10:46:10
543
原创 领域驱动设计统一过程交付物
对目标系统整体业务需求的描述,展开对整个问题空间的探索,划分核心子领域、通用子领域和支撑子领域,可附上子领域映射图。more绘制系统上下文图,明确解空间的系统边界。描述核心子领域提供的业务能力,并以列表方式给出每个应用组件的说明,为其绘制上下文映射图,体现该子领域内各个应用组件的协作关系。
2023-02-10 22:22:45
553
原创 Mac下安装minikube在拉取镜像时失败ImagePullBackOff
Mac下安装minikube在拉取镜像时失败ImagePullBackOff
2023-02-09 21:20:08
1196
原创 Hystrix使用介绍
通常一个分布式系统是由许多相互依赖的服务所组成的,这些被依赖的服务极易出现故障或响应延迟的问题。如果其中某个服务失败则会影响其他服务并进一步降低整体性能,并导致应用程序其他功能无法正常访问,在最坏的情况下,整个应用程序将崩溃。Hystrix框架通过提供熔断和降级来控制服务之间的交互依赖,通过隔离故障服务并停止故障的级联效应以提高系统的总体弹性。当依赖的远程服务开始变慢时,应用程序仍然会继续调用该远程服务,该应用程序不知道远程服务是否正常,并且每次请求进入时都会产生新线程。
2023-02-08 21:15:55
298
原创 基于Apache Maven构建多模块项目
多模块项目由管理一组子模块的聚合器 POM 来构建。在大多数情况下聚合器位于项目的根目录中,并且必须是pom类型的项目。子模块是常规的 Maven 项目,它们可以单独构建,也可以通过聚合器 POM 构建。通过聚合器 POM 构建项目时会一并构建下属的所有子模块。
2023-02-08 21:15:10
335
原创 ApacheMaven插件开发
ApacheMaven插件开发Apache Maven本身实际上只是一个插件驱动引擎。换句话说,真正干活的是插件,例如:创建jar文件,创建war文件,编译代码,单元测试代码,创建项目文档等。
2023-02-08 21:14:00
342
原创 在maven中处理多环境配置问题
在maven中处理多环境配置问题实际工作中项目会依次部署到多套环境,例如测试、灰度和生产。一般来说每套环境的资源地址都是独立的,这意味着项目在构建时要动态决定启用哪套配置以适应当前的环境。下面介绍在maven中实现根据环境动态处理配置的两种方式。
2023-02-08 21:13:49
688
原创 JDK源码分析之Hashtable
本类是接口的一个线程安全实现,自JDK1.0时就被添加进来。任何非空对象都可以用作键或值。为了保证从哈希表存储和检索对象,用作键的对象必须实现hashCode方法和equals方法。为什么说Hashtable是线程安全的呢?因为它里面的方法均加上了synchronized,在保证多线程并发修改时的安全性同时也降低了程序性能。建议构造Hashtable时明确指出初始容量和负载因子,如果触发扩容动作会增加程序无谓消耗,所以对于已知容量的情况下一定要指定这两个参数。
2023-02-08 21:13:10
117
原创 解决 IDEA 下载源码失败的问题maven-default-http-blocker (http://0.0.0.0/) Blocked mirror for repositories
解决 IDEA 下载源码失败的问题maven-default-http-blocker (http://0.0.0.0/) Blocked mirror for repositories。查到是 maven 3.8.1 版本带来的限制,详见。最后解决这个问题也比较简单,使用。
2023-02-08 21:12:53
759
原创 在ElasticSearch6.8及以上版本开启安全认证功能
在ElasticSearch6.8及以上版本开启安全认证功能在6.8之前免费版本并不包含安全认证功能,之后版本有开放一些基础认证功能,对于普通用户来说是够用的。免费版本需要同时在ES和kibana端开启安全认证功能,下面介绍如何操作。
2023-02-07 09:48:33
1270
原创 SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder
当项目启动时若出现SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder错误,可通过添加具体日志实现框架解决。
2023-02-07 09:48:24
1934
原创 利用redis实现分布式锁
Redis是一个理想的选择。作为轻量级内存数据库,它具有快速,事务性和一致性等特点,这是我们分布式锁所需的关键特性。锁本身很容易,因为它只是redis数据库中的一个key。那如何设置锁定状态呢?使用SET命令保存某个key。然后使用GET命令查询上步设置进去的key是否存在,如果存在则表示锁定了该资源。不过如果使用两条命令来达到目的,显然会因为网络延时造成假锁的问题,这在线程并发激烈时最容易出现。好在redis提供了SETNX命令,它可以直接满足我们的要求,也就是不需要像刚才那样再发一条GET。
2023-02-07 09:47:29
108
原创 使用MapStruct框架实现Bean之间属性映射
MapStruct是一个代码生成器,它基于约定优于配置的方法极大地简化了Java bean类型之间映射的实现。通过上面的介绍我们应该能够理解到这么几点,首先它是一个代码生成器,就是用来帮开发者自动生成代码的工具,只需要通过简单的代码就可以实现原来手工编写的样板代码,因为它采用约定大于配置的设计思想,所以开发者只需要掌握简单的代码编写就可以了。也就是说人家框架帮你自动生成了原先手工编写的代码,但实际上那些手工编写的代码还是存在的,只不过你没有编写,框架帮你自动生成了而已。
2023-02-07 09:47:26
414
原创 构建基于SpringBoot2和Dubbo2.7的微服务应用开发框架
简单点说就是一个完整的应用被拆分成了多个应用,每个拆出来的应用都可以单独部署,每个应用负责原来那个完整应用的一部分功能,只有当这些应用全部提供服务时才是完整的。这其实很好理解,举个例子,比如某商城系统被划分成了营销子系统、订单子系统和会员子系统,在这里面每个子系统有其固有职责,对于整个商城系统来说是不可缺少的一部分,通常这种划分也被称为垂直拆分。其实所谓微服务应用算是分布式应用的一种特殊形式,它们之间区别不大,相同点很多。唯一比较明显的区分是前者对系统拆分的更加细。
2023-02-07 09:47:13
396
原创 在CentOS上使用CGroups隔离硬件资源
和参数单位是微秒,其中前者是指一个周期内总的可用运行时间,后者是指一个周期的长度,它们可以配合起来限制CPU的运行时间,下面列举几组例子让大家更容易理解。如果period为250ms且quota为250ms,那么该控制组每250ms将获得1个CPU运行时间。如果period为500ms且quota为1000ms,那么该控制组每500ms将获得2个CPU运行时间。如果period为50ms且quota为10ms,那么该控制组每50ms将获得1个CPU的20%运行时间。
2023-02-07 09:47:06
783
原创 使用jvisualvm连接JMX远程端口监控jvm内部情况
title: 使用jvisualvm连接JMX远程端口监控jvm内部情况对于应用程序的监控是必要的,特别是在生产环境上,我们应该始终能够提前发现潜在的问题,并在问题产生后要第一时间就知道。在真实的业务运营中监控是多维度的,几乎涵盖了软硬件以及各项业务指标。就java应用程序本身来讲,我们最关注的是jvm的内部情况,比如CPU和堆内存使用率、线程状态和垃圾回收等情况。那如何得到这些监控数据呢?好在JDK里面自带了一些工具帮我们分析这些数据并呈现报告,接下来介绍。more。
2023-02-06 11:13:40
674
原创 在linux服务器上配置基于ssh的免密码登入
在linux服务器上配置基于ssh的免密码登入所谓“免密码”登入远程linux系统,其实并不是真的不需要“密码”,而是不再使用明文密码。我们通过利用RSA加密算法构建一个安全的SSH通道,实际使用时通过证书来双向验证彼此的身份,证书本身可以选择是否加密,如果是那最终还是要有输入密码的过程。more下面介绍如何在两台机器之间配置SSH密钥身份认证。
2023-02-06 11:13:29
319
原创 自定义shell提示符
自定义shell提示符当你登录到一台linux机器后,屏幕会显示shell提示符,它默认由主机名和当前工作目录组成。我们可以更改显示的字符颜色及它的组成部分,通常前者是有用的,可以方便你肉眼区分自己和系统的输出。在linux系统中是通过环境变量来控制的,只要修改变量对应的值就可以更改上面提到的东西,你可以执行命令echo $PS1查看当前该变量设置。它的值是由有意义字符所组成的,你必须掌握这些字符的含义才能手动设置,当然这肯定会比较痛苦,下面推荐几个网站可以在线设置。
2023-02-06 11:13:16
691
jQuery Uploadify + Apache Fileupload异步上传文件示例
2014-05-03
centos安装pdo_mysql扩展不成功
2015-04-03
添加到redis里的key乱码
2015-02-04
后台怎样向页面局部推送数据,请提供一种实现思路及还算详细的步骤!
2014-01-12
接口中的方法标识成抽象的作用是什么?
2013-10-31
springMVC 拦截器如何做登录检查及页面跳转
2013-07-12
实际开发中日期时间字段,一般是存毫秒值,还是真实日期时间值。
2013-07-06
使用springMVC框架时,怎样在controller里获得Session。
2013-06-30
在web.xml中添加metadata-complete="true"有什么作用?
2013-05-18
关于spring3.2.2配置事务问题
2013-05-10
现在spring3.2.2支持hibernate4吗?依赖包去哪儿下载呢?
2013-05-09
Extjs和Dojo哪个更好一些,请从多个角度评价。
2013-05-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人