U-Boot (abstract)

U-Boot是一款遵循GPL条款的开源项目,支持多种嵌入式操作系统和处理器,提供系统引导、设备驱动等功能,是嵌入式开发领域的强大工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。

 

简介

U-Boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。其目前要 支持的目标操作系统是OpenBSD,NetBSD, FreeBSD,4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR,VxWorks, LynxOS, pSOS, QNX, RTEMS, ARTOS。这是U-Boot中Universal的一层含义,另外一层含义则是U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、 x86、ARM、NIOS、XScale等诸多常用系列的处理器。这两个特点正是U-Boot项目的开发目标,即支持尽可能多的嵌入式处理器和 嵌入式操作系统。

就目前来看,U-Boot对PowerPC系列处理器支持最为丰富,对Linux的支持最完善。其它系列的处理器和操作系统基本是在 2002年11 月PPCBOOT改名为U-Boot后逐步扩充的。从PPCBOOT向U-Boot的顺利过渡,很大程度上归功于U-Boot的维护人德国DENX软件工 程中心Wolfgang Denk[以下简称W.D]本人精湛专业水平和持着不懈的努力。当前,U-Boot项目正在他的领军之下,众多有志于开放源码BOOT LOADER移植工作的嵌入式开发人员正如火如荼地将各个不同系列嵌入式处理器的移植工作不断展开和深入,以支持更多的嵌入式操作系统的装载与引导。

    选择U-Boot的理由:

  ① 开放源码;

  ② 支持多种嵌入式操作系统内核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS;

  ③ 支持多个处理器系列,如PowerPC、ARM、x86、MIPS、XScale;

  ④ 较高的可靠性和稳定性;

  ⑤ 高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要求、产品发布等;

  ⑥ 丰富的设备驱动源码,如串口、以太网、SDRAM、 FLASH、LCD、NVRAM、EEPROM、RTC、键盘等;

  ⑦ 较为丰富的开发调试文档与强大的网络技术支持;

 

目录结构

* board 目标板相关文件,主要包含SDRAM、FLASH驱动;

  * common 独立于处理器体系结构的通用代码,如内存大小探测与故障检测;

  * cpu 与处理器相关的文件。如mpc8xx子目录下含串口、网口、LCD驱动及中断初始化等文件;

  * driver 通用设备驱动,如CFI FLASH驱动(目前对INTEL FLASH支持较好)

  * doc U-Boot的说明文档;

  * examples可在U-Boot下运行的示例程序;如hello_world.c,timer.c;

  * include U-Boot头文件;尤其configs子目录下与目标板相关的配置头文件是移植过程中经常要修改的文件;

  * lib_xxx 处理器体系相关的文件,如lib_ppc,lib_arm目录分别包含与PowerPC、ARM体系结构相关的文件;

  * net 与网络功能相关的文件目录,如bootp,nfs,tftp;

  * post 上电自检文件目录。尚有待于进一步完善;

  * rtc RTC驱动程序;

* tools 用于创建U-Boot S-RECORD和BIN镜像文件的工具;

 

 

主要功能

U-Boot可支持的主要功能列表

  * 系统引导;

  * 支持NFS挂载、RAMDISK(压缩或非压缩)形式的根文件系统;

  * 支持NFS挂载、从FLASH中引导压缩或非压缩系统内核;

  * 基本辅助功能 强大的操作系统接口功能;可灵活设置、传递多个关键参数给操作系统,适合系统在不同开发阶段的调试要求与产品发布,尤对Linux支持最为强劲;

  * 支持目标板环境参数多种存储方式,如FLASH、NVRAM、EEPROM;

  * CRC32校验,可校验FLASH中内核、RAMDISK镜像文件是否完好;

  * 设备驱动 串口、SDRAM、FLASH、以太网、LCD、NVRAM、EEPROM、键盘、USB、PCMCIA、PCI、RTC等驱动支持;

  * 上电自检功能 SDRAM、FLASH大小自动检测;SDRAM故障检测;CPU型号;

* 特殊功能 XIP内核引导;

 

