一、Java 项目目录结构标准

1.1 Java 项目标准目录结构总览

标准 Java 项目目录结构(以 Maven / Gradle 通用结构为基础):

project-root/
├── src/
│   ├── main/
│   │   ├── java/              # 主业务逻辑代码(核心 Java 类)
│   │   ├── resources/         # 配置资源文件(不包含 Java 类)
│   └── test/
│       ├── java/              # 测试代码(JUnit 单元测试)
│       └── resources/         # 测试时需要用到的资源文件
├── pom.xml                    # Maven 项目构建文件(Maven 项目)
├── build.gradle               # Gradle 项目构建文件(Gradle 项目)
├── README.md                  # 项目说明文件
├── target/ 或 build/          # 编译输出目录(自动生成)

1.2 各目录详细解释

>1. src/main/java

  • 存放 主程序代码(Java 源文件 .java)。

  • 按照包结构组织代码,如 com.example.appsrc/main/java/com/example/app/

示例结构:

src/main/java/
└── com/└── example/├── MainApp.java        // 启动类├── service/│   └── UserService.java└── model/└── User.java

>2. src/main/resources

  • 存放非代码类资源,如:

    • application.properties / application.yml(Spring Boot 配置)

    • 日志配置 log4j.xml

    • 数据库连接配置 jdbc.properties

    • 模板文件(HTML、freemarker、thymeleaf)

示例结构:

src/main/resources/
├── application.yml
├── logback.xml
└── static/└── index.html

注意:resources 下的文件在构建时会自动加入到 classpath,程序中可以通过ClassLoader.getResourceAsStream() 加载。

>3. src/test/java

  • 存放 测试代码,一般用于 JUnit 单元测试或集成测试。

  • 包结构应与 src/main/java 保持一致,便于测试类与实际类一一对应。

示例:

src/test/java/
└── com/└── example/└── service/└── UserServiceTest.java

>4. src/test/resources

  • 测试中需要的配置文件、模拟数据(如 JSON、YAML、mock 文件)等,作用同 main/resources,只在测试中可用。

1.3 项目根目录常见文件解释

文件/目录名说明
pom.xmlMaven 配置文件(声明依赖、插件、编译信息等)
build.gradleGradle 配置文件(同上)
README.md项目说明文件
.gitignoreGit 忽略文件配置
.idea/.vscode/IDE 项目文件
target/build/编译后生成的 .class.jar 等内容

1.4 包结构命名规范

包命名建议以公司域名倒序开头:

com.example.projectname.module

举例结构:

src/main/java/com/example/blog/
├── BlogApplication.java   # 主类
├── controller/            # 控制器层(MVC)
├── service/               # 业务逻辑
├── model/                 # 实体类(POJO)
├── repository/            # 持久层(DAO)
└── util/                  # 工具类

1.5 构建产物目录(自动生成)

对应构建工具:

  • Maven:target/

  • Gradle:build/

这些目录在执行 mvn package / gradle build 后自动生成,用于存放:

  • 编译后的 .class 文件

  • 打包后的 .jar / .war

  • 测试报告、日志、临时文件等

不建议手动修改,通常在 .gitignore 中忽略提交。

1.6 标准结构带来的好处

优点说明
 清晰模块分工将业务代码、测试、资源等分类明确
 IDE 支持良好IntelliJ IDEA / Eclipse 可直接识别
 自动化构建支持Maven / Gradle 构建无需额外配置
 测试代码与主逻辑隔离避免生产环境中包含调试/测试代码
 包路径与文件路径映射清晰com.xxx 对应目录结构清晰直观

1.7 整体结构图示意

project-root/
├── src/
│   ├── main/
│   │   ├── java/                ← Java 源码(包结构)
│   │   └── resources/           ← 配置文件、静态资源
│   └── test/
│       ├── java/                ← 测试源码(JUnit)
│       └── resources/           ← 测试用的配置或模拟数据
├── pom.xml / build.gradle       ← 构建工具配置
├── target/ 或 build/            ← 编译输出(自动生成)
├── README.md                    ← 项目说明
└── .gitignore                   ← Git 忽略文件

