spring框架springbean依赖及单一项目

spring框架springbean依赖及单一项目

依赖

复制代码
<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </dependency>

完整如下

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.5.11</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>org.example</groupId>
    <artifactId>springbean</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springbean</name>
    <description>springbean</description>
    <url/>
    <licenses>
        <license/>
    </licenses>
    <developers>
        <developer/>
    </developers>
    <scm>
        <connection/>
        <developerConnection/>
        <tag/>
        <url/>
    </scm>
    <properties>
        <java.version>10</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

主要考虑如下

springboot项目配置:

java.version配置与引用java依赖版本,项目配置是运行编译使用的jdk(环境配置)。

如何让idea应用短暂使用特定java环境变量终端,如下

复制代码
$env:JAVA_HOME="D:\software\jdk17\jdk-17.0.12"

使用mvn package

编译机制

jdk运行环境的版本要大于jdk编写的版本配置,要大于依赖字节版本。即3大于1,且大于2。

jdk编写的大于依赖版本字节,即1大于2。

执行mvn package就是使用当前电脑的jdk环境配置打包的,而idea的project struct的jdk配置是运行时配置的。

若jdk编写版本大于jdk系统运行环境,即1大于3,

不执行mvn package,执行idea 运行

若jdk编写大于jdk运行环境,但依赖字节版本大于jdk运行环境,则报错依赖:

执行mvn compile的时候无论系统环境jdk变量版本是多少,只要项目的

使用低版本的系统环境jdk编译mvn compile 就会

mvn compile运行执行的是源码生成class字节码后的文件。所以想要测试命令,需要将class字节码文件删除。

测试失败后需要及时删除class字节码,否则如下图

使用idea的run是使用idea的project struct的jdk环境并生成class字节码文件并填入指定的jdk环境。之后运行mvn compile就使用这些字节码文件就成功了。

使用idea的build project就没有填入指定的jdk环境。

idea特征:

project struct的jdk配置会影响本地系统环境终端的mvn compile的jdk版本

idea的build project需要在没有生成字节码的情况下才能生成完整的字节码。

BeanFactory 报错并不是官方的人提前把各种错误信息手动写好等你触发

真正的原因是:Spring 在运行时创建和管理 Bean 的过程中检测到问题,然后抛出对应的异常类。这些异常是框架设计好的机制,而不是人工一个个试出来再填进去的。

相关推荐
梦想的旅途22 分钟前
企业微信API二次开发:外部群模块功能清单与全场景对接
java·python·企业微信
Bigger9 分钟前
Han:一个让 AI Agent 也能做出高级中国风页面的 CSS 设计系统
前端·ai编程·设计
梦想的旅途222 分钟前
企业微信自动化:自动发送文本、图片、文件
前端·数据库·microsoft
校招VIP25 分钟前
[校大]27届东华理工大学JAVA简历:中厂简历通过率30%
java·秋招·校招·实习·产品岗·27届
老白干1 小时前
基于 Spring AOP 的操作日志记录:以 DeptController 增删接口为例
java·python·spring
MartinYeung51 小时前
npm爆发大规模供应链攻击 蠕虫污染 2000+ 个包版本: 深度技术剖析
前端·npm·node.js
huabuyu1 小时前
治好 AI 长回答的卡、闪、膨胀:渲染开销从 50 万次砍到 1000
前端·javascript
嘟嘟07171 小时前
学了 useContext 还是不理解?从 prop drilling 到 useMouse 的一次完整复盘
前端·javascript·react.js
玉宇夕落1 小时前
React useContext 与自定义 Hook —— 从零到一理解跨组件通信与状态共享
前端
涛涛ing1 小时前
一行命令让AI帮你修性能问题:perfpatch正在改变前端优化的游戏规则
前端