U-boot启动流程

  大多数BootLoader都分为stage1和stage2两大部分,U-boot也不例 外。依赖于cpu体系结构的代码(如设备初始化代码等)通常都放在stage1?且可以用汇编语言来实现,而stage2则通常用C语言来实现,这样可以 实现复杂的功能,而且有更好的可读性和移植性。

  1 stage1(start.s代码结构)

  U-boot的stage1代码通常放在start.s文件中,它用汇编语言写成,其主要代码 部分如下:

  (1) 定义入口。由于一个可执行的image必须有一个入口点,并且只能有一个全局入口,通常这个入口放在rom(Flash)的0x0地址,因此,必须通知编 译器以使其知道这个入口,该工作可通过修改连接器脚本来完成。

  (2)设置异常向量(exception vector)。

  (3)设置CPU的速度、时钟频率及中断控制寄存器。

  (4)初始化内存控制器 。

  (5)将rom中的程序复制到ram中。

  (6)初始化堆栈 。

  (7)转到ram中执行,该工作可使用指令ldrpc来完成。

  2 stage2?C语言代码部分?

  lib arm/board.c中的start armboot是C语言开始的函数,也是整个启动代码中C语言的主函数,同时还是整个u-boot(armboot)的主函数,该函数主要完成如下操作:

  (1)调用一系列的初始化函数。

  (2)初始化flash设备。

  (3)初始化系统内存分配函数。

  (4)如果目标系统拥有nand设备,则初始化nand设备。

  (5)如果目标系统有显示设备,则初始化该类设备。

  (6)初始化相关网络设备,填写ip,c地址等。

  (7)进入命令循环(即整个boot的工作循环),接受用户从串口输入的命令,然后进行相应的工作。


