Spring的基础以及核心

1.Spring简介

Spring是一个开源的轻量级应用开发框架,其目的是用于简化企业应用程序的开发,降低侵入性。Spring提供的IOC和AOP功能可以将组件之间的耦合度降至最低,即解耦,便于系统的升级和维护。Spring的本质是管理软件中的对象,即创建对象和维护对象之间的关系。

2.Spring容器

在Spring中,任何组件都可以当成Bean处理,通过容器管理。Spring容器有BeanFactory和ApplicationContext两种类型

Spring容器的实例化:ApplicationContext继承自5.Bean的延迟实例化
默认行为是在容器实例化的同时将单例模式的Bean提前进行实例化
延迟实例化操作:在<bean>声明时指定其属性lazy-init为true,一个延迟
实例化的bean将在第一次被用到时实例化
注意:仅适用于单例模式
在<beans>标签中通过default-lazy-init属性,可以为容器中的<bean>指定延迟实例化的特性

3.Bean的作用域
Spring容器在实例化bean组件时,可以创建以下作用域的Bean对象
singleton:在Spring容器中一个Bean定义对应一个实例对象,默认项
prototype:一个Bean定义对应多个实例对象
request:在一次Http请求中,一个Bean定义对应一个实例对象

session:在一次Http Session中,一个Bean定义对应一个实例对象

Bean的作用域可以通过<bean>定义的scope属性指定

4.Bean的生命周期
指定初始化回调方法
<bean init-method=""/>
指定销毁回调方法,只是适用于single模式的Bean
<bean destroy-method=""/>
在<beans>标签中通过default-init-method属性,可以为容器中的<bean>指定
初始化回调方法,也可以通过default-destroy-method属性为容器中的<bean>

指定销毁的回调方法。

5.Bean的延迟实例化
默认行为是在容器实例化的同时将单例模式的Bean提前进行实例化
延迟实例化操作:在<bean>声明时指定其属性lazy-init为true,一个延迟
实例化的bean将在第一次被用到时实例化
注意:仅适用于单例模式

在<beans>标签中通过default-lazy-init属性,可以为容器中的<bean>指定延迟实例化的特性

6.基于注解的组件扫描
什么是组件扫描
指定一个包路径,Spring会自动扫描此包中的组件类,当发现组件类定义前有特定的注解标记时,就将此组件类纳入到Spring容器中管理,等价于原有的XML配置中的<bean>定义
组件扫描可以替代大量的XML配置的<bean>定义
指定扫描类路径,使用组件扫描,首先需要在xml配置文件中指定扫描的父级package路径
<content:component-scan base-package="com.xms">
容器会自动扫描指定包及其子包下所有的组件类,如果此组件类定义前有特定的注解标记,则会将此组件类实例化为Bean对象
自动扫描的注解标记
@Component 通用注解
@Repository 持久层组件注解
@Service 业务层组件注解
@Controller 控制层组件注解
自动扫描组件的命令
当一个组件在扫描过程中被检测到时,会生成一个默认的ID值,默认ID值为小写开头的组件名,  也可以在注解标记中自定义ID值
指定组件的作用域
@Scope注解可以指定作用域,只需要在注解中提供作用域的名称即可
指定初始化和销毁的回调方法
@PostConstruct和@PreDestory注解分别用于指定初始化和销毁回调方法


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值