没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
15页
Spring框架是Java开发中广泛使用的一个强大工具,它通过依赖注入和控制反转等核心概念,极大地提高了开发效率和应用的可维护性。在这份文档中,我们深入探讨了Spring的核心注解,包括但不限于@Component、@Repository、@Service、@Controller和@Autowired。这些注解简化了配置过程,减少了样板代码,并使得组件之间的耦合度降低,更有利于单元测试和代码维护。 @Component 和其派生注解(@Repository、@Service、@Controller)标记类为Spring组件,允许Spring通过类路径扫描自动检测和配置这些类。 @Autowired 注解用于自动注入依赖,它可以放置在字段、构造器、setter方法或其他任何方法上,Spring容器会自动寻找并注入正确的bean。 @Configuration 和 @Bean 注解用于Java配置,允许开发者用程序的方式定义Spring容器中的bean,取代传统的XML配置文件。 @Value 提供了一种方便的方式来注入简单类型的属性,支持SpEL表达式和外部配置。
资源推荐
资源详情
资源评论
第一节课:Spring源码分析之 常见底层核心注解
一:Spring框架功能整体介绍
1: Spring Core Container:
模块作用:Core 和 Beans 模块是框架的基础部分,提供 IoC (转控制)和依赖注入特性。 这里
的基础 概念是 BeanFactory,它提供对 Factory 模式的经典实 现来消除对程序’性单
例模式的需要,并真 正地允许你从程序逻辑中分离出依赖关系和配置
1.1)Core
主要包含 Spring 框架基本的核心工具类, Spring 的其他组件都要用到这个包 里的类, Core
模块是其他组件的基 本核心。
1.2)Beans (BeanFacotry的作用)
它包含访问配直文件、创建和管理 bean 以及进行 Inversion of Control I Dependency
Injection ( IoC/DI )操作相关的所有类
1.3) Context(处理BeanFactory,,一下还是ApplicationContext的作用)
模构建于 Core 和 Beans 模块基础之上,提供了一种类似JNDI 注册器的框 架式的对象访问方
法。 Context 模块继承了 Beans 的特性,为 Spring 核 心提供了大量 扩展,添加了对
国际化(例如资源绑定)、事件传播、资源加载和对 Context 的透明创 建的支持。 Context 模块同时
也支持 J2EE 的一些特 性, ApplicationContext 接口是 Context 模块的关键
本质区别:(使用BeanFacotry的bean是延时加载的,ApplicationContext是非延时加载的)
1.4)Expression Language
模块提供了强大的表达式语言,用于在运行时查询和操纵对象。 它是 JSP 2.1 规范中定义的 unifed
expression language 的扩展。 该语言支持设直/获取属 性的值,属性的分配,方法的调用,访问数
组上下文( accessiong the context of arrays )、 容器和索引器、逻辑和算术运算符、命名变量以
及从Spring的 IoC 容器中根据名称检 索对象。 它也支持 list 投影、选择和一般的 list 聚合
2:Spring Data Access/Integration
2.1)JDBC
模块提供了一个 JDBC 抽象层,它可以消除冗长的 JDBC 编码和解析数据库厂 商特有的错误代码。
这个模块包含了 Spring 对 JDBC 数据访问进行封装的所有类
2.2)ORM 模块为流行的对象-关系映射 API,
如 JPA、 JDO、 Hibernate、 iBatis 等,提供了 一个交互层。 利用 ORM 封装包,可以混合使用所
有 Spring 提供的特性进行 O/R 映射, 如前边提到的简单声 明性事务管理。
2.3)OXM 模块提供了一个对 ObjecνXML 映射实现的抽象层,
Object/XML 映射实现包括 JAXB、 Castor、 XMLBeans、 JiBX 和 XStrearn
2.4)JMS ( Java Messaging Service )
模块主要包含了 一些制造和消 费消息的特性。
2.5)Transaction
支持编程和声明性的事务管理,这些事务类必须实现特定的接口,并 且对所有的 POJO 都适用
3: Spring Web
Web 模块:提供了基础的面向 Web 的集成特性c 例如,多文件上传、使用 servlet listeners 初始化
IoC 容器以及一个面向 Web 的应用上下文。 它还包含 Spring 远程支持中 Web 的相关部分。
4: Spring Aop
4.1)Aspects 模块提供了对 AspectJ 的集成支持。
4.2)Instrumentation 模块提供了 class instrumentation 支持和 classloader 实现,使得可以在特
定的应用服务器上使用
5:Test
Test 模块支持使用 JUnit 和 TestNG 对 Spring 组件进行测试
6:Spring 容器继承图:
7:控制反转和依赖注入
7.1)什么是控制反转?我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Inversion
Principle )
①:什么是依赖倒置原则?假设我们设计一辆汽车:先设计轮子,然后根据轮子大小设计底盘,接着根据底
盘设计车身,最后根据车身设计好整个汽车。这里就出现了一个“依赖”关系:汽车依赖车身,车身依赖
底盘,底盘依赖轮子
上图看上去没有什么毛病?但是 万一轮胎尺寸改了,那么地盘需要改,地盘改了,车身也改了,让后整个汽车构造都改了.
然后汽车公司倒闭了......................
董事长依赖总经理争取,总经理依赖部门经理挣钱,部门经理依赖员工争取,那么员工离职了怎么
办?????????????????????
反过来.............................假如汽车公司决定修改轮胎的我们就只需要改动轮子的设计,而不需要动底盘,车身,汽车
的设计了。
剩余14页未读,继续阅读
资源评论
光芒软件工匠
- 粉丝: 789
- 资源: 64
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功