跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
Spring
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{Infobox software | name = Spring框架 | logo = | screenshot = | caption = | developer = [[Pivotal Software]] | released = {{Start date and age|2002|10|01}} | latest release version = 6.1.0 | latest release date = {{Start date and age|2023|11|16}} | programming language = [[Java]] | operating system = 跨平台 | genre = [[应用框架]] | license = [[Apache许可证 2.0]] | website = {{URL|https://spring.io}} }} '''Spring框架'''是一个开源的[[Java]]平台应用框架和控制反转容器,由[[Pivotal Software]]公司维护。它最初由Rod Johnson在其2002年出版的《Expert One-on-One J2EE Design and Development》一书中提出概念并实现。 == 概述 == Spring框架为Java企业级应用开发提供了全面的编程和配置模型。其主要特点包括: * '''轻量级''':核心容器仅约2MB大小 * '''控制反转(IoC)''':通过依赖注入实现松耦合 * '''面向切面编程(AOP)''':支持声明式事务管理等 * '''模块化设计''':开发者可根据需要选择使用特定模块 * '''集成能力''':提供与众多企业技术的集成支持 == 核心模块 == Spring框架由多个模块组成,这些模块可以单独使用或组合使用: === 核心容器 === * '''Spring Core''':提供IoC和依赖注入功能 * '''Spring Beans''':实现Bean工厂模式 * '''Spring Context''':基于Core和Beans构建的上下文框架 * '''Spring Expression Language (SpEL)''':强大的表达式语言 === 数据访问/集成 === * '''JDBC''':简化JDBC操作 * '''ORM''':支持[[Hibernate]]、[[JPA]]等 * '''OXM''':对象/XML映射支持 * '''JMS''':Java消息服务支持 * '''Transactions''':声明式事务管理 === Web === * '''Web''':基本Web功能 * '''Web MVC''':实现[[MVC]]设计模式 * '''WebSocket''':支持WebSocket编程 * '''WebFlux''':响应式Web框架 === 其他模块 === * '''AOP''':面向切面编程支持 * '''Aspects''':与[[AspectJ]]集成 * '''Instrumentation''':类检测支持 * '''Messaging''':消息传递支持 * '''Test''':测试支持 == 依赖注入示例 == Spring的核心特性之一是依赖注入(DI),以下是一个简单示例: <syntaxhighlight lang="java"> // 定义服务接口 public interface MessageService { String getMessage(); } // 实现服务 public class EmailService implements MessageService { public String getMessage() { return "Email message"; } } // 使用服务的类 public class MessageProcessor { private MessageService service; // 通过构造器注入依赖 public MessageProcessor(MessageService svc) { this.service = svc; } public void processMessage() { System.out.println(service.getMessage()); } } // 配置类 @Configuration public class AppConfig { @Bean public MessageService messageService() { return new EmailService(); } @Bean public MessageProcessor messageProcessor() { return new MessageProcessor(messageService()); } } // 应用主类 public class Application { public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); MessageProcessor processor = context.getBean(MessageProcessor.class); processor.processMessage(); } } </syntaxhighlight> == Spring Boot == [[Spring Boot]]是构建在Spring框架之上的项目,简化了Spring应用的初始搭建和开发过程。主要特点包括: * 自动配置 * 嵌入式服务器支持 * 生产级监控 * 简化依赖管理 * 命令行界面 === 创建简单Spring Boot应用 === <syntaxhighlight lang="java"> @SpringBootApplication @RestController public class DemoApplication { @GetMapping("/") public String home() { return "Hello, Spring Boot!"; } public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } </syntaxhighlight> == 生态系统 == Spring拥有丰富的生态系统,包括: * [[Spring Cloud]] - 微服务架构支持 * [[Spring Data]] - 简化数据访问 * [[Spring Security]] - 认证和授权框架 * [[Spring Batch]] - 批处理框架 * [[Spring Integration]] - 企业集成模式实现 == 版本历史 == {| class="wikitable" ! 版本 !! 发布日期 !! 主要特性 |- | 1.0 || 2003年3月 || 初始版本 |- | 2.0 || 2006年10月 || XML命名空间支持 |- | 3.0 || 2009年12月 || Java 5+支持,表达式语言 |- | 4.0 || 2013年12月 || Java 8支持,WebSocket |- | 5.0 || 2017年9月 || 响应式编程支持 |- | 6.0 || 2022年11月 || Java 17+支持,Jakarta EE 9+ |} == 应用场景 == Spring框架广泛应用于: * 企业级应用开发 * 微服务架构 * 云原生应用 * RESTful Web服务 * 批处理应用 * 消息驱动应用 == 参见 == * [[Spring Boot]] * [[Spring Cloud]] * [[Spring MVC]] * [[依赖注入]] * [[控制反转]] == 参考文献 == <references /> [[Category:Java框架]] [[Category:开源软件]] [[Category:Web框架]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
该页面使用的模板:
模板:Infobox
(
编辑
)
模板:Infobox software
(
编辑
)
模板:Infobox software/simple
(
编辑
)
模板:MONTHNAME
(
编辑
)
模板:MONTHNUMBER
(
编辑
)
模板:Main other
(
编辑
)
模板:Plainlist
(
编辑
)
模板:Plainlist/styles.css
(
编辑
)
模板:Start date and age
(
编辑
)
模板:Template link expanded
(
编辑
)
模板:Template other
(
编辑
)
模板:Time ago
(
编辑
)
模板:Tlx
(
编辑
)
模板:Trim
(
编辑
)
模板:URL
(
编辑
)
模板:Wikidata
(
编辑
)
模板:Yesno
(
编辑
)
模块:Arguments
(
编辑
)
模块:Check for unknown parameters
(
编辑
)
模块:Date
(
编辑
)
模块:Infobox
(
编辑
)
模块:Infobox/styles.css
(
编辑
)
模块:InfoboxImage
(
编辑
)
模块:Template link general
(
编辑
)
模块:Time ago
(
编辑
)
模块:URL
(
编辑
)
模块:Wd
(
编辑
)