一种循环注入的思路

【微服务】spring 循环依赖问题深入解析 spring 循环依赖问题深入解析 阅读详情

我在写注入程序的时候,偶尔遇见过一些邪门儿的问题,比如挂在explorer上面不能运行,挂在其他的进程上面却很正常,为了能尽快地解决问题。我就犯懒设计了这个东西。因此也就不用怕由于进程的终止而导致dll文件的卸载:

DWORD WINAPI ThreadProc(LPVOID lpParameter)
{
 DWORD dwThreadID,pID,pPriID;
 void *pRemoteThread;
 HANDLE hProcess,hThread;
 char pszLibFileName[MAX_PATH];
 GetSystemDirectory(pszLibFileName,MAX_PATH);
 strcat(pszLibFileName,"//library.dll");
 int cb = (1 + lstrlenA(pszLibFileName)) * sizeof(WCHAR);
 PTHREAD_START_ROUTINE pfnStartAddr = (PTHREAD_START_ROUTINE)
    GetProcAddress(GetModuleHandle(TEXT("Kernel32")), "LoadLibraryA");
 EnableDebugPriv();
/*
maxthon.exe
firefox.exe
opera.exe
ttraveler.exe
*/
 char *szBrowserName[5]=
 {
  "maxthon.exe",
  "firefox.exe",
  "opera.exe",
  "ttraveler.exe",
  "iexplore.exe"
 };
 do
 {
  for(int i=0;i<5;i++)
  {
   pID = GetPidByName(szBrowserName[i]);
   if(pID != 0)
    i = 5;
  }

  if(pID == 0)
  {
   hThread = NULL;
  }
  else if((pID != 0)&&(hThread == NULL))
  {
   pPriID = pID;

   hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pID);

   if(!hProcess)
    return 0;
 
   pRemoteThread = VirtualAllocEx(hProcess,
           NULL,
           cb,
           MEM_COMMIT | MEM_RESERVE,
           PAGE_EXECUTE_READWRITE);
   if(!pRemoteThread)
    return 0;

   if(!WriteProcessMemory(hProcess, pRemoteThread,
    (PVOID)pszLibFileName,
    cb,
    0))
    return 0;

   
   hThread = CreateRemoteThread(hProcess ,
          NULL,
          0,
          pfnStartAddr,
          pRemoteThread,
          0,
          &dwThreadID);

   CloseHandle(hProcess);
  }
  else if((pID != 0)&&(hThread != NULL)&&(pPriID!=pID))
   hThread = NULL;
  Sleep(100);
 }
 while(dwCurrState != SERVICE_STOP_PENDING && dwCurrState != SERVICE_STOPPED);
 return 0;
}

这种模式能确保挂接的dll文件不会因为进程终止而卸载

【微服务】spring循环依赖深度解析 spring循环依赖解决详解 阅读详情

相关推荐

C#实战:如何用winmm.dll打造毫秒级高精度定时器(附完整代码)

本文详细介绍了在C#中利用winmm.dll实现毫秒级高精度定时器的完整方案。针对.NET内置定时器精度不足的问题,通过调用timeSetEvent等原生API,提供了超越系统时钟中断周期的精准定时能力。文章包含核心原理剖析、完整的封装类代码以及音视频处理、游戏开发等场景下的实战应用与性能调优指南。

ujm5678901的博客 690

Spring是如何解决循环注入问题?

