1、Spring之IoC/DI和AOP依赖注入Dependecy Injection和控制反转Inversion of Control是同一个概念依赖注入有三种注入方式属性注入构造器注入工厂注入静态工厂和实体工厂依赖注入的底层实现机制反射机制面向切面编程AOP分为前置通知、切面、后置通知、异常通知前置通知在方法执行前执行切面相当于要实现的功能后置通知在方法执行后执行异常通知在方法抛出异常后执行面向切面编程的底层实现机制动态代理2、Spring、SpringMVC、Springboot的区别Spring就是一个大的bean工厂存储Bean的容器常见的bean对象如dataSource、事务、以及我们用的Component 组件spring的bean对象Controller 控制器Service 服务Repository 仓库注解后经过自动臊面都会形成bean对象SpringMVC这个容器就相当于 一个请求发送过来后经过SpringMVC容器获取分析后进行对应spring容器里相应bean对象的转发返回的值在经过SpringMVC容器响应给前端页面Springboot相对于Spring和SpringMVC主要的区别在于简化配置、内嵌Web服务器Tomcat、Jetty等、提供POM简化Maven配置3、Mybaites中$和#的区别$不能防止SQL注入#可以防止SQL注入原因说明$替换什么是什么#是已占位符的形式进行替换会默认加单引号‘’4、WebService有哪些优势?互操作性、跨平台性应用程序可以使用Webservice以任何语言与另一个应用程序进行交互更便宜的沟通成本WebService确实使用SOAP over HTTP来允许任何人使用已经存在的用于WebService的Internet5、ActiveMQ的作用总结(应用场景及优势)业务场景说明队列的主要作用是消除高并发访问高峰加快网站的响应速度。在不使用消息队列的情况下用户的请求数据直接写入数据库在高并发的情况下会对数据库造成巨大的压力同时也使得系统响应延迟加剧。在使用队列后用户的请求发给队列后立即返回,例如: 当然不能直接给用户提示订单提交成功京东上提示“您提交了订单请等待系统确认”再由消息队列的消费者进程从消息队列中获取数据异步写入数据库。由于消息队列的服务处理速度远快于数据库因此用户的响应延迟可得到有效改善。图解说明:6、redis击穿、穿透、雪崩缓存击穿某一个数据缓存中没有但数据库中有的数据一般是缓存时间到期这时由于并发用户特别多同时读缓存没读到数据又同时去数据库去取数据引起数据库压力瞬间增大严重情况下会直接挂掉。解决方法1、添加互斥锁 2、设置热点数据永不过期物理上的不过期、“逻辑上”的不过期缓存到期动态构建缓存缓存穿透当缓存与数据库中都不存在该数据时由于当数据库查询不到数据就不会写入缓存这个时候如果用户不断的恶意发起请求就会导致这个不存在的数据每次请求都会查询DB请求量大的情况下就会导致DB压力过大直接挂掉。解决方法1、当查询返回一个空数据时直接将这个空数据存到缓存中过期时间不宜设置过长建议不超过5分钟 2、采用布隆过滤器缓存雪崩缓存中大批量的数据都到了过期时间从而导致查询数据量巨大引起数据库压力过大甚至down机。和缓存击穿不同缓存击穿是指某一条数据到了过期时间大量的并发请求都来查询这一条数据缓存雪崩是不同数据都过期了很多数据都查不到从而查数据库解决方法1、设置热点数据永不过期 2、缓存数据的过期时间设置随机可以在原有的过期时间上加上一个随机值比如1-3min防止同一时间大量缓存数据集体失效导致数据库压力过大。 3、如果是分布式部署缓存数据库可将热点数据分别存放到不同的缓存数据库中避免某一点由于压力过大而down掉7、redis哨兵模式哨兵的作用监控Monitoring哨兵会不断地检查主节点和从节点是否运作正常自动故障转移Automatic failover当主节点不能正常工作时哨兵会开始自动故障转移操作它会将失效主节点的其中一个从节点升级为新的主节点并让其他从节点改为复制新的主节点配置提供者Configurationprovider客户端在初始化时通过连接哨兵来获得当前 Redis 服务的主节点地址通知Notification哨兵可以将故障转移的结果发送给客户端它由两部分组成哨兵节点和数据节点哨兵节点哨兵系统由一个或多个哨兵节点组成哨兵节点是特殊的 Redis 节点不存储数据数据节点主节点和从节点都是数据节点哨兵系统的部署方法这一部分将部署一个简单的哨兵系统包含 1 个主节点、2 个从节点和 3 个哨兵节点方便起见所有这些节点都部署在一台机器上局域网 IPxxx.xxx.xx.xxx使用端口号区分节点的配置尽可能简化8、sql优化1、对查询进行优化要尽量避免全表扫描首先应考虑在where及order by 涉及的列上建立索引2、应尽量避免在 where 子句中对字段进行 null 值判断否则将导致引擎放弃使用索引而进行全表扫描3、应尽量避免在 where 子句中使用 ! 或 操作符否则将引擎放弃使用索引而进行全表扫描4、应尽量避免在 where 子句中使用 or 来连接条件如果一个字段有索引一个字段没有索引将导致引擎放弃使用索引而进行全表扫描5、in 和 not in 也要慎用否则会导致全表扫描对于连续的数值能用 between 就不要用 in 了很多时候用 exists 代替 in6、应尽量避免在where子句中对字段进行函数操作这将导致引擎放弃使用索引而进行全表扫描9、如何合理化新建索引1、表的主键、外键必须有索引2、数据量超过300的表应该有索引3、经常与其他表进行连接的表在连接字段上应该建立索引4、经常出现在Where子句中的字段特别是大表的字段应该建立索引5、索引应该建在选择性高的字段上6、索引应该建在小字段上对于大的文本字段甚至超长字段不要建索引10、FastDFS分布式文件系统它对文件进行管理功能包括文件存储、文件同步、文件访问文件上传、文件下载等解决了大容量存储和负载均衡的问题11、elasticsearch的用途概念Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎基于RESTful web接口。Elasticsearch是用Java语言开发的并作为Apache许可条款下的开放源码发布是一种流行的企业级搜索引擎用途Elasticsearch用于云计算中能够达到实时搜索稳定可靠快速安装使用方便12、docker虚拟化容器技术docker理顺了软件包的问题有了docker运行一个镜像是非常容易的不需要做各种环境的配置。13、JenKins自动化部署工具Jenkins是一个开源的、可扩展的持续集成、交付、部署软件/代码的编译、打包、部署的基于web界面的平台。允许持续集成和持续交付项目无论用的是什么平台可以处理任何类型的构建或持续集成。14、Sonar代码质量监控工具Sonar是一个用于代码质量管理的开源平台用于管理源代码的质量可以从七个维度检测代码质量通过插件形式可以支持包括java,C#,C/C,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测15、Nginx正向代理和反向代理正向代理是一个位于客户端和原始服务器之间的服务器为了从原始服务器取得内容客户端向代理发送一个请求并指定目标(原始服务器)然后代理向原始服务器转交请求并将获得的内容返回给客户端。反向代理实际运行方式是代理服务器接受网络上的连接请求。它将请求转发给内部网络上的服务器并将从服务器上得到的结果返回给网络上请求连接的客户端此时代理服务器对外就表现为一个服务器。16、Modbus协议两种类型以及应用场景两种类型opc和tcpOPC不需要转化 TCP协议是二进制需要自己转化应用场景软硬件设备17、项目介绍两大块业务介绍系统中都做了哪些功能这些功能一定是一个闭环操作说清楚即可强调一下一个功能是一个小闭环多功能之间形成大闭环技术实现每个功能都是有哪些技术实现的有点水平的就是高并发的解决多系统之间通信等18、设计模式有多少种创建型模式共五种工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式共七种适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式共十一种策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。19、设计模式遵循的6大原则1、单一职责原则 -----每个类应该实现单一的职责2、里氏替换原则------继承复用增加新的行为3、依赖倒转原则------依赖抽象而不依赖具体4、接口隔离原则------使用多个隔离的接口5、迪米特法则--------只与直接的朋友通信减少依赖6、合成复用原则------使用合成/聚合的方式而不是使用继承20、冒泡排序和选择排序手写代码冒泡排序public class MyClass {public static void main(String[] args) {int arr[] new int[]{1, 3, 5, 7, 9, 2, 4, 6, 8, 0};for (int i 0; i arr.length; i) {for (int j 0; j 1 arr.length - i; j) {if (arr[j] arr[j 1]) {int t arr[j];arr[j] arr[j 1];arr[j 1] t;}}}for (int i 0; i arr.length; i)System.out.print(arr[i] \t);System.out.println();}}选择排序int[] arr {5, 1, 18, 2, 45, 31, -8};int k 0;for (int i 0; i arr.length; i) {k i;for (int j i1; j arr.length; j) {if(arr[j] arr[k]){k j;}}int temp arr[i];arr[i] arr[k];arr[k] temp;}21、单例模式两种手写代码饿汉式单例public class Singleton {private Singleton(){}private static Singleton instance new Singleton();public static Singleton getInstance(){return instance;}}懒汉式单例public class Singleton {private static Singleton instance null;private Singleton() {}public static synchronized Singleton getInstance(){if (instance null) instance new Singleton();return instance;}}
企业数字化 ERP 产品动态
相关推荐
【基础-配置文件】:hadoop配置文件作用概述ing /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 18:15:55
【运维与安装】Hadoop 3.3.1 :Setting up a Single Node Cluster. /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 18:15:55
RK3588 SDK编译实战:从交叉编译到NPU部署YOLOv8 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 18:14:54
Oracle 19c PDB SYSAUX膨胀清理与ORA-65040避坑 接手一套多租户环境之后,最容易让人半夜爬起来处理的告警,往往不是业务库连不上,而是某个 PDB 的 SYSAUX 表空间使用率突然从 40% 跳到 85%。业务侧一切正常,监控侧却在反复告警,登录进去一查,V$SYSAUX_OCC… · 2026/11/3 21:04:19
Buzz技术解析:从蜂鸣噪声抑制到社交热度建模 我无法基于当前输入生成符合要求的博文。原因如下:输入中仅提供了项目标题"buzz",以及空的“相关热搜词”和“最新网络热词”字段(内容为),未提供任何实质性的【项目正文】、【关键词】或【摘要描述】&#… · 2026/11/3 21:04:19
Oracle 19c PDB SYSAUX膨胀清理与ORA-65040 Oracle 19c 的 PDB 里,SYSAUX 表空间报警是个挺常见的场景。我第一次遇到时, DBA_SEGMENTS 一查,排在前面的不是业务表,而是 WRI$_ADV_OBJECTS 和它拖家带口的 LOB、索引段,加起来几十 GB。更让人上火的是… · 2026/11/3 21:04:19
多智能体分布式算法在电网调度中的实践与优化 1. 项目背景与核心价值去年参与某省级电网调度系统升级时,我第一次真切体会到传统集中式经济调度面临的困境。当新能源渗透率超过30%后,调度中心每天要处理上万个节点的数据,计算延迟经常超过15分钟,而电网频率偏差却要求控制在0.… · 2026/11/3 21:04:19
ShardingJDBC十亿级数据分库分表实战指南 1. ShardingJDBC 十亿级数据处理实战解析当数据量突破十亿级别时,传统单库单表的架构就像一辆超载的卡车,不仅行驶缓慢,随时还有抛锚的风险。我在金融支付系统架构升级过程中,曾用ShardingJDBC成功将日均处理量从300万笔提升到800… · 2026/11/3 21:04:19
智能数据库建模助手的核心技术与应用实践 1. 为什么我们需要智能数据库建模助手? 在传统数据库设计流程中,开发团队通常需要经历以下几个痛苦阶段:业务分析师花费数周整理需求文档,DBA手工绘制ER图,开发人员反复确认字段类型和关系,测试阶段才发现外… · 2026/11/3 21:03:19
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46