二、Maven

Maven 是 Java 领域中最常用的 构建工具和依赖管理系统,它的核心职责:

功能说明
 依赖管理自动下载第三方 jar 包
 构建项目编译、测试、打包、部署
 插件系统支持代码编译、打包、测试、部署等插件
 统一结构使用标准目录结构,便于协作开发

2.1 pom.xml 基本结构

Maven 项目的核心配置文件就是 pom.xml(Project Object Model)。

一个最基本的 pom.xml 文件如下:

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId>       <!-- 包名(组织ID) --><artifactId>my-app</artifactId>      <!-- 项目名 --><version>1.0.0</version>             <!-- 项目版本 --><packaging>jar</packaging>           <!-- 打包类型:jar/war/pom --></project>

2.2 依赖管理

Maven 依赖通过 <dependencies> 标签引入:

<dependencies><!-- 1. 生产依赖 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.12.0</version></dependency><!-- 2. 测试依赖 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope>   <!-- 只在测试时有效 --></dependency></dependencies>

常见的 scope 范围含义

scope说明
compile默认值,主程序运行和编译都需要(最常用)
test测试阶段使用
provided编译期需要,运行时不包含(如 Servlet API)
runtime编译期不需要,运行时需要
system本地 jar 包,需要手动指定路径,不推荐使用

2.3 依赖仓库与本地缓存

Maven 会自动从远程仓库(默认是 Maven Central)下载 jar 包,并保存在本地仓库中:

  • 默认本地仓库路径:
    ~/.m2/repository/

  • 如果依赖未指定版本,Maven 会报错或使用最近一次缓存的版本。

2.4 插件使用(build/plugins)

Maven 构建生命周期依赖插件来实现,比如编译、打包、测试等。

1)编译插件示例(maven-compiler-plugin

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source>     <!-- Java 源码版本 --><target>1.8</target>     <!-- 字节码版本 --></configuration></plugin></plugins>
</build>

2)打包插件示例(maven-jar-plugin

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.2.2</version><configuration><archive><manifest><mainClass>com.example.MainApp</mainClass> <!-- 指定启动类 --></manifest></archive></configuration></plugin></plugins>
</build>

打包后就可以直接运行:

java -jar target/my-app-1.0.0.jar

3)常用插件列表

插件名功能
maven-compiler-plugin编译 Java 代码
maven-jar-plugin打包 jar
maven-surefire-plugin运行单元测试
maven-dependency-plugin依赖分析、复制
maven-clean-plugin清理 target/ 目录
maven-assembly-plugin打包带依赖的 fat jar

2.5 完整 pom.xml 示例

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>myapp</artifactId><version>1.0.0</version><packaging>jar</packaging><dependencies><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.12.0</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency></dependencies><build><plugins><!-- 编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin><!-- 打包插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.2.2</version><configuration><archive><manifest><mainClass>com.example.MainApp</mainClass></manifest></archive></configuration></plugin></plugins></build>
</project>

2.6 常用 Maven 命令回顾

命令说明
mvn clean清理 target/
mvn compile编译主程序
mvn test执行测试类
mvn package编译 + 打包
mvn install安装 jar 到本地仓库
mvn dependency:tree查看依赖树
mvn help:effective-pom查看完整的有效 POM

2.7 小结

pom.xml 配置结构:
├── groupId / artifactId / version     # 基础身份
├── dependencies                       # 依赖管理
├── build
│   └── plugins                        # 构建插件
│       └── compiler / jar / ...
├── properties                         # 自定义属性(如 Java 版本)
└── profiles(可选)                  # 多环境配置(开发/测试/生产)

三、Gradle

Gradle 是一个现代化、基于 Groovy/Kotlin DSL 的构建工具,用于:

功能描述
 依赖管理类似 Maven,自动引入 jar 包
 构建流程编译、测试、打包、部署
 插件化自定义构建任务,灵活可编程
 性能高支持增量构建和缓存机制
 Android 开发官方推荐构建工具