2025-06-09T22:03:14.229+08:00 INFO 1 --- [ruoyi-archives] [ main] d.s.b.c.e.WelcomeLogoApplicationListener : [DUBBO] :: Dubbo (v3.2.14) : https://github.com/apache/dubbo :: Discuss group : dev@dubbo.apache.org , dubbo version: 3.2.14, current host: 172.17.0.11 Spring Boot Version: 3.2.9 Spring Application Name: ruoyi-archives _ _ | | (_) __ _ _ __ ___| |__ ___ _____ ___ / _` | '__/ __| '_ \| \ \ / / _ \/ __| | (_| | | | (__| | | | |\ V / __/\__ \ \__,_|_| \___|_| |_|_| \_/ \___||___/ 2025-06-09T22:03:14.400+08:00 INFO 1 --- [ruoyi-archives] [ main] o.d.archives.RuoYiArchivesApplication : Starting RuoYiArchivesApplication using Java 17.0.15 with PID 1 (/ruoyi-archives.jar started by root in /) 2025-06-09T22:03:14.401+08:00 INFO 1 --- [ruoyi-archives] [ main] o.d.archives.RuoYiArchivesApplication : The following 1 profile is active: "prod" 2025-06-09T22:03:14.484+08:00 WARN 1 --- [ruoyi-archives] [ main] c.a.c.n.c.NacosConfigDataLoader : [Nacos Config] config[dataId=ruoyi-archives.yml, group=DEFAULT_GROUP] is empty 2025-06-09T22:03:14.484+08:00 WARN 1 --- [ruoyi-archives] [ main] c.a.c.n.c.NacosConfigDataLoader : [Nacos Config] config[dataId=datasource.yml, group=DEFAULT_GROUP] is empty 2025-06-09T22:03:14.484+08:00 WARN 1 --- [ruoyi-archives] [ main] c.a.c.n.c.NacosConfigDataLoader : [Nacos Config] config[dataId=application-common.yml, group=DEFAULT_GROUP] is empty 2025-06-09T22:03:16.045+08:00 INFO 1 --- [ruoyi-archives] [ main] o.apache.dubbo.rpc.model.FrameworkModel : [DUBBO] Dubbo Framework[1] is created, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.061+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.r.GlobalResourcesRepository : [DUBBO] Creating global shared handler ..., dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.160+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.dubbo.rpc.model.ApplicationModel : [DUBBO] Dubbo Application[1.0](unknown) is created, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.162+08:00 INFO 1 --- [ruoyi-archives] [ main] org.apache.dubbo.rpc.model.ScopeModel : [DUBBO] Dubbo Module[1.0.0] is created, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.202+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.context.AbstractConfigManager : [DUBBO] Config settings: {dubbo.config.mode=STRICT, dubbo.config.ignore-duplicated-interface=false}, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.203+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.context.AbstractConfigManager : [DUBBO] Config settings: {dubbo.config.mode=STRICT, dubbo.config.ignore-duplicated-interface=false}, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.221+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.utils.SerializeSecurityManager : [DUBBO] Serialize check serializable: true, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.222+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize allow list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-3.2.14.jar!/security/serialize.allowlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.249+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize allow list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-common-3.2.14.jar!/security/serialize.allowlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.250+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize blocked list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-3.2.14.jar!/security/serialize.blockedlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.294+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize blocked list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-common-3.2.14.jar!/security/serialize.blockedlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.417+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.dubbo.rpc.model.ApplicationModel : [DUBBO] Dubbo Application[1.1](unknown) is created, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.418+08:00 INFO 1 --- [ruoyi-archives] [ main] org.apache.dubbo.rpc.model.ScopeModel : [DUBBO] Dubbo Module[1.1.0] is created, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.432+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.context.AbstractConfigManager : [DUBBO] Config settings: {dubbo.config.mode=STRICT, dubbo.config.ignore-duplicated-interface=false}, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.432+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.context.AbstractConfigManager : [DUBBO] Config settings: {dubbo.config.mode=STRICT, dubbo.config.ignore-duplicated-interface=false}, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.440+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize allow list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-3.2.14.jar!/security/serialize.allowlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.440+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize allow list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-common-3.2.14.jar!/security/serialize.allowlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.440+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize blocked list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-3.2.14.jar!/security/serialize.blockedlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.441+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize blocked list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-common-3.2.14.jar!/security/serialize.blockedlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.463+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.s.c.DubboSpringInitializer : [DUBBO] Use default application: Dubbo Application[1.1](unknown), dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.463+08:00 INFO 1 --- [ruoyi-archives] [ main] org.apache.dubbo.rpc.model.ScopeModel : [DUBBO] Dubbo Module[1.1.1] is created, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.471+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.context.AbstractConfigManager : [DUBBO] Config settings: {dubbo.config.mode=STRICT, dubbo.config.ignore-duplicated-interface=false}, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.476+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize allow list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-3.2.14.jar!/security/serialize.allowlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.476+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize allow list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-common-3.2.14.jar!/security/serialize.allowlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.477+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize blocked list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-3.2.14.jar!/security/serialize.blockedlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.477+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize blocked list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-common-3.2.14.jar!/security/serialize.blockedlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.480+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.s.c.DubboSpringInitializer : [DUBBO] Use default module model of target application: Dubbo Module[1.1.1], dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.480+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.s.c.DubboSpringInitializer : [DUBBO] Bind Dubbo Module[1.1.1] to spring container: org.springframework.beans.factory.support.DefaultListableBeanFactory@5b88b8e, dubbo version: 3.2.14, current host: 172.17.0.11 ___ _ _ ___ | __| __ _ ___ | || | ___ | __| ___ | _| / _` | (_-< \_, | |___| | _| (_-< |___| \__,_| /__/_ _|__/ _____ |___| /__/_ _|"""""|_|"""""|_|"""""|_| """"|_| |_|"""""|_|"""""| "`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-' -----------------------------------------------------------> :: project :: Easy-Es > :: version :: 2.0.0 > :: home :: https://easy-es.cn/ > :: community :: https://dromara.org/ > :: wechat :: 252645816, add and become muscle man! > -----------------------------------------------------------> 2025-06-09T22:03:17.306+08:00 INFO 1 --- [ruoyi-archives] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode 2025-06-09T22:03:17.310+08:00 INFO 1 --- [ruoyi-archives] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. 2025-06-09T22:03:17.355+08:00 INFO 1 --- [ruoyi-archives] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 27 ms. Found 0 Redis repository interfaces. 2025-06-09T22:03:17.511+08:00 INFO 1 --- [ruoyi-archives] [ main] c.s.b.f.a.ServiceAnnotationPostProcessor : [DUBBO] BeanNameGenerator bean can't be found in BeanFactory with name [org.springframework.context.annotation.internalConfigurationBeanNameGenerator], dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:17.511+08:00 INFO 1 --- [ruoyi-archives] [ main] c.s.b.f.a.ServiceAnnotationPostProcessor : [DUBBO] BeanNameGenerator will be a instance of org.springframework.context.annotation.AnnotationBeanNameGenerator , it maybe a potential problem on bean name generation., dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:17.521+08:00 INFO 1 --- [ruoyi-archives] [ main] c.s.b.f.a.ServiceAnnotationPostProcessor : [DUBBO] Found 1 classes annotated by Dubbo @Service under package [org.dromara.archives]: [org.dromara.archives.dubbo.ArchivesDubbonServiceImpl], dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:17.539+08:00 INFO 1 --- [ruoyi-archives] [ main] c.s.b.f.a.ServiceAnnotationPostProcessor : [DUBBO] Register ServiceBean[ServiceBean:org.dromara.archives.service.ArchivesServiceDubbon::]: Root bean: class [org.apache.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:17.556+08:00 WARN 1 --- [ruoyi-archives] [ main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[org.dromara.archives]' package. Please check your configuration. 2025-06-09T22:03:17.558+08:00 WARN 1 --- [ruoyi-archives] [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'org.dromara.common.mybatis.config.MybatisPlusConfiguration#MapperScannerRegistrar#0' defined in null: Could not resolve placeholder 'mybatis-plus.mapperPackage' in value "${mybatis-plus.mapperPackage}" 2025-06-09T22:03:17.591+08:00 INFO 1 --- [ruoyi-archives] [ main] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2025-06-09T22:03:17.643+08:00 ERROR 1 --- [ruoyi-archives] [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'org.dromara.common.mybatis.config.MybatisPlusConfiguration#MapperScannerRegistrar#0' defined in null: Could not resolve placeholder 'mybatis-plus.mapperPackage' in value "${mybatis-plus.mapperPackage}" at org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties(PlaceholderConfigurerSupport.java:230) ~[spring-beans-6.1.12.jar!/:6.1.12] at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.processProperties(PropertySourcesPlaceholderConfigurer.java:207) ~[spring-context-6.1.12.jar!/:6.1.12] at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.postProcessBeanFactory(PropertySourcesPlaceholderConfigurer.java:173) ~[spring-context-6.1.12.jar!/:6.1.12] at org.mybatis.spring.mapper.MapperScannerConfigurer.processPropertyPlaceHolders(MapperScannerConfigurer.java:406) ~[mybatis-spring-3.0.3.jar!/:3.0.3] at org.mybatis.spring.mapper.MapperScannerConfigurer.postProcessBeanDefinitionRegistry(MapperScannerConfigurer.java:360) ~[mybatis-spring-3.0.3.jar!/:3.0.3] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349) ~[spring-context-6.1.12.jar!/:6.1.12] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:148) ~[spring-context-6.1.12.jar!/:6.1.12] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:789) ~[spring-context-6.1.12.jar!/:6.1.12] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:607) ~[spring-context-6.1.12.jar!/:6.1.12] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.9.jar!/:3.2.9] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.9.jar!/:3.2.9] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.9.jar!/:3.2.9] at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.2.9.jar!/:3.2.9] at org.dromara.archives.RuoYiArchivesApplication.main(RuoYiArchivesApplication.java:28) ~[!/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na] at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) ~[ruoyi-archives.jar:na] at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[ruoyi-archives.jar:na] at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[ruoyi-archives.jar:na] Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'mybatis-plus.mapperPackage' in value "${mybatis-plus.mapperPackage}" at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:180) ~[spring-core-6.1.12.jar!/:6.1.12] at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) ~[spring-core-6.1.12.jar!/:6.1.12] at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:239) ~[spring-core-6.1.12.jar!/:6.1.12] at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210) ~[spring-core-6.1.12.jar!/:6.1.12] at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:200) ~[spring-context-6.1.12.jar!/:6.1.12] at org.springframework.beans.factory.config.BeanDefinitionVisitor.resolveStringValue(BeanDefinitionVisitor.java:293) ~[spring-beans-6.1.12.jar!/:6.1.12] at org.springframework.beans.factory.config.BeanDefinitionVisitor.resolveValue(BeanDefinitionVisitor.java:219) ~[spring-beans-6.1.12.jar!/:6.1.12] at org.springframework.beans.factory.config.BeanDefinitionVisitor.visitPropertyValues(BeanDefinitionVisitor.java:147) ~[spring-beans-6.1.12.jar!/:6.1.12] at org.springframework.beans.factory.config.BeanDefinitionVisitor.visitBeanDefinition(BeanDefinitionVisitor.java:85) ~[spring-beans-6.1.12.jar!/:6.1.12] at org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties(PlaceholderConfigurerSupport.java:227) ~[spring-beans-6.1.12.jar!/:6.1.12] ... 20 common frames omitted 2025-06-09T22:03:17.647+08:00 WARN 1 --- [ruoyi-archives] [ Thread-6] c.a.nacos.common.notify.NotifyCenter : [NotifyCenter] Start destroying Publisher 2025-06-09T22:03:17.647+08:00 WARN 1 --- [ruoyi-archives] [ Thread-4] c.a.n.common.http.HttpClientBeanHolder : [HttpClientBeanHolder] Start destroying common HttpClient 分析问题给出解决办法
06-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值