自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (7)
  • 收藏
  • 关注

原创 【Spring Security注解详解】

Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架,广泛用于Java应用程序中以确保安全。它提供了多种注解来简化安全控制的实现,特别是在方法级别的权限控制上。

2024-05-06 14:37:39 1138 3

原创 说一下mysql的锁

全局锁是一种跨所有数据库实例的锁。它可以确保在任何时刻,只有一个事务能够访问共享资源。并发性较高的场景。对数据一致性要求高的场景。需要防止死锁的情况。全局锁是一种跨所有数据库实例的锁。它可以确保在任何时刻,只有一个事务能够访问共享资源。全局锁通常用于并发性较高的场景、对数据一致性要求高的场景以及需要防止死锁的情况。表级锁表级锁是一种对整张表进行加锁的操作。它可以确保在任何时刻,只有一个事务能够修改表中的数据。并发性较高的场景。对数据一致性要求高的场景。需要防止死锁的情况。

2024-01-11 10:27:04 1055

原创 分布式高级知识点

2PC、3PC和XA事务都是分布式事务协议,它们都有自己的优缺点。2PC简单高效,但可靠性较差。3PC更加可靠,但开销也更大。XA事务更加灵活和强大,但复杂度也更高。在选择分布式事务协议时,需要考虑以下因素:* 事务的可靠性要求* 事务的性能要求* 事务的复杂度* 参与事务的资源类型根据这些因素,可以选择最合适的分布式事务协议。基于数据库的分布式锁、基于Redis的分布式锁和基于ZooKeeper的分布式锁各有优缺点。在选择分布式锁时,需要根据具体场景来选择合适的锁机制。

2024-01-03 14:59:09 1166

原创 MVCC多版本并发控制

Undo日志就像是一个历史记录簿,它记录了数据库中所有数据的历史变化。通过定期清理过期的数据版本和相关的undo日志记录,数据库可以保持undo日志的效率。MVCC(Multi-Version Concurrency Control)是一种并发控制机制,它允许多个事务同时读取和修改相同的数据,而不会产生脏读、幻读和不可重复读等问题。MVCC的基本思想是为每个事务创建一个独立的版本的数据。当一个事务读取数据时,它读取的是该事务开始时的数据版本。

2023-12-27 14:21:54 1171

原创 DDD领域驱动设计高级知识点

领域驱动设计(DDD)是一种软件开发方法,旨在通过深入理解业务领域和业务需求,将领域知识融入到软件设计和开发中。在DDD中,有一些高级知识点和概念,可以帮助开发人员更好地理解和应用DDD方法。

2023-12-26 15:24:32 923

原创 mysql高级知识点

外键约束用于在一个表中创建对另一个表中数据的引用,从而确保关联表中的数据与主表中的数据保持一致。外键约束可以限制插入、更新和删除操作,防止关联表中出现无效的引用或不一致的数据。外键约束可以在创建表时定义,也可以在已有的表上添加或删除。创建表时定义外键约束的示例: 下面是一个在创建表时定义外键约束的示例,假设我们有两个表orders和customers,其中orders表中有一个字段,用于关联customers表中的id字段。在上面的示例中,我们在创建orders表时定义了一个外键约束,将。

2023-12-26 10:51:12 1014

原创 Spring高级知识点

——想象你的程序就像一条小路,而切点就是这条小路上的一些特定地点,比如路的拐角、交叉口等。在Spring AOP中,我们可以通过定义切点来指定这些特定地点,然后在这些地点上插入我们的横切逻辑,就像在路的拐角上设置了一个标志或者交通指示牌一样。这样,当程序执行到这些特定地点时,我们定义的横切逻辑就会被触发执行。这样的设计让我们可以很灵活地控制在程序的哪些地方执行我们定义的操作,就像在路上设置交通标志一样。

2023-12-25 10:40:15 1075

原创 企业实际生产中,怎样实现的前后端通过websocket通讯

在前端代码中,使用 Vue.js 和 Stomp.js 与后台进行通讯。在 mounted() 方法中,使用 SockJS 和 Stomp 实现 WebSocket 连接,并订阅 “/topic/messages” 路径的响应消息。WebSocket 服务节点负责处理客户端发送的消息,处理完成后将响应消息发送到 RabbitMQ 上,由消息代理转发给客户端。消息代理使用 RabbitMQ,负责将客户端发送的消息转发到各个 WebSocket 服务节点,并将服务节点返回的响应消息发送给客户端。

