Spring是为了简化EJB(声明式的编程模型)开发而出现的解决方案,
首先要明确的给出Spring一个定义:Spring是一个轻量级的IoC和AOP容器框架。这个定义主要表现在:
- 非侵入式的,基于Spring开发的系统中的对象一般不依赖与Spring类,
- Spring提倡使用反向控制IoC来实现松耦合,也就是被动接受依赖类。
- 面向切面AoP
- 是一个容器,因为它包含并管理系统对象的生命周期和配置。
- 它是一个框架。
Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式
组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:
-
核心容器 :核心容器提供 Spring 框架的基本功能。核心容器的主要组件是
BeanFactory
,它是工厂模式的实现。BeanFactory
使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
-
Spring 上下文 :Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。
-
Spring AOP :通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。
-
Spring DAO :JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。
-
Spring ORM :Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。
-
Spring Web 模块 :Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
-
Spring MVC 框架 :MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。(以上部分来自IBM)
下面来用Spring实现一个那个最常见最无奈的程序Hello World!
1:先写一个问候的接口(实现与接口分离是好的习惯)
2:实现类的编写
3:Spring配置文件的编写
在XML文件在Spring容器中声明了一个GreetingServiceImpl的实例,并且将Hello world!的值赋给greeting属性。
4:编写主类
这样一个简单的不能在简单的Spring例子就完成了。它将一个字符串注入到了bean中。
不过Spring真正的威力是如何使用IOC将一个Bean注入到另一个Bean中。
分享到:
相关推荐
Spring Boot学习笔记-------(二)spring boot入门,配套例子代码,博客地址:https://blog.csdn.net/huaya1127/article/details/104130300
### Spring Boot 笔记 #### 一、Spring Boot 概述与入门 ##### 1.1 Spring Boot 的定义与特点 - **定义**: Spring Boot 是 Spring 社区的一个新项目,旨在简化基于 Spring 的应用程序和服务的开发过程。它提供了...
本笔记主要关注Spring的基础知识,特别是针对初学者的入门实例。 2. **Spring之旅** 在开始Spring之旅之前,首先需要建立一个开发环境。通常,这包括安装Java开发工具(JDK),配置Java环境变量,然后选择一个集成...
【Spring 框架概述】 Spring 是一个广泛使用的开源Java开发框架,由Rod Johnson在其...随着学习深入,Spring的更多高级特性,如Spring Boot、Spring Data、Spring Security等,都会进一步提升开发效率和应用的健壮性。
在本篇基于注解的Spring 3.0.x MVC学习笔记中,我们将深入探讨Spring MVC在3.0版本中的变化,以及如何通过注解实现快速开发。Spring 3.0.x相较于2.5版本有着显著的改进,尤其在MVC模块上,提供了更加灵活和强大的...
- **基于注解的spring_3[1].0.x_MVC学习笔记**: 这份笔记将详细解释Spring 3.0.x版本中的注解驱动开发,包括依赖注入、AOP和数据绑定等。 - **Spring入门教程**: 这是Spring框架的基础教程,涵盖了Spring的核心概念...
java(1) 整合入门(spring,struts,hibernate的整合)资料(1) 中大软件工厂项目前培训资料(1) 完整笔记+源码(1) ssh(1) C#查询参数化例子(1) 学习笔记+完整源码(1) 介绍与深入(1) 学习笔记(不含整合)(1) C#(1) .CHM格式...
"Java超强学习笔记"的详细程度表明,它不仅适合初学者入门,也对有一定经验的开发者有价值,因为它可能深入讨论了每个主题,并给出了实用的例子和实践指导。通过研读这份笔记,读者将能够系统地掌握Java编程,并有...
【Spring Boot 入门笔记】 在当今的软件开发领域,Spring Boot 已经成为Java企业级应用开发的首选框架,其简洁的配置和快速启动的特点深受开发者喜爱。本笔记主要针对Spring Boot的基础知识进行讲解,旨在帮助初学...
Spring学习笔记 这是一个Spring框架应用示例工程,里面写了大量的注释,对于我们理解和掌握Spring的一些关键特性是非常有帮助的。 这也是我学习和理解Spring的一个过程,分享出来给有这方面需求的同学快速入门,希望...
这篇学习笔记将深入探讨Hibernate的基础和关键特性,包括其核心概念、配置、注解使用以及ORM的核心原理。 1. **Hibernate概述** Hibernate是一个开源的ORM框架,由Gavin King创建,它通过提供一个接口,让开发者...
大数据入门指南(基本的入门指引) 来自微软的系统设计笔记,国人翻译 一位博主的系统设计总结(很久未更新,可做参考) 挺用心的一个 Java 博主,解读 Java 相关技术 美团技术团队永远的神,深度解读技术
总的来说,这份压缩包提供了SpringBoot入门所需的基本概念、实践示例和学习笔记,对于希望了解和学习SpringBoot的人来说是一份宝贵的资源。通过深入理解和实践这些内容,你可以掌握SpringBoot的核心特性,并能快速...
这个demo是基于博主的**Sitemesh入门和使用笔记**,提供了对应的源码供学习者实践和参考。以下是关于Sitemesh的详细讲解: 1. **安装与配置** - 首先,你需要将Sitemesh的JAR文件添加到你的项目类路径中。这可以...
#### (十七) Swing 学习笔记 **Swing API 包括18个公共包**:涵盖了Swing中各种组件、布局管理器等。 - **例程1.1 HelloWorldSwing.java**:最简单的Swing程序示例。 - **例程2.2 HelloWorldJFrame.java**:...
security和angular代理跨域入门例子 练习11 oauth2练习例子 练习12 数百万行Mysql条件查询优化练习例子 练习13 docker的练习例子及记录 练习14 Spring Boot + Quartz单机版的任务调度系统 练习15 S
描述中提到的“存储库”可能是一个GitHub仓库,其中包含了一系列学习资源,如源代码、笔记或教程。"Sentiment Analysis应用程序"是一个示例项目,它可能利用自然语言处理技术来分析文本情感。这个例子可能用来展示...
1. **Spring**:负责管理Bean,如DAO、Service等,提供依赖注入(DI)和面向切面编程(AOP)功能。 2. **SpringMVC**:作为Web层的控制器,处理HTTP请求,调用Service进行业务处理,并将结果返回给客户端。 3. **...