- 博客(43)
- 资源 (5)
- 收藏
- 关注
原创 【Spring Boot】Spring Boot解决循环依赖
循环依赖指两个或多个Bean相互依赖,形成闭环(如A依赖B,B依赖A)。Spring Boot默认禁止循环依赖,启动时会抛出。需通过设计调整或技术手段解决。
2025-10-31 16:23:29
406
原创 【Spring Boot】Spring Boot解决循环依赖
循环依赖是指两个或多个Bean相互依赖,形成闭环。例如Bean A依赖Bean B,Bean B又依赖Bean A。Spring默认不支持这种场景,会抛出。
2025-10-31 16:22:57
275
1
原创 【Spring Boot】Spring Boot解决循环依赖
循环依赖指两个或多个Bean相互依赖,形成闭环(如A依赖B,B又依赖A)。Spring Boot默认允许单例Bean的循环依赖,但原型(Prototype)作用域的循环依赖会直接抛出异常。
2025-10-31 16:22:22
302
原创 Java进阶之多线程
多线程允许程序同时执行多个任务,提高资源利用率和响应速度。每个线程独立运行,共享进程的内存空间,但拥有独立的栈空间。线程生命周期:继承Thread类:实现Runnable接口(推荐):优势:避免单继承限制,适合资源共享。多线程共享数据时需解决竞态条件,常用同步方法:synchronized关键字: ReentrantLock(更灵活):支持公平锁、可中断锁等高级特性。wait()/notify()机制:Condition接口(与配合):避免频繁创建/销毁线程,推荐
2025-10-31 16:11:50
396
原创 【Java】如何使用jdbc连接并操作MySQL,一文读
JDBC是Java操作MySQL数据库的标准方式。通过获取连接,使用Statement或执行SQL,处理结果集并管理事务。合理使用连接池和批量操作能显著提升性能。
2025-10-31 16:11:05
258
原创 【mysql】锁机制 - 2.行锁间隙锁临键锁
行锁是针对索引记录的锁定机制,仅锁定符合条件的单行数据。InnoDB 通过给索引项加锁实现行锁,若查询未使用索引则会退化为表锁。间隙锁锁定索引记录之间的间隙,防止其他事务在范围内插入新记录。主要作用在 RR(可重复读)隔离级别,解决幻读问题。临键锁是行锁与间隙锁的组合,锁定索引记录及其前面的间隙。InnoDB 默认采用此锁机制,锁定范围遵循左开右闭原则。
2025-10-31 16:08:42
372
原创 【Spring Boot】Spring Boot解决循环依赖
循环依赖是指两个或多个Bean相互依赖,形成闭环。例如Bean A依赖Bean B,Bean B又依赖Bean A。Spring Boot默认支持单例作用域的循环依赖,但原型作用域不支持。
2025-10-31 16:07:29
451
原创 【玩转全栈】----Django基本配置和介绍
Django 是一个高级 Python Web 框架,遵循“快速开发”和“DRY(Don't Repeat Yourself)”原则。它提供了强大的 ORM、自带管理后台、模板引擎和安全性功能,适合快速构建复杂的 Web 应用。Django 采用 MTV(Model-Template-View)模式,类似于 MVC。在")
2025-10-31 16:06:01
501
原创 【Spring Boot】Spring Boot解决循环依赖
循环依赖指两个或多个Bean相互依赖,形成闭环(如A依赖B,B依赖A)。Spring Boot默认通过三级缓存机制解决单例Bean的循环依赖,但某些场景(如构造函数注入、原型作用域Bean)仍可能报错。
2025-10-31 15:29:28
397
原创 【Spring Boot】Spring Boot解决循环依赖
循环依赖指的是两个或多个Bean相互依赖,形成闭环。例如Bean A依赖Bean B,Bean B又依赖Bean A。Spring Boot默认情况下会抛出。Spring通过Setter注入或字段注入可以处理部分循环依赖场景,但这种方式掩盖了设计问题。通过提取公共逻辑到第三方类,或使用接口/抽象层解耦。这是最根本的解决方案,推荐优先考虑。注解,延迟加载打破循环。这种方式适用于非强依赖的场景。明确指定初始化顺序,但这种方式仅适用于特定场景。在其中一个依赖的Bean上添加。
2025-10-31 15:26:49
943
原创 【Spring Boot】Spring Boot解决循环依赖
Spring 默认通过三级缓存处理单例 Bean 的循环依赖(属性注入方式)。优先选择 Setter 注入而非 Field 注入,以保持代码可测试性。循环依赖指两个或多个 Bean 相互依赖,形成闭环。Spring Boot 默认支持部分循环依赖场景,但需注意设计问题和解决方式。,因此不推荐用于解决循环依赖。但可通过重构代码设计避免,例如将共用逻辑提取到第三方 Bean。,延迟实际依赖的初始化,打破循环链。适用于非强依赖的场景。明确指定加载顺序,但需谨慎使用以避免复杂依赖链。构造器注入在启动时会直接抛出。
2025-10-31 15:26:08
450
原创 【Spring Boot】Spring Boot解决循环依赖
循环依赖指两个或多个Bean相互依赖,形成闭环。例如Bean A依赖Bean B,Bean B又依赖Bean A。Spring容器在初始化时会抛出,导致应用启动失败。循环依赖指两个或多个Bean相互依赖,形成闭环。例如Bean A依赖Bean B,Bean B又依赖Bean A。Spring容器在初始化时会抛出,导致应用启动失败。
2025-10-31 15:25:39
436
转载 linux输入子系统
1、为何引入input system? 以前我们写一些输入设备(键盘、鼠标等)的驱动都是采用字符设备、混杂设备处理的。问题由此而来,Linux开源社区的大神们看到了这大量输入设备如此分散不堪,有木有可以实现一种机制,可以对分散的、不同类别的输入设备进行统一的驱动,所以才出现了输入子系统。 输入子系统引入的好处:(1)统一了物理形态各异的相似的输入设备的处理功能。例如,各种
2016-11-01 20:15:09
436
转载 SD/MMC 初始化及热插拔检测机制
SD卡的技术是基于MultiMedia卡(MMC)格式上发展而来,SD卡与MMC卡保持着向上兼容。SD卡的内部结构主要分两部分:SD控制器和NAND存储器。 SD卡类型总共分成三种:MMC卡,结构类似SD卡,采用MMC协议;SD1.0,SD1.0卡最大支持2Gbyte;SD2.0,SD2.0卡最大容量HCSD可达32Gbyte。从MMC到SD1.0再到SD2.0协议是向上兼容
2015-07-22 16:03:01
6994
转载 在ubuntu下获取对应内核源码命令
输入:apt-cache search linux-source //查看内核版本输入:apt-get install linux-source-3.0.0 //获取对应版本的内核,默认安装在/usr/src目录下见:Ubuntu下构建内核源码树的方法 ubuntu下编译本机模块是否需要下载内核源码呢?答案是可以的。
2015-02-02 14:32:39
721
转载 基于linux-2.6.38.8内核的SDIO/wifi驱动分析
1、sdio接口层解析SDIO总线 SDIO总线 和 USB总线 类似,SDIO也有两端,其中一端是HOST端,另一端是device端。所有的 通信 都是 由HOST端 发送 命令 开始的,Device端只要能解析命令,就可以相互通信。 CLK信号:HOST给DEVICE的 时钟信号,每个时钟周期传输一个命令。 CMD信号:双向 的信号,用于传送 命令
2014-08-26 22:48:27
1064
原创 QUALCOMM MDM9X15 LCD初始化流程
先来看一下 board-9615.c 文件MACHINE_START(MSM9615_CDP, "QCT MSM9615 CDP").map_io = msm9615_map_io,.init_irq = msm9615_init_irq,.handle_irq = gic_handle_irq,.timer = &msm_timer,.init_machine =
2014-07-31 10:57:28
2862
转载 QCom MSM平台显示屏Framebuffer设备注册过程
本文是Android Display部分分析的一部分,描述屏Framebuffer设备注册过程。QC MSM7xxx/MSM8xxx平台本身就提供了很多接口的屏的支持,每种屏对应一个驱动文件。由于QC MSM平台显示驱动架构做了绝大部分的工作,驱动一块新的屏仅需要做很少量的工作。下面的过程是屏Framebuffer注册过程的分析。设备资源申请是在MACHINE_DESC中实现的。示
2014-07-31 10:20:19
1428
原创 linux popen函数学习
popen() 函数 用 创建管道 的 方式启动一个 进程, 并调用 shell. 因为 管道是被定义成单向的, 所以 type 参数 只能定义成 只读或者 只写, 不能是 两者同时, 结果流也相应的 是只读 或者 只写.command 参数 是 一个 字符串指针, 指向的是一个 以 null 结束符 结尾的字符串, 这个字符串包含 一个 shell 命令. 这个命令 被送到 /bin
2014-07-30 14:39:56
654
转载 USB枚举过程
1. 枚举是什么? 枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。调试USB设备,很重要的一点就是USB的枚举过程,只要枚举成功了,那么就已经成功大半了。 USB架构中, hub负责检测设备的连接和断开,利用其中断IN端点(Interrupt IN Endpoint)来向主机(Host)报告。在系统
2014-06-04 12:55:56
621
转载 执行shell脚本的三种不同情况
shell 脚本执行是一个很有意思的事情,有三种不同的基本情况。这也是linux系统灵活性的一种体现。在我开始做LFS之前,我只会做一种shell脚本的执行 方式。那就是在当前目录下 ./shell-script.sh。哈哈,最近看了一些文章的解释之后,发现我真是太土了。以前看过一些linux programming的书,知道fork的概念。fork是一种主要的linux创建子进程的方式。fo
2014-04-09 13:44:33
1732
转载 TR069协议向导—— 一个帮助你了解TR069协议的简明教程(二)
您也可以通过以下链接下载该文:http://download.youkuaiyun.com/source/994937 上接“TR069协议向导(一)”6.TR069协议的RPC函数(或称RPC方法) 如上所述ACS与CPE之间通过TR069协议特有的RPC方法进行互操作。 CPE函数由ACS调用,用来对CPE进行管理如:设置CPE参数、获取CPE参数、硬件升级
2014-02-13 10:07:24
1249
转载 TR069协议向导——一个帮助你了解TR069协议的简明教程(一)
您也可以到以下地址下载:http://download.youkuaiyun.com/source/993034 1.为什么需要TR069 随着VoIP、IPTV等越来越多IP终端设备的普及(尤其在家庭中的普及),大量设备的配置和维护变得越来越困难,大大提高了网络产品运营商的成本,传统的基于SNMP的网管系统面对众多的终端设备时显得力不从心,限制了宽带接入市场的发展速度和规模。
2014-02-13 10:06:07
971
原创 使用Eclipse调试Android Launcher
使用Eclipse调试AndroidLauncher使用Eclipse新建一个AndroidProject 选择File->New->Android Project出现下面对话框填写Project Name,选择Createproject from existing source,点击Browse添加Launcher2的源代码路径packages\apps\Lau
2013-12-31 17:31:16
841
原创 Linux设备驱动初始化流程
Linux设备驱动初始化的流程一直不是很清楚,今天仔细看了一下linux初始化部分的代码才真正的搞明白,记录下来。 做过驱动的同学都知道,在arch/arm/目录下有和板级配置相关的文件,我使用的是Fresscale i.MX28开发板,在arch/arm/mach-mx28/目录下有mx28evk.c文件,该文件中有开发板初始化需要调用的函数。MACHINE_STAR
2013-09-17 17:49:11
3240
原创 Linux mdelay与msleep的区别以及中断中不能休眠的原因
在linux driver开发中,经常要用到延迟函数:msleep,mdelay.虽然msleep和mdelay都有延迟的作用,但他们是有区别的:mdelay是忙等待函数,在延迟过程中CPU无法运行其他任务。最好用于短时间的延时,否则太浪费CPU资源。msleep会使当前进程进入休眠状态,CPU可以去执行其他任务。由于msleep涉及到进程调度,延时误差比较大(进程调度需要耗费时间
2013-06-05 14:11:56
2788
1
转载 Linux LCD驱动(四)--驱动的实现
基本原理通过 framebuffer ,应用程序用 mmap 把显存映射到应用程序虚拟地址空间,将要显示的数据写入这个内存空间就可以在屏幕上显示出来;驱动程序分配系统内存作为显存;实现 file_operations 结构中的接口,为应用程序服务;实现 fb_ops 结构中的接口,控制和操作 LDC 控制器;驱动程序将显存的起始地址和长度传给 LCD 控制器的寄存器 (一般由 fb
2013-05-29 23:31:24
709
转载 Linux LCD驱动(三)--图形显示
3. BMP和JPEG图形显示程序3.1 在LCD上显示BMP或JPEG图片的主流程图首先,在程序开始前。要在nfs/dev目录下创建LCD的设备结点,设备名fb0,设备类型为字符设备,主设备号为29,次设备号为0。命令如下:mknod fb0 c 29 0在LCD上显示图象的主流程图如图3.1所示。程序一开始要调用open函数打开设备,然后调用ioctl获取设备相关信息,接下来就
2013-05-29 23:13:46
746
转载 linux LCD驱动(二)--FrameBuffer
2. Linux 驱动2.1 FrameBufferLinux是工作在保护模式下,所以用户态进程是无法像DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Lin仿显卡的功能,将显ux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。Framebuffer机制模卡硬件结构抽象掉,可以通过Framebuffer的读写直接对显存进行操作。用户可以将Framebuffer看成
2013-05-29 23:12:37
958
转载 linux LCD驱动(一)--硬件分析
一 实验内容简要描述1.实验目的学会驱动程序的编写方法,配置S3C2410的LCD驱动,以及在LCD屏上显示包括bmp和jpeg两种格式的图片2.实验内容(1)分析S3c2410实验箱LCD以及LCD控制器的硬件原理,据此找出相应的硬件设置参数,参考xcale实验箱关于lcd的设置,完成s3c2410实验箱LCD的设置(2)在LCD上显示
2013-05-29 23:10:46
683
转载 关于android不能启动的问题 untracked pid exited
ok6410nandflash init: untracked pid exited init: cannot find '/system/etc/init.OK6410.sh', disabling 'OK6410-setup'/system/bin/sh: can't access tty; job control turned off/ # enabling adbad
2013-05-09 15:49:03
5524
转载 LINUX系统休眠与唤醒
系统挂起(Suspend)是电源管理(APM&ACPI)的一个特性,给用户带来了很大的方便。Linux在2.6系列核心中对电源管理有了较好的支持,下面就谈谈Linux对系统挂起的支持情况。Linux对系统挂起的支持 Linux同时提供了对APM和ACPI的支持,当时两者是不兼容的,同一时刻只能有一种机制工作。由于ACPI的优越性,所以现在Linux将ACPI设为缺省的电源管理方案。对于一
2013-03-07 14:28:51
1065
原创 ubuntu安装samba实现与windows共享文件
最近重新在ubuntu上安装了samba服务器,记录下来,防止以后忘了怎么安装。 1、安装samba软件包 sudo apt-get install samba sudo apt-get install smbfs 2、给samba添加用户 sudo smbpasswd -a username(username必须是已存在的) 3、修改/e
2013-01-06 10:04:43
734
原创 linux中断下半部机制
Linux内核可以有三种方法来实现中断下半部:sotfirq、tasklet 和workqueue1、softirq软中断一般很少用于实现中断下半部,但tasklet是通过软中断实现的,所以先介绍软中断。字面理解,软中断就是软件实现的异步中断,它的优先级比硬中断低,但比普通进程优先级高,同时,它和硬中断一样不能休眠。 在kernel/softirq.c文件中有这样一个数组
2012-12-21 16:49:29
806
原创 Linux中console初始化流程
Linux中console初始化流程在init/main.c文件asmlinkage void __init start_kernel(void)函数中调用console_init()函数 (该函数位于driver/char/tty_io.c文件中) /* * Initialize the console device. This is called *earl
2012-12-18 16:42:01
1737
转载 ubuntu /mnt/hgfs目录下什么都没有
今天突然发现虚拟机ubuntu中 /mnt/hgfs/目录下什么都没有了,经常使用的与windows共享的文件夹竟然消失了。在网上苦苦寻找原因,发现通过下面的命令可以解决: sudo apt-get install open-vm-dkms sudo mount -t vmhgfs .host:/ /mnt/hgfs
2012-11-04 11:36:58
1487
原创 DNW中显示乱码
DNW中显示乱码[root@rootfs /]#ls[1;34mbin [0m [1;34mdev [0m [1;34metc [0m [1;34mhome [0m [1;34mlib [0m [1;34mmnt [0m [1;34mproc [0m [1;34msbin [0m [1;34msys [0m [1;34mtmp [0m [1;34musr [0m [1;34mvar [0m
2012-08-18 18:20:06
1484
原创 pppd移植
pppd的移植分为两个部分:1、内核的配置 Device Drivers ---> [*] Network device support ---> PPP (point-to-point protocol) support [*] PPP multilink s
2012-06-16 17:52:47
2055
SD/SDIO 协议
2014-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