Intro to AI

在学习AI 过程中,发现专业名词相当多,初学者可能会感到而混乱,所以本篇内容是对该领域内的一些“大词”进行简单介绍, 做一些概念扫盲, 以保证在接下来的学习中心中有框架。 正式内容会按照下图框架介绍 1. 人工智能 (Artificial Intelligence)人工智能(Artificial Intelligence,简称AI)是一门研究和开发用于模拟、扩展和扩展人类智能的理论、方法、...

TrustMessage-基于2PC+MySQL+泛化调用实现的可靠消息中心

0. 项目结构介绍 Module Description trustmessage-mysql 基于2PC+MySQL表实现的可靠消息中心,业务操作+消息表操作均存在于同一个项目中 turstmessage-middleware 可靠消息中心中间件,基于RPC接口提交消息+2PC+MySQL 表实现 turstmessage-middlewareapi 可靠消息中心中间...

深入解析bloom filter的原理与实现

0.什么场景下会用到bloom filter 缓存穿透 爬虫重复 URL 检测, 避免爬虫过程形成环 假设有 10 亿条手机号,然后判断某条手机号是否在列表内 唯一昵称判断 这些场景可以用什么方式解决 hashmap, hashset MySQL:正常情况下,如果数据量不大,我们可以考虑使用 mysql 存储。将所有数据存储到数据库,然后每次去库里查询判断是否存在。但是如果数据量太大,...

Spring 集成 Mybatis

1.单独使用MyBatis在了解Spring 继承Mybatis 之前,先来看下如何单独使用MyBatis 数据表结构12345678910CREATE TABLE message ( id bigint unsigned NOT NULL AUTO_INCREMENT, message_key VARCHAR(255) COMMENT '消息唯一键,用于做回查的标识',...

SpringBoot 自动配置实现原理

在传统的Spring应用中,开发者需要手动配置大量数据,这种配置通常包括数据源、事务管理、视图解析器等。这种手动配置方式在大型项目中显得特别繁琐且容易出错。 Spring Boot引入自动配置机制,只需要添加相关依赖,无需配置。这极大地简化了Spring应用的配置, 大幅减少了开发者的工作量,帮助开发者快速创建应用。 SpringBoot的自动配置是通过@EnableAutoConfigur...

理解 Spring FacrotyBean

FactoryBean 和BeanFactory 名字太像了,以至于容易混淆,但是从功能上讲完全不一样, 理解了它们各自的功能就可以完美区分这俩了 1. BeanFactorySpring IOC 容器,用于管理bean ,具体细节已经在Spring bean 实例化中介绍过,就不再赘述,可以点击去阅读。 总的来说BeanFactory 时Spring 容器,在Spring的启动过程,Fa...

Spring AOP 注解方式原理详解

本文基于Spring AOP 实践 和 Spring AOP XML配置方式原理详解, 来继续讲解 基于注解方式实现AOP 自动代理的原理。 在Spring AOP 实践一文中,我们探讨了通过在XML配置文件中使用ProxyFactoryBean来配置代理对象的方法,并在需要时手动获取代理对象以实现AOP功能。 然而,在大型生产环境中,这种配置方式显得繁琐且不切实际。为了解决这一问题,Sp...

Spring AOP XML配置方式原理详解

本文重点分析 Spring AOP 实践一文中,通过ProxyFactoryBean手动配置动态代理的实现原理。 原理分析将基于以下示例代码。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051public class UserService { ...

Spring 启动过程 拓展点

Spring框架提供了丰富的扩展点,允许开发者在bean的生命周期的不同阶段插入自定义逻辑,从而增强应用的功能和灵活性。拓展点包括BeanFactoryPostProcessor、BeanPostProcessor、各种Aware等。下面来具体讲解各个拓展点的作用以及它们是如何介入到bean 的生命周期中。 除了Aware接口和BeanPostProcessor,还有许多其他扩展点,如Bea...

Spring AOP 实践

1. 为什么需要AOP关于消除重复代码,定义公共父类使用继承的方式实现是一种常见的思路。但是例如性能监控、事务管理,这类重复代码的特点是和业务代码紧密结合在一起,无法通过继承的方式解决。 比如在程序运行中,想计算每个方法的行时间, 就没有办法通过继承的方式去消除这类重复代码 12345678910111213141516171819202122public class UserServic...

1234