3.1 Gradle 项目的基本目录结构

Gradle 项目也遵循和 Maven 相似的标准结构:

project-root/
├── build.gradle           ← Gradle 配置文件(核心)
├── settings.gradle        ← 项目名与模块声明
├── src/
│   ├── main/
│   │   ├── java/           ← 主程序代码
│   │   └── resources/      ← 资源文件
│   └── test/
│       ├── java/           ← 测试代码
│       └── resources/
├── build/                 ← 编译输出目录(自动生成)

3.2 build.gradle 详解(Groovy DSL)

下面是一个典型的 Java 项目的 build.gradle 文件结构:

// 1. 插件(功能)
plugins {id 'java'                         // 应用 Java 插件
}// 2. 项目信息
group = 'com.example'                // 组织名称
version = '1.0.0'                    // 项目版本// 3. 仓库(依赖从哪儿下)
repositories {mavenCentral()                   // 使用中央仓库
}// 4. 项目依赖
dependencies {// 编译期依赖(默认)implementation 'org.apache.commons:commons-lang3:3.12.0'// 测试期依赖testImplementation 'junit:junit:4.13.2'
}// 5. 编译器配置(可选)
tasks.withType(JavaCompile) {options.encoding = 'UTF-8'       // 设置文件编码
}

3.3 依赖导入方式(dependencies 块)

Gradle 支持多种依赖作用范围:

1)常见依赖作用域

作用域说明
implementation编译期 & 运行期依赖(推荐)
api公开依赖(用于库项目)
compileOnly编译期依赖(运行时无效)
runtimeOnly运行期依赖(编译时无效)
testImplementation测试代码专用依赖

2)示例依赖导入

dependencies {// 主程序依赖implementation 'com.google.guava:guava:32.1.2-jre'// 只在测试中用testImplementation 'junit:junit:4.13.2'// 编译期依赖但不打包compileOnly 'javax.servlet:servlet-api:2.5'// 运行期依赖(不参与编译)runtimeOnly 'mysql:mysql-connector-java:8.0.33'
}

3)本地 jar 文件依赖

dependencies {implementation files('libs/mylib.jar')
}

4)自定义仓库

repositories {mavenCentral()mavenLocal()maven {url 'https://repo.spring.io/milestone'}
}

3.4 常用插件及配置

Gradle 插件添加方式(Groovy DSL):

1)Java 插件(编译 Java 项目)

plugins {id 'java'
}

2)Application 插件(指定 main 方法并允许运行)

plugins {id 'application'
}application {mainClass = 'com.example.MainApp'
}

执行命令:

gradle run

3.5 常用命令

命令功能
gradle build编译、测试并打包
gradle clean清理 build 目录
gradle test执行测试类
gradle run运行 main 函数(需配置 application 插件)
gradle dependencies查看依赖树
gradle --offline离线构建

3.6 补充:settings.gradle 文件

如果是单模块项目:

rootProject.name = 'myapp'

如果是多模块项目:

rootProject.name = 'parent-project'
include 'module-a', 'module-b'

3.7 完整 build.gradle 示例

plugins {id 'java'id 'application'
}group = 'com.example'
version = '1.0.0'repositories {mavenCentral()
}dependencies {implementation 'org.apache.commons:commons-lang3:3.12.0'testImplementation 'junit:junit:4.13.2'
}application {mainClass = 'com.example.MainApp'
}tasks.withType(JavaCompile) {options.encoding = 'UTF-8'
}

3.8 小结

build.gradle
├── plugins                # 插件(java、application等)
├── group/version          # 项目信息
├── repositories           # 依赖仓库(mavenCentral)
├── dependencies           # 项目依赖(impl、testImpl)
├── application            # 入口类配置(mainClass)
└── tasks.withType         # 编译设置(编码、警告等)

四、单元测试

JUnit 是 Java 中最常用的单元测试框架,用于对 Java 方法进行自动化测试。

