生成式AI搜索优化实战:Schema.org与JSON-LD在Spring Boot项目中的集成
Schema.org结构化数据是GEO优化的核心技术之一。通过在网页中嵌入JSON-LD标记,企业可以明确告诉生成式搜索引擎:这是一篇什么类型的内容、作者是谁、主题是什么、关键数据有哪些。本文将以Spring Boot项目为例,演示如何系统化集成Schema.org与JSON-LD。
一、Spring Boot项目中的JSON-LD集成方案
在Spring Boot项目中,JSON-LD可以静态嵌入模板,也可以动态生成。动态生成的好处是不同页面可以复用同一套后端逻辑,同时保证数据的实时性。

推荐的做法是:在Controller层准备页面数据,在Service层组装Schema.org对象,在Thymeleaf或FreeMarker模板中渲染为JSON-LD脚本。
二、动态生成TechArticle结构化数据
技术博客页面通常使用TechArticle类型。下面演示如何用Java对象模型动态生成JSON-LD。
@Data
public class TechArticleSchema {
private String context = "https://schema.org";
private String type = "TechArticle";
private String headline;
private String description;
private String datePublished;
private String dateModified;
private List keywords;
private OrganizationSchema author;
private Integer wordCount;
}
@Data
public class OrganizationSchema {
private String type = "Organization";
private String name;
private String url;
}
@Service
public class SchemaService {
public String generateTechArticleSchema(Article article) {
TechArticleSchema schema = new TechArticleSchema();
schema.setHeadline(article.getTitle());
schema.setDescription(article.getSummary());
schema.setDatePublished(article.getPublishDate().toString());
schema.setDateModified(article.getUpdateDate().toString());
schema.setKeywords(article.getKeywords());
schema.setAuthor(new OrganizationSchema("泉州软件开发公司", "https://www.qztxkj.cn"));
schema.setWordCount(article.getWordCount());
return new Gson().toJson(schema);
}
}
使用Gson或Jackson将Java对象序列化为JSON-LD字符串,可以在Controller中注入到Model,由模板渲染到页面head中。
三、Thymeleaf模板渲染
在Thymeleaf模板中,通过th:utext指令将JSON-LD字符串输出到script标签内,注意关闭HTML转义以保证JSON格式正确。
<!-- article.html -->
<head>
<title th:text="${article.title}">文章标题</title>
<meta name="description" th:content="${article.summary}" />
<script type="application/ld+json" th:utext="${schemaJson}"></script>
</head>
<body>
<article>
<h1 th:text="${article.title}"></h1>
<div th:utext="${article.htmlBody}"></div>
</article>
</body>
th:utext会原样输出内容,适合JSON-LD这种需要保持特殊字符的嵌入场景。但一定要确保schemaJson来源可信,避免XSS风险。
四、产品页与企业信息页的Schema扩展
除了TechArticle,企业还需要为产品页、服务页、组织信息配置相应的Schema类型。产品页使用Product或Service,企业信息使用Organization。

{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"name": "泉州网络公司",
"url": "https://www.qztxkj.cn",
"sameAs": [
"https://blog.csdn.net/qztxkj"
],
"address": {
"@type": "PostalAddress",
"addressLocality": "泉州",
"addressRegion": "福建",
"addressCountry": "CN"
}
},
{
"@type": "Service",
"name": "小程序开发",
"provider": {"@id": "https://www.qztxkj.cn"},
"areaServed": "泉州"
}
]
}
使用@graph可以将多个Schema实体组织在一个JSON-LD脚本中,减少页面标签数量,同时提升机器对站点整体结构的理解。
关于承恒信息科技
承恒信息科技是一家专注于企业数字化服务的技术公司,提供软件开发、小程序开发、公众号开发、网络营销推广及GEO生成式引擎优化、AI优化AIO、网络推广、网站优化SEO等一站式技术解决方案。技术栈涵盖Java、.NET Core、Python、Node.js、React、Vue等主流技术,专注为各行业企业提供高性能、高可用的系统架构设计与开发服务。