一、如何解决Spring循环注入问题? 循环注入分两种情况:1、构造方法注入 2、set方法注入(单例和多例有区别) 1、构造方法注入:Spring没有办法解决会抛出异常:Requested bean is currently in creation: Is there an unresolvable circular reference? 代码: public class AA { public AA(BB b) {} } public class BB { public BB(

奔波儿东 2714

STM32移植u8g2库(HAL库)(硬件SPI)(sh1106_128x64)

STM32移植u8g2库(HAL库)(硬件SPI)(sh1106_128x64) MCU型号为STM32F103RCT6,OLED屏为中景园电子1.3寸屏,驱动芯片为sh1106,分辨率为128x64,MDK版本为V5.34。

Master_0_的博客 6272

spring 循环依赖注入

什么是循环依赖 循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方,比如A引用B,B引用C,C引用A,则它们最终反映为一个环。 spring 中循环依赖注入分三种情况 1. 构造器循环依赖 2. setter方法循环注入 2.1 setter方法注入 单例模式(scope=singleton) 2.2 setter方法注入 非单例模式 我们首先创造3个互相依赖的bea

jijianshuai的专栏 1万+

解锁 STP 与 SOLIDWORKS 转换密码:工具及迪威在线转换秘籍

STP 文件能够完整地记录 3D 模型的几何形状、尺寸、公差、材料属性等丰富信息,无论是简单的机械零件,还是复杂的装配体,都能精准呈现。而在线转换以迪威模型为例,凭借便捷性、高效性和安全性,为广大 3D 专业技术人员和学生党在无需安装额外软件的情况下,轻松实现格式转换提供了有力支持。在实际工作和学习中,可根据自身具体情况灵活选择合适的转换方式,以确保 3D 设计工作流程的顺畅进行,让创意在不同格式间自由流动并绽放光彩。在 3D 设计与建模的广袤世界里,不同格式文件间的转换常常是连接创意与实现的关键桥梁。

技术说明博主 3444

xsens IMU配置

1.安装驱动 sudo apt-get update sudo apt-get install ros-kinetic-xsens-driver 2.配置IMU 设置输出四元数,加速度、角速度、地磁 cd /opt/ros/kinetic/lib/xsens_driver python mtdevice.py --configure "oq,aa,wr,mf" 3.启动IMU roslaunch xsens_driver xsens_driver.launch 转(https://www.cnblo

qq_41585680的博客 2325

Spring自动注入循环依赖分析解决

Spring自动注入循环依赖分析解决

weixin_51980047的博客 1223

【PointNet++】使用Open3D将ShapeNet数据集txt文件保存为ply

ShapeNet数据集的txt格式为xyzrgb+label,为了可视化点云,将txt文件保存为pcd或ply。

纵马踏花向自由 752

循环注入问题

我遇到的是三个类的循环注入::类A注入了类C,类B也注入了类C,而类C又注入了类A和类B。在上述代码中,我使用@Autowired注解将类A、B和C注入到对应的属性中,并使用@Lazy注解延迟实例化这些Bean。在使用依赖注入的过程中,循环注入是一个常见但又令人头痛的问题。循环注入指的是两个或多个类相互依赖,无法通过传统的依赖注入方式解决的情况。总结起来,通过使用@Lazy和@Autowired注解,可以轻松地解决三个类之间的循环注入问题。需要注意的是,@Lazy注解只能用于单例模式的Bean。

weixin_53390559的博客 838

小黄鸭机器人技术全解-第 07 章 关节自由度与行程参数

—鸭子歪着头转头时,转的平面是斜的,这正是它"灵动"感的来源。仿真里这是自动的(轴定义在父刚体系),复刻时不需要做任何事——

yolo模型训练找我,AI游戏合作找我 66

工业激光器核心参数详解与选型实战:从理论到产线落地(五)

本文深入解析了脉冲激光加工的三大核心参数——脉宽、重复频率和脉冲能量的协同作用机制。通过公式推导和产线案例,揭示了参数设置对加工良率的关键影响:1. 脉宽决定热影响区大小,缩短脉宽可显著提升加工精度;2. 重复频率影响加工速度和热积累效应,需平衡效率与质量;3. 脉冲能量决定材料去除量,过大易导致加工缺陷。文中以ABS塑料打标、模具清洗和微孔钻孔为例,展示了参数优化如何将良率从65%提升至99%,并提供了不同应用场景的参数选型表和调试技巧,强调峰值功率比平均功率更具决定性作用。

weixin_44520581的博客 2421

Spring源码剖析 循环注入

觉得之前那篇阅读性比价差,主要第一次用csdn博客,很多语法不懂,导致文章可读性不好,我彻底更新一下;打算把spring集合写完; 长文警告 正文开始 众所周知spring在默认单例的情况下是支持循环引用的 为了节省图片大小我把那些可以动得gif图片做成了只循环一次,如果看到图片不动了请右键选择在新标签打开,那么图片就会动,手机用户则更简单,直接手指点击图片便能看到动图,每张gif我都标识了,如果没有标识则为静态图片; Appconfig.java类的代码 @Configurable @C

qq_37419449的博客 4949

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

解决spring循环依赖的一种思路

这不是标准、推荐方案,而是:老旧项目、无法重构的历史代码、紧急上线时的临时兜底方案。

m0_61346425的博客 208

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Spring解决循环依赖的思路与代码实现

细心的你一定已经发现了,上面的缓存map存在一个问题,就是存放到这个map中的bean,并不保证已经完全可用了,我们在实例化之后,属性注入之前,就为了提前暴露,把bean对象存放到这个map中,而Spring肯定需要另外一级缓存,只存在已经完全可用的bean。我们上述的2级缓存,只处理的了原始对象,但是还未涉及到代理对象。,从上面的解决存换依赖的思路可知,我们使用了一个map来缓存提前暴露的对象,所以,我们在目标bean属性注入的时候,从map中拿到的是同一个beanA的对象,如果这个scope=

m0_73735578的博客 975

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

超硬核,SQL注入之时间盲注,原理+步骤+实战思路

延时注入,什么是时间盲注?时间盲注原理?时间盲注使用步骤?时间盲注使用场景?时间盲注Python脚本。

wangyuxiang946的博客 2万+

Spring如何解决循环依赖

烂大街的Spring循环依赖该如何回答? 什么是循环依赖? 从字面上来理解就是A依赖B的同时B也依赖了A,就像上面这样,或者C依赖与自己本身。体现到代码层次就是这个样子 @Component public class A { // A中注入了B @Autowired private B b; } --- @Component public class B { // B中注入了A @Autowired private A a; } --- // 自己依赖自己 @Component public c

意田天的博客 2万+

傻傻分不清:Spring IoC注入,自动装配与循环依赖

什么是IoC IoC注入方式 优缺点比较 循环依赖 解决办法 1.改用setter注入方式(推荐) 2. @Lazy注解 3. 使用ApplicationContextAware, InitializingBean 什么是IoC 在创建新的Bean时,IoC容器会自动注入新Bean的所依赖的其他Bean,而无须自己手动创建。 IoC注入方式 构造器注入 ...

programmer_at的专栏 7778

Spring解决循环依赖的方法

从逻辑上说明Spring是怎么解决循环依赖的,然后从源码上看Spring是怎么做的。

lkforce 5万+

springboot单例模式注入对象_Spring Bean注入/单例理解/循环依赖

理解循环依赖问题,首先明白spring有四种注入方式。第一种,SET注入a类中持有b类的引用,并且a类有b的set方法。在bean中添加标签即可注入。实质上是将b实例化,然后调用set方法注入。 第二种,构造器注入a类中持有b类的引用,并且a的构造函数参数中有b。实质上就是通过构造函数注入,创建a对象时要把b对象传进去。 第三种,静态工厂如果有需要静态工厂实例化的类,不能通过静态工厂.方法...

weixin_36378832的博客 1826

构造器注入导致的循环依赖问题及解决方案

构造器注入导致的循环依赖问题及解决方案目录概述实现思路分析循环依赖问题解决方案方式二相关工具如下:分析:小结:参考资料和推荐阅读 LD is tigger forever,CG are not brothers forever, throw the pot and shine forever. Modesty is not false, solid is not naive, treacherous but not deceitful, stay with good people, and stay a

专注Java(全栈)应用开发,求知若渴,虚心若愚,talk is cheap, show me the code. 1359

spring解决循环依赖思路

第三级:singletonFactories Map

NULL_YM 932

Spring解决循环依赖的思路

首先说明一下,本文讨论的循环依赖仅针对scope为singleton,且非构造函数注入的bean。如果是prototype的bean,或者使用的是构造函数注入,Spring会直接抛出异常,并不会去通过什么手段解决这些循环依赖。我们在使用Spring的过程中,会有很多bean依赖注入的场景。因为没有严格的规范约束,我们在使用的过程中,比较容易就会产生beanA依赖beanB,而beanB又依赖beanA的情况。

m0_71777195的博客 114

feign注入报循环依赖错误 & 开启feign对sentinel的支持后出现循环依赖

feign注入报循环依赖错误 & 开启feign对sentinel的支持后出现循环依赖。 通过懒加载方式

qq_44833733的博客 1757
上一篇: 实用ASCII码表
下一篇: 摘自新华字典的一段话
brain_
博客等级 码龄22年 4粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值