2023-05-30 15:52:37 238

原创 方便记忆的“HashMap的数据结构”

为了解决这个问题,HashMap采用了散列表的机制,在数组的每个位置上存储一个链表或者红黑树,将具有相同hash值的键值对存储在同一个链表或红黑树中。在HashMap的实现中,由于数组大小固定且可能较小,因此对于每个桶内的元素,使用红黑树能够提升查找和插入的效率,同时保证极端情况下的时间复杂度仍然为O(log n),是一种很好的平衡方案。需要注意的是,此操作只在删除操作中使用,即只有在执行remove操作,且当前桶中采用红黑树存储时,才会将其转换为链表,否则不会进行转换。解决两个问题:散列冲突和查找效率。

2023-05-25 17:23:51 276

原创 说说“快速失败(fail—fast)”

在快速失败的实践中,当系统检测到一个不正常的状态或者出现一个错误时,它会立即停止正在进行的操作并抛出一个异常或错误提示,从而减少进一步的损失。举个例子,如果一个程序需要读取一个文件,但是文件不存在,那么程序应该立即抛出一个 "文件不存在" 的异常,而不是继续执行导致更深层次的问题,比如无法打开文件导致程序崩溃。这种机制实际上是一种防止并发操作不安全的保护措施,比如在多线程环境下遍历集合时,如果没有这种机制,一个线程在遍历的同时可能会有另一个线程对该集合进行修改,这就会引发并发访问异常或者数据不一致等问题。

2023-05-25 16:39:02 679

原创 JVM垃圾回收

具体来说,当程序创建新对象时,GC 会检查堆上的可用空间是否足够,如果不够就触发一次 GC 进行内存回收,释放一些无用的对象所占用的空间。综上所述,强、软、弱、虚引用与垃圾回收的关系是:只有强引用才能保障对象的生命周期,而软引用、弱引用和虚引用都是相对弱化的引用方式,它们提供了更加灵活的垃圾回收策略,能够在内存空间不足时及时回收不再被使用的对象。如果一个对象仅被软引用所引用,则在内存空间不足时,垃圾回收器会尝试回收这些对象,但只有在整个堆内存都被占用而导致内存不足的情况下,垃圾回收器才会真正回收这些对象。

2023-05-08 13:46:50 89

原创 “监控体系“是啥

监控体系是指在企业或组织的生产环境中,为了保证系统的正常运行和稳定性,所采用的一整套监控方案。总之,建立完整的监控体系可以帮助企业在生产环境中更好地管理和控制系统,提高运维效率,为业务的正常稳定运行提供强有力的支持。数据库监控:监控数据库的性能指标,如连接数、缓存命中率、查询响应时间等,以保证数据库的稳定和高效运行。负载均衡器监控:监控负载均衡器的负载状态、同一时间访问量等指标,以保证业务的稳定和高可用性。应用程序监控:监控应用程序的健康状态、响应时间、吞吐量、错误率等,以确保业务运行的稳定性。

2023-05-04 13:27:45 396

原创 深入理解“mysql”

服务器端大体可以分为两部分:Server 层和存储引擎层(二者的功能跟日常开发中的 Service 层和与 DAO 层的关系有点像,可以对比理解)。应用层:该层是整个架构的最上层,包含了应用程序的客户端、应用程序软件逻辑等组件,是直接面向用户的层。存储引擎层:存储引擎层是负责数据存储和检索的组件,它们实现了表的基本操作(如增删改查),并提供事务处理、并发控制、索引等高级功能。存储引擎机制:MySQL支持多种存储引擎,如InnoDB、MyISAM等,每种存储引擎都有各自的特点和适用场景。

2023-04-27 16:02:50 370

原创 说说“Spring事务”

在此模式下,开发者使用Spring的AOP技术将事务关注点从业务逻辑代码中剥离出来,形成独立的事务切面,通过指定事务切面的配置来控制事务的边界。这表示在调用这个方法时,将会创建一个新的事务,且该事务的隔离级别为READ_COMMITTED。其中,Spring提供了对事务的支持,使得开发者可以在程序中方便地实现事务管理,从而确保应用程序的数据一致性和完整性。需要注意的是,不同的隔离级别和传播行为会对事务产生不同的影响,需要根据具体业务场景来选择合适的隔离级别和传播行为,确保数据的一致性和正确性。

