Spring的基本应用
在 Eclipse 中创建 Web 项目,添加 Spring 的基础包和 commons-logging JAR 包。 创建接口 创建实现类 在 创建测试类 创建接口 创建实现类 在 创建测试类
发布日期:2021-04-30 21:02:40
浏览次数:99
分类:精选文章
本文共 2500 字,大约阅读时间需要 8 分钟。
Spring概述及核心容器
Spring 是一个分层的Java SE/EE全栈轻量级开源框架,以 IoC(控制反转)和 AOP(面向切面编程)为核心原理,利用 JavaBean 实现各种功能。
Spring的优点
- 非侵入式设计:无需修改现有代码即可引入 Spring。
- 松耦合:通过控制反转和面向切面编程降低代码耦合度。
- 支持 AOP:提供丰富的面向切面编程功能。
- 声明式事务处理:简化事务管理逻辑。
- 易于测试:支持单元测试和集成测试。
- 集成能力强:支持多种框架和技术的集成。
Spring的体系结构
Spring 分为多个模块,主要包括以下几个部分:
Core Container(核心容器):
- Beans:提供了 BeanFactory,用于管理对象。
- Core:提供 IoC 和 DI(依赖注入)的功能。
- Context:用于访问和配置对象,基于 Core 和 Beans 模块。
- SPEL:Spring Expression Language,用于运行时对象图操作。
Data Access/Integration(数据访问与集成):
- JDBC:提供数据库操作的抽象层。
- ORM:集成 JPA、Hibernate 等 ORM 工具。
- OXM:支持 XML 与对象的映射。
- JMS:提供消息传递服务。
- Transactions:支持事务管理。
Web(Web 模块):
- WebSocket:实现 WebSocket 通信。
- Servlet:提供 MVC 模型和 REST Web 服务。
- Web:支持多文件上传、IoC 容器初始化等。
- Portlet:在portlet 环境中提供 MVC 功能。
其他模块:
- AOP:实现面向切面编程。
- Aspects:集成 AspectJ。
- Instrumentation:提供类工具和类加载器支持。
- Messaging:支持消息传递体系结构。
- Test:提供单元测试和集成测试支持。
Spring的下载及目录结构
Spring 的 jar 包分为两部分:Spring 框架包和第三方依赖包。
Spring 框架包
- 下载地址:http://repo.spring.io/simple/libs-release-local/org/springframework/spring/4.3.6.RELEASE/
- 解压目录结构:
docs:API 文档和开发规范。libs:JAR 包和源码。Schema:开发所需的 schema 文件。libs中包含 60 多个 JAR 包,例如:spring-core-4.3.6.RELEASE.jar:核心工具类。spring-beans-4.3.6.RELEASE.jar:Bean 管理和配置。spring-context-4.3.6.RELEASE.jar:企业级服务支持。spring-expression-4.3.6.RELEASE.jar:表达式语言。
第三方依赖包
- commons-logging:用于日志记录。
- 下载地址:http://commons.apache.org/proper/commons-logging/download_logging.cgi
Spring的核心容器
Spring 提供两种核心容器:BeanFactory 和 ApplicationContext。
BeanFactory(了解)
- BeanFactory 是 Spring 的基础容器,用于管理 Spring 组件。
- 创建方式:
BeanFactory beanFactory = new XmlBeanFactory(new FileSystemResource("F:/applicationContext.xml"));
ApplicationContext(应用上下文)
- ApplicationContext 是 BeanFactory 的扩展版本,提供国际化、资源访问等功能。
- 创建方式有两种:
ClassPathXmlApplicationContext:从类路径加载配置文件。FileSystemXmlApplicationContext:从文件系统路径加载配置文件。- 在 Web 项目中,通常由 Web 服务器自动初始化 ApplicationContext,例如通过
ContextLoaderListener。
获取 Bean 的方式:
Object getBean(String name); // 根据 Bean ID 获取T getBean(Class requiredType); // 根据类类型获取
控制反转(IoC)
Spring 的核心功能是通过控制反转将对象的实例由调用者转移给 Spring 容器,控制权发生反转。
实现步骤
UserDao,定义 say() 方法。UserDaoImpl,实现 UserDao 接口。applicationContext.xml 中定义 userDao Bean。TestIoC,初始化 ApplicationContext 并获取 userDao 实例,调用 say() 方法。依赖注入(DI)
依赖注入是 Spring 的另一个重要功能,通过 setter 方法或构造器注入依赖对象。
实现步骤
UserService,定义 say() 方法。UserServiceImpl,声明 userDao 属性并添加 setter 方法。applicationContext.xml 中定义 userService Bean,并注入 userDao。TestDI,初始化 ApplicationContext 并获取 userService 实例,调用 say() 方法。发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2026年06月16日 12时02分49秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PHP函数
2023-03-01
PHP函数__autoload失效原因(与smarty有关)
2023-03-01
PHP函数操作数字和汉字互转(100以内)
2023-03-01
PHP函数方法
2023-03-01
PHP删除指定目录下的所有文件和文件夹 | 删除指定文件
2023-03-01
php判断ip黑名单程序代码
2023-03-01
php判断复选框是否被选中的方法
2023-03-01
PHP判断指定目录下是否存在文件
2023-03-01
php判断数组是否为空
2023-03-01
PHP判断数组是否有重复值、获取重复值
2023-03-01
PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示
2023-03-01
PHP加密与安全的最佳实践
2023-03-01
PHP区分 企业微信浏览器 | 普通微信浏览器 | 其他浏览器
2023-03-01
php原生代码怎么连表查询,PHP tp5中使用原生sql查询代码实例
2023-03-01
PHP去掉转义符
2023-03-01
php反射api
2023-03-01
PHP反射ReflectionClass、ReflectionMethod 入门教程
2023-03-01
PHP反射机制
2023-03-01
php取当天的最后一秒_Docker快速搭建PHP开发环境详细教程
2023-03-01
php取绝对值
2023-03-01