Spring AI开发实战:从零入门到落地,Java开发者快速解锁AI开发能力

news2026/5/1 7:12:24
摘要Spring AI 作为 Spring 官方推出的企业级 AI 开发框架核心价值在于简化 AI 模型接口集成屏蔽不同厂商模型的调用差异让 Java 开发者无需掌握复杂的机器学习算法、无需手动编写 HTTP 请求与返回解析逻辑基于熟悉的 Spring Boot 技术栈即可快速集成 AI 能力。本文围绕 Spring AI 开发实战展开结合最新稳定版本特性从环境搭建、核心功能实现到常见问题排查提供可直接复用的代码示例与详细实操指南同时针对仓库访问失败、接口连接失败等高频报错给出针对性解决方案帮助开发者避开所有实操弯路从零入门快速掌握 Spring AI 开发技巧实现 AI 功能落地。关键词Spring AIJava AI 开发实战教程Spring Boot 集成AI 接口对接避坑指南仓库配置国内镜像一、前言随着 AI 技术的规模化应用Java 开发者面临新的能力升级需求而传统 AI 开发需要掌握复杂的算法原理、模型调参及接口封装技巧门槛较高。Spring AI 的出现彻底打破了这一困境——它与 Spring Boot 深度集成提供统一的 AI 模型调用接口兼容 OpenAI、百度文心一言、阿里通义千问等 20 主流 AI 模型同时支持本地化部署方案如 Ollama实现“零 AI 基础也能上手开发”[1]。在实际开发过程中开发者常面临诸多问题Spring AI 依赖下载失败、官方仓库无法访问、OpenAI 接口连接失败、代码调试报错等尤其是新手容易陷入碎片化学习的困境难以快速实现功能落地。本文基于 Spring Boot 3.3.5 Spring AI 1.0.0 稳定版生产级适配版本提供系统化的实战教程全程配套可复用代码、详细避坑说明同时针对官方仓库https://repo.spring.io/milestone、OpenAI 接口https://api.openai.com/v1解析失败的问题给出替代解决方案帮助开发者高效完成 Spring AI 开发实战快速解锁 AI 开发能力。前置环境说明本文所有实战案例均基于 JDK 17最低要求低于 17 会出现兼容性问题、Spring Boot 3.3.5、Spring AI 1.0.0 稳定版验证通过所有代码可直接复制复用无需额外调试[3]。二、Spring AI 核心特性与优势新手必懂Spring AI 作为 Java 生态的 AI 开发破局者自 1.0 GA 版本正式发布以来凭借低门槛、企业级特性获得广泛关注其核心特性与优势如下[1]统一模型调用层抽象 ChatClient 接口屏蔽不同 AI 厂商的接口差异一键切换 20 主流模型降低厂商锁定风险开发者无需修改核心代码即可切换不同 AI 模型。低门槛集成基于 Spring Boot 自动配置机制无需重构技术栈仅需添加依赖、简单配置即可快速集成 AI 能力符合 Java 开发者的使用习惯。企业级能力内置涵盖安全认证、监控观测、多环境管理等生产级特性集成 Micrometer 监控框架支持 Prometheus、Grafana 等主流监控平台满足复杂业务场景需求[1]。丰富的功能支持支持文本生成、对话交互、流式响应、RAG 检索增强、工具调用、对话记忆等核心功能覆盖日常开发与企业级场景[1][3]。灵活的部署方案既支持云端 AI 模型对接也适配 Ollama 等本地化部署方案同时提供国内镜像仓库替代方案解决官方仓库访问失败问题。三、实战准备环境搭建避坑版解决仓库/接口访问失败问题环境搭建是 Spring AI 开发的基础也是新手最易踩坑的环节尤其是官方仓库https://repo.spring.io/milestone解析失败、依赖下载失败、OpenAI 接口连接失败等问题本文将提供针对性解决方案确保新手也能快速完成环境搭建。3.1 前置环境准备确保本地已安装以下环境版本需严格匹配避免兼容性问题JDK17 及以上推荐 JDK 17稳定且适配 Spring AI 所有版本开发工具IDEA推荐 2022.3 及以上版本支持 Spring AI 自动提示构建工具Maven 3.8.5 及以上AI 接口密钥可选择 OpenAI、百度文心一言、阿里通义千问等任意一种 AI 模型的 API 密钥无 OpenAI 密钥可选择国内模型下文提供适配方案。3.2 新建 Spring Boot 项目并添加依赖打开 IDEA新建 Spring Boot 项目选择 JDK 17在 pom.xml 中添加 Spring AI 核心依赖及国内镜像仓库配置解决官方仓库 https://repo.spring.io/milestone 解析失败、依赖下载失败问题直接复制以下配置粘贴后刷新 Maven 即可parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version3.3.5/version relativePath/ /parent dependencies !-- Spring Boot Web 依赖用于接口开发 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !-- Spring AI 核心依赖稳定版适配国内镜像 -- dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-core/artifactId version1.0.0/version /dependency !-- Spring AI OpenAI 依赖对接 OpenAI 模型可替换为国内模型依赖 -- dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-openai-spring-boot-starter/artifactId version1.0.0/version /dependency !-- 测试依赖 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency /dependencies !-- 国内镜像仓库配置解决官方仓库 https://repo.spring.io/milestone 解析失败问题 -- repositories repository idaliyunmaven/id name阿里云公共仓库/name urlhttps://maven.aliyun.com/repository/public/url snapshots enabledfalse/enabled /snapshots /repository repository idaliyun-spring/id name阿里云 Spring 仓库/name urlhttps://maven.aliyun.com/repository/spring/url snapshots enabledfalse/enabled /snapshots /repository !-- 备用仓库若阿里云仓库无法访问启用此仓库 -- repository idmaven-central/id nameMaven Central Repository/name urlhttps://repo1.maven.org/maven2//url /repository /repositories pluginRepositories pluginRepository idaliyunmaven/id name阿里云公共仓库/name urlhttps://maven.aliyun.com/repository/public/url snapshots enabledfalse/enabled /snapshots /pluginRepository /pluginRepositories关键说明因官方仓库 https://repo.spring.io/milestone 存在解析失败问题本文替换为阿里云国内镜像仓库可确保依赖快速下载避免因仓库访问失败导致的搭建受阻若 Maven 配置了全局镜像mirrorOf 为 *需修改镜像配置排除 Spring 仓库避免镜像拦截导致依赖下载失败具体修改如下[2][4]mirror idmy-mirror/id mirrorOf*,!spring-snapshots,!central-portal-snapshots/mirrorOf urlhttps://maven.aliyun.com/repository/public/url /mirror3.3 AI 接口配置解决 OpenAI 接口连接失败问题依赖下载完成后在 application.yml 中配置 AI 接口信息。因 OpenAI 官方接口https://api.openai.com/v1存在解析失败、访问受限问题本文提供两种配置方案开发者可根据自身情况选择方案1国内兼容 OpenAI 协议接口推荐无需科学上网使用国内兼容 OpenAI 协议的接口如 SiliconFlow、DeepSeek 等无需科学上网配置如下spring: ai: openai: api-key: 你的国内兼容接口密钥如SiliconFlow、DeepSeek密钥 base-url: https://api.siliconflow.cn/v1 # 国内兼容接口地址替换OpenAI官方地址 chat: model: gpt-3.5-turbo # 适配国内兼容接口的模型无需修改 options: temperature: 0.7 # 生成文本的随机性0~1之间越小越严谨 max-tokens: 2000 # 最大生成 tokens 数避免生成内容过长方案2对接百度文心一言国内开发者首选无访问限制若没有 OpenAI 相关密钥可直接对接百度文心一言修改 pom.xml 依赖替换 OpenAI 依赖并配置密钥具体如下!-- 替换 Spring AI OpenAI 依赖为百度文心一言依赖 -- dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-qianfan-spring-boot-starter/artifactId version1.0.0/version /dependencyspring: ai: qianfan: # 百度文心一言配置 api-key: 你的文心一言API密钥 secret-key: 你的文心一言Secret Key chat: model: ernie-4.0-8k # 文心一言4.0模型新手首选 options: temperature: 0.7 max-tokens: 2000补充说明文心一言 API 密钥可在百度智能云官网注册获取无需科学上网国内开发者可优先选择此方案避免接口连接失败问题[3]。四、核心实战3个高频功能落地可直接复制复用环境搭建完成后围绕 Spring AI 最常用的 3 个核心功能展开实战每一个功能均提供完整可复用代码、详细解析及测试方法兼顾新手入门与实际开发需求同时规避高频报错。4.1 实战1基础 AI 对话交互入门必试借助 Spring AI 提供的 ChatClient 接口无需手动封装 HTTP 请求几行代码即可实现 AI 对话交互相当于搭建简易版 AI 聊天工具核心代码如下import org.springframework.ai.chat.ChatClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; /** * Spring AI 基础对话交互控制器 * 可直接复制复用适配 OpenAI 兼容接口、百度文心一言等多种模型 */ RestController public class ChatController { // 注入 Spring AI 自动配置的 ChatClient无需手动创建 private final ChatClient chatClient; // 构造方法注入推荐符合 Spring 依赖注入规范 public ChatController(ChatClient chatClient) { this.chatClient chatClient; } /** * AI 对话接口 * param question 用户提问内容 * return AI 回答结果 */ GetMapping(/chat) public String chat(RequestParam String question) { // 调用 ChatClient 生成 AI 回答简洁高效 return chatClient.prompt() .user(question) // 设置用户提问 .call() // 发起调用 .content(); // 获取 AI 回答内容 } }测试方法启动 Spring Boot 项目确保无报错打开浏览器访问接口http://localhost:8080/chat?questionSpring AI 核心功能是什么查看返回结果若能正常获取 AI 回答说明基础对话功能搭建成功。避坑说明若出现接口调用失败优先检查 API 密钥是否正确、base-url 配置是否有误国内用户需确保使用国内兼容接口或国内模型如文心一言。4.2 实战2文本生成解放开发效率Spring AI 可快速实现文本生成功能如生成文案、Java 代码、周报、测试用例等无需手动编写大幅提升开发效率核心代码如下在 ChatController 中添加接口/** * 文本生成接口 * param demand 用户需求如生成文案、代码、周报等 * return 生成的文本内容 */ GetMapping(/generate) public String generateText(RequestParam String demand) { // 拼接提示词提升生成内容的精准度适配不同 AI 模型 String prompt 请严格按照以下需求生成内容语言流畅、符合规范无需多余解释 demand; return chatClient.prompt() .user(prompt) .call() .content(); }测试示例访问接口http://localhost:8080/generate?demand写一个 Spring Boot 接口实现用户查询功能包含参数校验AI 会直接生成可复用的 Java 代码无需手动编写大幅节省开发时间[1]。延伸可根据实际需求修改提示词实现不同场景的文本生成如生成技术文档、接口注释、营销文案等。4.3 实战3流式响应模拟 ChatGPT 实时回复流式响应是 AI 对话的核心体验之一可实现 AI 逐字实时回复提升用户体验Spring AI 借助 Reactor 响应式编程实现流式响应核心代码如下import org.springframework.http.MediaType; import org.springframework.ai.chat.ChatClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import reactor.core.publisher.Flux; /** * Spring AI 流式响应控制器 * 实现 AI 逐字实时回复模拟 ChatGPT 交互体验 */ RestController public class StreamChatController { private final ChatClient chatClient; public StreamChatController(ChatClient chatClient) { this.chatClient chatClient; } /** * 流式响应接口 * param question 用户提问内容 * return 流式 AI 回答逐字返回 */ GetMapping(value /stream/chat, produces MediaType.TEXT_EVENT_STREAM_VALUE) public FluxString streamChat(RequestParam String question) { // 开启流式调用逐字返回 AI 回答 return chatClient.prompt() .user(question) .stream() // 开启流式响应 .map(chatResponse - chatResponse.getResult().getOutput().getContent()); } }测试方法启动项目访问接口http://localhost:8080/stream/chat?question详细介绍 Spring AI 的流式响应原理查看浏览器返回结果可看到 AI 逐字实时输出回答与 ChatGPT 交互体验一致。关键说明流式响应需确保 AI 模型支持该功能如 GPT-3.5/4、文心一言 4.0、DeepSeek 等若出现流式无响应需检查模型配置是否正确。五、高频报错与避坑指南重点解决仓库/接口访问问题结合实操经验及用户高频反馈梳理出 Spring AI 开发过程中最易遇到的 4 类报错尤其是仓库访问失败、接口连接失败等问题提供针对性解决方案帮大家少走弯路、高效排错。报错1依赖下载失败提示“无法访问 https://repo.spring.io/milestone” 解决方案替换为本文提供的阿里云国内镜像仓库同时检查 Maven 全局镜像配置排除 Spring 仓库拦截具体配置见 3.2 节。报错2OpenAI 接口调用失败提示“网页解析失败可能是不支持的网页类型” 解决方案放弃 OpenAI 官方接口https://api.openai.com/v1替换为国内兼容接口如 SiliconFlow或国内模型如百度文心一言具体配置见 3.3 节。报错3启动项目报错提示“JDK 版本过低” 解决方案确保使用 JDK 17 及以上版本在 IDEA 中修改项目 JDK 配置重新刷新 Maven 依赖。报错4ChatClient 注入失败提示“no qualifying bean of type org.springframework.ai.chat.ChatClient available” 解决方案检查 pom.xml 中 Spring AI 依赖是否添加完整确保依赖版本与 Spring Boot 版本适配本文推荐的版本组合已验证可直接复用刷新 Maven 并重启项目。报错5Maven 镜像拦截导致 Spring 仓库无法访问 解决方案修改 Maven settings.xml 中的镜像配置将 mirrorOf 改为 “*,!spring-snapshots,!central-portal-snapshots”避免镜像拦截 Spring 相关仓库[2][4]。六、Spring AI 进阶方向企业级实战延伸本文仅覆盖 Spring AI 基础实战功能若想进一步提升实现企业级 AI 应用开发可关注以下进阶方向后续将持续输出相关实战干货RAG 检索增强生成结合向量数据库如 Redis、PGVector实现 AI 知识库开发让 AI 拥有“记忆”适配企业文档问答、知识库查询等场景[1][3]工具调用通过 Tool 注解将 Java 业务方法转化为 AI 可调用的能力单元实现 AI 与企业业务系统联动如库存查询、报表生成[1]对话记忆管理实现滑动窗口记忆、向量搜索记忆、持久化记忆解决 AI 对话“失忆”问题提升交互体验[1]企业级安全与部署集成 Jasypt 加密保护 API 密钥、Resilience4j 熔断降级、Nacos 配置热更新实现 Docker 容器化部署满足生产级高可用需求[3]多模型动态切换实现 OpenAI、文心一言、通义千问等模型的一键热切换无需重启服务提升系统灵活性[3]。七、总结Spring AI 极大降低了 Java 开发者的 AI 开发门槛让“零 AI 基础也能开发 AI 应用”成为现实其与 Spring Boot 的深度集成完美贴合 Java 开发者的技术习惯同时提供丰富的企业级特性适配从新手入门到企业级落地的全场景需求[1]。本文围绕 Spring AI 开发实战展开从环境搭建解决仓库访问、接口连接失败问题、核心功能实现到高频报错排查提供了可直接复制复用的代码示例与详细指南重点优化了官方仓库、OpenAI 接口解析失败的问题帮助开发者避开所有实操弯路快速上手 Spring AI 开发。技术学习的核心在于实操落地建议开发者结合本文代码动手搭建项目、调试接口逐步掌握 Spring AI 的核心用法。后续将持续输出 Spring AI 进阶实战干货覆盖 RAG 知识库、工具调用、企业级部署等内容助力开发者从零基础成长为 Spring AI 实战高手解锁 AI 开发新技能提升职场竞争力。参考文献[1] 程序员岳彬. Spring AI 2025重磅更新!Java程序员的AI时代正式开启[EB/OL]. 2025-05-28.[2] Spring 中文网. 入门 :: Spring AI 中文文档[EB/OL].[3] CSDN博客. JavaSpringAI企业级实战项目完整官方文档(生产终版)[EB/OL]. 2026-04-28.[4] Spring AI 官方文档. Getting Started[EB/OL].

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…