2023-04-25 16:55:35 79

原创 常用的 JVM 参数

Xms 和 -Xmx:这两个参数用于设置初始堆内存和最大堆内存大小。-Xms 指定初始堆内存大 小(即 JVM 在启动时向操作系统请求的内存,包括所有的堆内存分代),而 -Xmx 指定最大堆内存 大小。例如,-Xms512m -Xmx1024m 表示初始堆大小为 512MB,最大堆大小为 1GB。-XX:PermSize 和 -XX:MaxPermSize:这两个参数用于设置永久带(Permanent Generation)的大小。新生代是 Java 堆的一部分,主要用于存放新创建的对象。

2023-04-25 09:55:10 1150

原创 说说“MySQL高可用方案”

在MySQL Replication中,主库为“Master”,从库为“Slave”,主库可以处理写入操作,从库只能读取并复制主库的数据,不能进行写入操作。是MySQL数据库常用的高可用解决方案之一。在MySQL中,主库为“Master”,从库为“Slave”,主库可以处理写入操作,从库只能读取并复制主库的数据,不能进行写入操作。总体来说,主从复制适合于读多写少、数据量较小的场景,可以快速备份、恢复数据,而MySQL Cluster则适合于数据量较大、读写负载较高、需要高可用性和高性能的场景。

2023-04-24 13:39:07 608

原创 说说“集成平台”

RestCloud iPaaS:正如之前提到的,RestCloud iPaaS 是国内首款专注于私有化部署的全域集成平台,实现了服务集成、数据集成、设备集成、saas 集成和消息集成等功能。腾讯云DCCP:DCCP 是腾讯云推出的企业级集成平台,提供了可视化的工作流程设计界面,以及多种连接器和数据格式支持,帮助企业实现多种数据集成和业务流程集成。多种集成方式:集成平台应支持多种集成方式,例如点对点集成、服务总线、数据集线器等,以满足不同场景和需求的集成要求。

2023-04-23 09:52:50 2991

原创 说说“路由”是什么

EIP 是一种业界通用的、描述企业级集成问题的模式库,它强调在应用系统间传递数据的方式和过程,提供了一些常用的解决方案,如路由、转换、分流、聚合等等。例如,当客户端需要调用订单服务的API接口时,它只需要向API网关发送请求,API网关会根据路由规则将请求转发到订单服务,再将订单服务的响应返回给客户端。如果客户端直接调用每个服务的API接口,那么它就需要知道每个服务的具体细节,包括服务的IP地址、端口号、API接口地址以及请求参数等,这样就增加了客户端开发难度、降低了可维护性。

2023-04-21 14:01:52 1593

原创 spring中的-适配器模式

在Spring框架中,使用了许多设计模式,其中适配器模式是比较常用的一种。在使用 Spring 框架进行 JMS 消息监听时,需要将消息监听器适配为一个带有固定方法名的处理器。这些是 Spring 框架中使用适配器模式的几个典型例子,它们都在不同场景下完成了类型适配、方法适配等功能。在 Spring MVC 框架中,用户提交的表单数据需要进行类型转换、格式化等操作后才能进行进一步处理。在处理时,只需要将用户提交的表单数据和对应的 JavaBean 绑定到。适配器中,即可完成参数适配工作。

2023-04-20 15:43:52 635

原创 举例说明-适配器模式

适配器模式(Adapter Pattern)是一种常见的设计模式,它通过将一个类的接口转换成客户希望的另一个接口,使原本不兼容的类能够一起工作。适配器模式的优点是可以让原本不兼容的类能够协同工作,从而提高代码的复用性和灵活性。类适配器模式通过继承来实现适配,需要同时继承原有的接口和目标接口。而对象适配器模式则通过组合来实现适配,需要在适配器中包含一个原有接口的对象以及实现目标接口的方法。适配器模式在日常开发中也经常出现,比如我们常常要将程序中的数据转化为特定的格式,或者将来自不同来源的数据整合到一起。

2023-04-20 15:29:52 95

原创 Tomcat中处理HTTP请求的主要流程如下

需要注意的是,这只是Tomcat的Servlet请求处理逻辑的简要示例。实际代码实现可能比这更加复杂,并涉及多个模块和类的协同工作。