它的作用是:

功能描述
 自动验证函数行为比如:加法是否正确、异常是否抛出
 回归测试每次修改后自动跑测试,保证老功能没出问题
 提高质量提高代码的健壮性和可维护性
 自动集成可与 Maven/Gradle/CI/CD 集成自动执行测试

4.1 JUnit 常见版本

版本特点
JUnit 4.x最广泛使用,使用注解 @Test
JUnit 5.x新一代框架,分为 3 个模块(Jupiter、Platform、Vintage),更强大但结构更复杂

这里用最常见的 JUnit 4 讲解

4.2 Maven/Gradle 中引入 JUnit

Maven 中添加依赖:

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope>
</dependency>

Gradle 中添加依赖:

dependencies {testImplementation 'junit:junit:4.13.2'
}

4.3 测试代码目录规范

project-root/
├── src/
│   ├── main/
│   │   └── java/com/example/Calculator.java   ← 被测试类
│   └── test/
│       └── java/com/example/CalculatorTest.java ← 测试类

测试类放在 src/test/java包路径与主类保持一致

4.4 一个最基本的测试类示例

被测试类(Calculator.java):

package com.example;public class Calculator {public int add(int a, int b) {return a + b;}public int divide(int a, int b) {return a / b;  // 可能抛出异常}
}

对应测试类(CalculatorTest.java):

package com.example;import org.junit.Test;
import static org.junit.Assert.*;public class CalculatorTest {@Testpublic void testAdd() {Calculator c = new Calculator();int result = c.add(2, 3);assertEquals(5, result);  // 断言结果为 5}@Test(expected = ArithmeticException.class)public void testDivideByZero() {Calculator c = new Calculator();c.divide(10, 0);  // 应该抛异常}
}

4.5 常用断言方法(org.junit.Assert

方法说明
assertEquals(expected, actual)判断相等(值类型)
assertTrue(condition)判断为 true
assertFalse(condition)判断为 false
assertNull(obj)判断为 null
assertNotNull(obj)判断不为 null
assertArrayEquals(expected, actual)判断数组相等
assertThrows(Exception.class, () -> xxx)判断抛出异常(JUnit 5)
@Test(expected = Exception.class)判断抛出异常(JUnit 4)

4.6 测试生命周期注解(JUnit 4)

注解说明
@Before每个测试方法执行前运行(初始化)
@After每个测试方法执行后运行(清理)
@BeforeClass所有测试前执行一次(必须是 static)
@AfterClass所有测试后执行一次(必须是 static)
@Test表示该方法是测试方法

示例:

@Before
public void setUp() {System.out.println("每次测试前初始化");
}@After
public void tearDown() {System.out.println("每次测试后清理");
}

4.7 如何运行测试

方式 1:命令行运行

  • Maven:
mvn test
  • Gradle:
gradle test

方式 2:IDEA 中运行

  • 右键点击测试类或方法 → Run

>测试结果展示

测试通过 ✔ :绿色
测试失败 ✘ :红色(IDE 会显示期望值与实际值差异)

4.8 使用测试套件(Test Suite)

当有很多测试类时,可以用 @RunWith @SuiteClasses 组织一个测试集合:

import org.junit.runner.RunWith;
import org.junit.runners.Suite;@RunWith(Suite.class)
@Suite.SuiteClasses({CalculatorTest.class,OtherTest.class
})
public class AllTests {// 空类,仅用于组合多个测试
}

4.9 小结

测试类结构
├── Calculator.java         ← 生产类
├── CalculatorTest.java     ← 测试类
│   ├── @Test               ← 测试函数
│   ├── assertEquals 等     ← 断言
│   ├── @Before / @After    ← 生命周期钩子
├── 测试运行方式:mvn test / gradle test / IDE

五、Java 项目运行流程

一个标准 Java 项目的运行流程,大致可以总结为以下 5 步:

1. 确定主类(含 main 方法入口)
2. 编译源代码(.java → .class)
3. 加载依赖(jar 包、本地类)
4. 构建 ClassPath(类路径)
5. JVM 调用 main() 执行程序

5.1 主类(程序入口)

> 什么是主类?

主类是包含 public static void main(String[] args) 方法的类。

public class MainApp {public static void main(String[] args) {System.out.println("Hello, Java!");}
}
  • main 方法是 Java 应用程序的入口点

  • 它必须是 public static 修饰,接收 String[] 作为参数

> 运行方式

  • 通过 IDE(右键 → Run MainApp.main()

  • 命令行方式:

javac MainApp.java       # 编译成 class 文件
java MainApp             # 运行,执行 main 方法

5.2 模块(module)

1)模块在标准项目中的含义

在非模块化(传统)项目中,“模块”通常指:

  • 项目中的一个子系统(如 user, order, common 模块)

  • 独立的包结构 + 代码目录

例如:

com.example.user
com.example.payment

2)Java 9+ 模块化系统

Java 9 引入了正式的模块系统(module-info.java),但并不是所有项目都使用。

示例:

module com.example.myapp {requires java.sql;exports com.example.myapp.api;
}

初学阶段可以不接触 Java Module System(复杂度较高)

5.3 依赖(第三方/内部)

> 什么是依赖?

  • Java 项目中调用的 不是你写的类(外部库、jar 包),就是依赖。

  • 如:Spring、Guava、Jackson、JDBC Driver

> 依赖加载方式

来源加载方式
本地 .class 文件自动加载进内存
本地 .jarJVM 通过 classpath 加载
远程依赖(Maven/Gradle)会先下载 → 缓存到本地 .m2.gradle 仓库,然后加入构建路径

示例依赖:使用 commons-lang3

import org.apache.commons.lang3.StringUtils;String str = "abc";
System.out.println(StringUtils.isNotEmpty(str));

这段代码依赖了 Apache 的 commons-lang3 库,需要添加:

  • Maven:

<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.12.0</version>
</dependency>
  • Gradle:

implementation 'org.apache.commons:commons-lang3:3.12.0'

5.4 ClassPath 与类加载

> ClassPath 是什么?

  • ClassPath 是 JVM 在运行时查找 .class 文件的路径。

  • 含义类似 Python 的 sys.path、Linux 的 PATH。

可以通过命令查看:

java -cp target/classes:libs/* com.example.MainApp

> 类加载器(ClassLoader)作用

JVM 使用以下几种类加载器:

类加载器作用
BootstrapClassLoader加载核心类(rt.jar)
ExtensionClassLoader加载扩展库(lib/ext)
AppClassLoader加载我们自己的类
自定义 ClassLoader特殊用途(框架、热部署)

5.5 Java 程序执行流程详解图

启动 JVM → 找到入口类 main() → 加载依赖(jar)→ 创建 ClassLoader → 执行方法

图解:

+------------------+
| java MainApp     |
+--------+---------+|v
+------------------------+
| 加载 MainApp.class     |
+------------------------+|v
+--------------------------+
| 初始化依赖类(StringUtils)|
+--------------------------+|v
+-------------------+
| 执行 main()       |
| 打印输出          |
+-------------------+

5.6 打包运行流程(.jar)

Maven 打包命令:

mvn clean package

会在 target/ 目录生成 xxx.jar

设置 mainClass 打包运行:

<build><plugins><plugin><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><mainClass>com.example.MainApp</mainClass></manifest></archive></configuration></plugin></plugins>
</build>

运行 jar:

java -jar target/myapp-1.0.0.jar

5.7 实践建议

  • 使用 Maven 或 Gradle 来管理依赖和构建流程

  • 主类必须有 main() 且所在包正确(IDEA 会自动识别)

  • 每个模块职责明确(如 service、controller、model)

  • 合理组织目录结构,遵循 src/main/java 标准

5.8 小结

Main Class(main 方法)↓
编译为 .class↓
查找依赖(内部类 + 外部 jar)↓
由 JVM 的类加载器加载进内存↓
执行 main()↓
运行中的堆/栈/方法栈执行逻辑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/90995.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/90995.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/90995.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据的安全挑战与应对

在大数据时代&#xff0c;大数据安全问题已成为开发者最为关注的核心议题之一。至少五年来&#xff0c;大数据已融入各类企业的运营体系&#xff0c;而采用先进数据分析解决方案的组织数量仍在持续增长。本文将明确当前市场中最关键的大数据安全问题与威胁&#xff0c;概述企业…

PostgreSQL ERROR: out of shared memory处理方式

系统允许的总锁数 SELECT (SELECT setting::int FROM pg_settings WHERE name max_locks_per_transaction) * (SELECT setting::int FROM pg_settings WHERE name max_connections) (SELECT setting::int FROM pg_settings WHERE name max_prepared_transactions);当锁大于…

Django 模型(Model)

1. 模型简介 ORM 简介 MVC 框架中一个重要的部分就是 ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库。即直接面向对象操作数据,无需考虑 sql 语句。 ORM 是“对象-关系-映射”的简称,主要任务是:…

深入解析Hadoop RPC:技术细节与推广应用

Hadoop RPC框架概述在分布式系统的核心架构中&#xff0c;远程过程调用&#xff08;RPC&#xff09;机制如同神经网络般连接着各个计算节点。Hadoop作为大数据处理的基石&#xff0c;其自主研发的RPC框架不仅支撑着内部组件的协同运作&#xff0c;更以独特的工程哲学诠释了分布…

为什么玩游戏用UDP,看网页用TCP?

故事场景&#xff1a;两种不同的远程沟通方式假设你需要和远方的朋友沟通一件重要的事情。方式一&#xff1a;TCP — 打一个重要的电话打电话是一种非常严谨、可靠的沟通方式。• 1. 建立连接 (三次握手):• 你拿起电话&#xff0c;拨号&#xff08;SYN&#xff09;。• 朋友那…

【EGSR2025】材质+扩散模型+神经网络相关论文整理随笔(二)

High-Fidelity Texture Transfer Using Multi-Scale Depth-Aware Diffusion 这篇文章可以从一个带有纹理的几何物体出发&#xff0c;将其身上的纹理自动提取并映射到任意的几何拓扑结构上&#xff08;见下图红线左侧&#xff09;&#xff1b;或者从一个白模几何对象出发&#x…

深度学习图像分类数据集—玉米粒质量识别分类

该数据集为图像分类数据集&#xff0c;适用于ResNet、VGG等卷积神经网络&#xff0c;SENet、CBAM等注意力机制相关算法&#xff0c;Vision Transformer等Transformer相关算法。 数据集信息介绍&#xff1a;玉米粒质量识别分类&#xff1a;[crush, good, mul] 训练数据集总共有3…

Unity VR手术模拟系统架构分析与数据流设计

Unity VR手术模拟系统架构分析与数据流设计 前言 本文将深入分析一个基于Unity引擎开发的多人VR手术模拟系统。该系统采用先进的网络架构设计&#xff0c;支持多用户实时协作&#xff0c;具备完整的手术流程引导和精确的工具交互功能。通过对系统架构和数据管道的详细剖析&…

【Spring Boot】Spring Boot 4.0 的颠覆性AI特性全景解析,结合智能编码实战案例、底层架构革新及Prompt工程手册

Spring Boot 4.0 的颠覆性AI特性全景解析&#xff0c;结合智能编码实战案例、底层架构革新及Prompt工程手册一、Spring Boot 4.0 核心AI能力矩阵二、AI智能编码插件实战&#xff08;Spring AI Assistant&#xff09;1. 安装与激活2. 实时代码生成场景3. 缺陷预测与修复三、AI引…

audiobookshelf-web 项目怎么运行

git clone https://github.com/audiobookshelf/audiobookshelf-web.git cd audiobookshelf-web npm i 启动项目 npm run dev http://localhost:3000/

扫描文件 PDF / 图片 纠斜 | 图片去黑边 / 裁剪 / 压缩

问题&#xff1a;扫描后形成的 PDF 或图片文档常存在变形倾斜等问题&#xff0c;手动调整颇为耗时费力。 一、PDF 纠斜 - Adobe Acrobat DC 1、所用功能 扫描和 OCR&#xff1a; 识别文本&#xff1a;在文件中 → 设置 确定后启动扫描&#xff0c;识别过程中自动纠偏。 2、…

适配器模式:兼容不兼容接口

将一个类的接口转换成客户端期望的另一个接口&#xff0c;解决接口不兼容问题。代码示例&#xff1a;// 目标接口&#xff08;客户端期望的格式&#xff09; interface ModernPrinter {void printDocument(String text); }// 被适配的旧类&#xff08;不兼容&#xff09; class…

流程控制:从基础结构到跨语言实践与优化

流程控制 一、流程控制基础概念与核心价值 &#xff08;一&#xff09;流程控制定义与本质 流程控制是通过特定逻辑结构决定程序执行顺序的机制&#xff0c;核心是控制代码运行路径&#xff0c;包括顺序执行、条件分支、循环迭代三大核心逻辑。其本质是将无序的指令集合转化为有…

Http与Https区别和联系

一、HTTP 详解 HTTP&#xff08;HyperText Transfer Protocol&#xff09;​​ 是互联网数据通信的基础协议&#xff0c;用于客户端&#xff08;浏览器&#xff09;与服务器之间的请求-响应交互 核心特性​​&#xff1a; 1.无连接&#xff08;Connectionless&#xff09;​​…

飞算JavaAI:开启 Java 开发 “人机协作” 新纪元

每日一句 明天是新的一天&#xff0c; 你也不再是昨天的你。 目录每日一句一、需求到架构&#xff1a;AI深度介入开发“源头设计”1.1 需求结构化&#xff1a;自然语言到技术要素的精准转化1.2 架构方案生成&#xff1a;基于最佳实践的动态适配二、编码全流程&#xff1a;从“…

Qt项目锻炼——TODO(五)

发现问题如果是自己创建的ui文件&#xff0c;怎么包含进自己的窗口类并且成为ui成员&#xff1f;一般来说Qt designer 会根据你.ui文件生成对应的ui_文件名这个类&#xff08;文件名是ui文件名&#xff09;&#xff0c;它包含了所有 UI 组件&#xff08;如按钮、文本框、标签等…

Vue框架之模板语法全面解析

Vue框架之模板语法全面解析一、模板语法的核心思想二、插值表达式&#xff1a;数据渲染的基础2.1 基本用法&#xff1a;渲染文本2.2 纯HTML渲染&#xff1a;v-html指令2.3 一次性插值&#xff1a;v-once指令三、指令系统&#xff1a;控制DOM的行为3.1 条件渲染&#xff1a;v-if…

从零开始的语言模型构建 CS336 第一课(一)

语言模型的发展历史 &#x1f3d7; Early foundation models (2010年代后期) 2018&#xff1a;ELMo&#xff08;基于 LSTM 预训练 微调&#xff09;[Peters 2018]2018&#xff1a;BERT&#xff08;基于 Transformer 预训练 微调&#xff09;[Devlin 2018]2019&#xff1a;G…

微信获取access_token授权的两种不同情况

1.网页授权&#xff1a;需要页面调用授权的sdk&#xff0c;首先需要获取到code参数 &#xff08;A.网页版的获取code参考另一篇文章&#xff1a;https://blog.csdn.net/ettamei/article/details/148763361?spm1011.2415.3001.5331 B.前端sdk提供&#xff1a;code只有5分钟的有…

达梦数据库windows静默安装

<DATABASE> <!-- 安装数据库的语言配置&#xff0c;简体中文版: ZH&#xff0c;繁体中文版: CHT&#xff0c;英文版: EN&#xff0c;不区分大小写。不允许为空 --> <LANGUAGE>ZH</LANGUAGE> <!-- 安装程序的时区配置&#xff0c;缺省为08:00&#…