首页 > 编程语言 > 详细

17. Spring前世今生与基础组件

时间:2021-04-06 23:27:13      阅读:25      评论:0      收藏:0      [点我收藏+]

一、Spring的前世今生

1、2007年,基于 Java 得开源框架正式发布

2、Spring 不仅仅是一个框架,Spring 俨然成为了一种生态

3、与其说是 Java 开发,不如书是 Spring 开发

4、简化开发,让程序员把关注点放到业务中去

1. Spring简化开发四个基本策略

1、基于 POJO 得轻量级和最小侵入性编程

2、通过依赖注入和面向接口松耦合

3、基于切面和惯性进行声明式编程

4、通过切面和模板减少样板式代码

2. Spring中的编程思想

Spring思想 应用场景 [特点] 一句话归纳
OOP Object Oriented Programming [面向对象编程] 用程序归纳总结生活中一切事物 封装、继承、多态
BOP Bean Oriented Programming [面向Bean编程] 面向Bean [普通 Java 类] 设计程序,解放程序员。 一切从Bean开始
AOP Aspect Oriented Programming [面向切面编程] 找出多个类中有一定规律的代码,开发时拆开,运行时再合并。面向切面编程,即面向规则编程。 解耦,专人做专事
IOC InverSion Of Control [控制反转] 将 new 对象的动作交给 Spring 管理,并由 Spring 保存已创建的对象 [IOC容器] 转交控制权 [即 控制权反转]
DI/DL Dependency Injection [ 依赖注入 ] 或者 Dependency Lookup [以来查找],Spring不仅保存自己创建的对象,而且保存对象与对象之间的关系。注入即赋值,主要三种方式,构造方法、set方法、直接赋值 自动赋值

AOP、IOC、DI 之间的关系

1、AOP 依赖于 IOC

2、DI 依赖于 IOC

3. Spring 注解编程

技术分享图片

二、Sping 5 注解编程基础组件

1、掌握 XML 配置和 Annotation 编程的区别

2、掌握常用的 Annotion 配置功能

3、完全掌握 Spring 的 Annotation API 使用

1. 配置组件

注解名称 说明
@Configuration 把一个类作为一个 IOC 容器,它的某个方法头上如果注册了 @Bean,就会作为这个 Spring 容器中的 Bean
@ComponentScan 在配置类上添加 @ComponentScan 注解,该注解默认会扫描该类所在的报下所有的配置类,相当于之前的 < context:component-sacn >
@Scope 用于指定 scope 作用域的 [ 用在类上 ]
@Lazy 表示延迟初始化
@Conditional Spring 4 开始提供,它的作用时按照一定的条件进行判断,满足条件给容器注册 Bean
@Import 导入外部资源
生命周期控制 @PostConstruct 用于指定初始化方法 [ 用在方法上 ]
@PreDestory 用于指定销毁方法 [ 用在方法上 ]
@DependsOn 定义 Bean 初始化即销毁时的顺序

2. 赋值组件

注解名称 说明
@Component 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注
@Service 用于标注业务层组件
@Controller 用于标注控制成组件
@Repository 用于标注数据访问层组件,即Dao组件
@Value 普通数据类型赋值
@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合 @Qualifier 注解一起使用
@PropertySource 读取配置文件赋值
@Qualifier 如存在多个实例配合使用
@Primary 自动装配时当出现多个 Bean 候选时,被注解为 @Primary 的 Bean 将作为首选者,否则将抛出异常
@Resource 默认按名称装配,当找不到与名称匹配的 Bean 才会按类型装配

3. 织入组件

注解名称 说明
ApplicationContextAware 可以通过这个上下文环境对象得到Spring容器中的 Bean
BeanDefinitionRegistryPostProcessor BeanDefinitionRegistryPostProcessor实现了BeanFactoryPostProcessor接口,时Spring框架的BeanDifinitionRegistry的后处理器,用来注册额外的BeanDefinition

4. 切面组件

注解名称 说明
@EnableTransactionManagement 添加对事物管理的支持
@Transactional 配置声明式事务信息

17. Spring前世今生与基础组件

原文:https://www.cnblogs.com/JustDoIt-1221/p/14623784.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!