2023-04-20 15:19:28 156

原创 java对象的组成是啥

在HotSpot虚拟机中,对象头占用的大小根据不同的虚拟机配置和对象类型的不同而有所不同,通常包括两个部分:Mark Word和Class Pointer。实例数据则是根据对象的定义而定,包含了所有被声明的成员变量和方法,这些信息存储在实例变量表和常量池中。实例变量表是一个类似于数组的数据结构,用于存储对象的成员变量,包括普通成员变量、静态成员变量和常量池中的常量。常量池则是一个用于存储类的常量和符号引用的表,它包含了类加载器加载的所有类的常量和符号引用,是Java虚拟机中一个重要的数据结构。

2023-03-28 14:37:38 646

原创 MuleESB3.0中文教程

它提供了一个可靠、可扩展、可管理的集成平台,可以帮助企业构建灵活、高效的数据集成解决方案。高可靠性和可管理性:Mule ESB 3.0提供了可靠的消息传递机制,支持崩溃恢复和故障转移,可以提高集成解决方案的可靠性。总的来说,Mule ESB 3.0是一款功能强大、易于使用、高可靠性和可管理的ESB产品,可以帮助企业快速构建灵活、高效的数据集成解决方案。易于使用的设计:Mule ESB 3.0提供了一组易于使用和自定义的工具和API,可以帮助开发人员快速构建、测试和部署自定义集成解决方案。

2023-03-28 10:28:53 347

原创 一些常见的InnoDB优化技术

9、查询优化器的局部性规则:可以根据查询条件的出现频率和类型,优先选择最有可能进行索引下推的条件,从而减少MySQL扫描的数据量,提高查询效率。5、热点数据缓存:可以通过在缓冲池中缓存热点数据来减少磁盘I/O操作的数量,提高数据库的性能。6、存储过程和触发器:可以通过存储过程和触发器实现复杂的业务逻辑,提高数据库的可靠性和安全性。2、数据页清理:可以通过定期清理不再使用的数据页来减少存储空间的使用,提高数据库的性能。1、数据页压缩:可以通过压缩数据页减少磁盘I/O操作的数量,提高数据库的性能。

2023-03-28 10:02:36 269

原创 mysql数据库都有啥引擎,非存储引擎

2、Information Schema: 用于访问数据库元数据的虚拟数据库,包含了关于数据库、表、字段等对象的信息。1、Performance Schema: 用于监视MySQL服务器性能的工具,可以提供丰富的监控和诊断信息。7、Spider: 可以将数据分散到多个MySQL数据库或其他类型的数据库中,用于构建分布式数据库系统。3、Memcached: 缓存引擎,用于提高读取速度,把常用数据缓存在内存中。6、Example: 提供了一个简单的示例存储引擎,用于学习和测试。

2023-03-28 09:48:49 124

原创 跟数字有关的mysql基础-1

原子性:事务要么全部执行成功,要么全部失败回滚。一致性:事务执行前后,数据库的数据应该保持一致性状态。例:关系型数据库中的外键约束,插入或更新操作必须满足外键约束,否则会导致数据不一致。隔离性:多个事务之间应该相互隔离,每个事务应该感知不到其他事务的存在和操作。持久性:事务提交后,其所做的修改操作应该被永久保存到数据库中。简称为:ACIDA- Atomicity(原子性):事务是一个不可分割的“原子”,也就是说,事务要么全部完成,要么全部不完成,没有中间状态。

2023-03-24 14:52:43 70

原创 详细说明一下索引下推

因为amount字段创建了索引,查询引擎会先在索引树上进行条件过滤,过滤掉所有金额小于1000元的订单记录,只将金额大于等于1000元的订单记录传给查询结果集,最后统计符合条件的订单数量。需要注意的是,索引下推并不是适用于所有类型的查询,它涉及到查询中所使用的索引类型和查询条件的限制。索引下推(Index condition pushdown)是一种优化数据库查询的技术,它利用了数据库索引的特性,在一定条件下,在索引层面就过滤掉不需要的数据,从而减少查询时需要访问的数据块,提高查询效率。

2023-03-23 09:26:47 1490

原创 代码一下-模板设计模式

订单处理流程分为:下单、支付、配送、完成。其中下单和支付是必须的步骤,配送和完成可以根据具体需求进行扩展。这样,就可以实现一个简单的订单处理流程,并且可以通过扩展子类来实现不同的配送方式和完成流程。

2023-03-22 17:01:16 45

原创 举例说明-模板设计模式

这样,我们就通过模板设计模式实现了一个简单的饮料制作程序。其中,父类Beverage定义了制作饮料的基本流程,子类Coffee和Tea分别实现了自己的brew和addCondiment方法,通过重写这些方法,实现了饮料的定制。模板设计模式是一种行为设计模式,它在父类中定义算法的基本结构,而将一些步骤的实现延迟到子类中。这样,可以在不改变算法架构的情况下,通过在子类中实现这些步骤,来实现算法的定制和扩展。举一个比较简单的例子,假设我们要开发一个制作咖啡和茶的程序。

2023-03-22 16:56:56 71

原创 抽象工厂模式与工厂模式的区别-代码比较

在这个示例中,我们使用了抽象工厂模式来创建电子产品对象。每个工厂类都负责创建一个相关的电子产品族,如苹果电子产品,华为电子产品等,工厂方法的数量与产品族数目相等。在这个示例中,我们使用了工厂模式来创建饮料对象。工厂类 DrinkFactory 负责根据不同的类型创建不同的饮料对象,客户端代码只需要指定饮料类型即可。接下来,我们再看一个使用抽象工厂模式的示例。假设我们正在开发一个电子产品销售网站,它需要销售多种电子产品,如手机、电脑、平板等。首先,我们假设有一个饮料店,它提供多种饮料,如可乐、雪碧、果汁等。

2023-03-22 16:49:21 189

原创 抽象工厂模式与工厂模式的区别

在抽象工厂模式中,我们需要创建一组相关的对象(即产品家族),并且这些对象之间存在某些关系,如相互依赖、配合使用等。我们通过创建一个工厂类族来创建对象,每个工厂类负责创建一组相关的对象。与工厂模式不同的是,抽象工厂模式中的工厂类通常涉及多个方法,每个方法用于创建一个不同的对象。在工厂模式中,我们只需关心如何创建一个对象,而不用关心该对象与其他对象之间的关系。抽象工厂模式和工厂模式都是创建型模式,它们的主要差别在于抽象工厂模式着重于创建一组相关的对象(即产品家族),而工厂模式则着重于创建单一对象。

2023-03-22 16:31:36 1755

原创 代码一下-抽象工厂模式

在这个示例中,我们通过抽象工厂模式实现了支付模块与多个支付网关的交互,而无需关心它们的具体类。

2023-03-22 16:21:46 107

原创 举例说明-抽象工厂模式

抽象工厂模式是啥,举例说明

2023-03-22 16:12:21 91

原创 说说Java的加解密

Java的加解密

2023-03-22 15:18:25 668

原创 详细介绍一下concurrenthashmap

ConcurrentHashMap

2023-03-22 10:43:08 222

原创 哪些公司在使用Apache camel

哪些公司在使用Apache camel

2023-03-21 16:46:59 344

原创 50本Java高手必读的最新中文书籍

50本Java高手必读的最新中文书籍

2023-03-21 16:43:16 511

过滤器脱敏加解密.zip

如题,加解密方法类没有。思路:将需要加解密、脱敏字段放到集合,对指定拦截请求进行筛选,命中则处理,返回(加密、脱敏)结果。对request做了加密,对response解密有困难所以只做了输出,请自行补充,可考虑正则或标签方式进行输出解密。

2019-12-19

Android帮助文档和基本教学

版本是3.0 r1。中文API和开发指南集成到一起的东西

2015-05-20

PHP+Dreamweaver CS4+CSS+Ajax动态网站开发典型案例

动态网站开发典型案例 开发语言:PHP+Dreamweaver CS4+CSS+Ajax

2013-06-26

重构:改善既有代码的设计/福勒(Martin Fowler)

重构(Refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。另有同名图书。

2013-05-21

新手建设自己的网站需要学习什么 建站经验 网站运营

新手建设自己的网站需要学习什么 建站经验 网站运营

2013-01-23

如何选择和设计适合自己的评论网站类型 建站经验

如何选择和设计适合自己的评论网站类型 建站经验 网站运营

2013-01-23

project.cdm建模

jpg格式,本土截取自powerdesigner-example-project.cdm

2010-07-21

空空如也

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

TA关注的人

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