Spring IOC知识点总结

Spring IOC知识点总结

本文是我学习Spring IOC时总结的一些知识点,第一次发博客,先把总结了的点写上,后续会更进补充。

IOC概念

IOC是控制反转的意思,就是将原本在程序中手动创建对象的控制权,交给Spring框架管理,也就是创建对象的控制权被反转到了Spring框架。一个好的程序设计需满足ocp原则,对程序扩展是open的,对修改程序代码时close的,即尽量做到不修改程序的源码的同时实现对程序的扩展。Spring框架是通过工厂+反射+配置文件方式实现对象的创建,使程序解耦合。控制反转是一个通用的概念,它可以用许多不同的方式去表达,而依赖注入是控制反转的一个具体的例子。那么到底什么是依赖注入?让我们可以将这两个词分开来看一看。这里将依赖关系部分转化为两个类之间的关联。例如,类 A 依赖于类 B,类 B 将通过 IoC 被注入到类 A 中。

Bean的常用属性

在这里插入图片描述
其中:
(1)id和name
一般情况下,装配一个Bean时,通过指定一个id属性作为Bean的名称,id属性在IOC容器中必须是唯一的;如果Bean的名称中含有特殊字符,就需要使用name属性。其他情况下,可认为这两个作用一样。
(2)class
class用于设置一个类的完全路径名称,主要作用是IOC容器生成类的实例。

Bean的作用域

主要有两个,singleton和prototype,singleton是单例模式,在Spring IOC容器中仅存在一个Bean实例。prototype是多例模式,每次调用getBean()时都会返回一个新的实例。
singleton 是 Spring 容器默认的作用域,当一个 Bean 的作用域为 singleton 时,Spring 容器中只会存在一个共享的 Bean 实例,并且所有对 Bean 的请求,只要 id 与该 Bean 定义相匹配,就只会返回 Bean 的同一个实例。通常情况下,这种单例模式对于无会话状态的 Bean(如 DAO 层、Service 层)来说,是最理想的选择。
使用 prototype 作用域的 Bean 会在每次请求该 Bean 时都会创建一个新的 Bean 实例。因此对需要保持会话状态的 Bean(如 Struts2 的 Action 类)应该使用 prototype 作用域。

Spring的属性注入方式

对于类成员变量,Spring的属性注入主要有两种方式,构造函数注入和属性setter方法注入。
构造方法注入:通过构造方法注入Bean的属性值或依赖的对象,保证Bean实例在实例化后就可以使用。构造器注入在元素里声明属性。
set方法注入:在Spring配置文件中,通过设置注入的属性,使用xml配置时一般使用该属性注入方式。

Spring的Bean管理(注解方式)

@Component:描述Spring框架中Bean
除了@Component外,Spring提供了3个功能基本和其等效的注解,为了让标注类本身的用途清晰,分别为:
@Repository:用于对DAO实现类进行标注。
@Service:用于对Service实现类进行标注。
@Controller:用于对Controller实现类进行标注。

Spring的属性注入(注解方式)

@Autowired:根据属性类型进行自动装配。
@Qualifier:根据名称进行注入。该注解和上面@Autowired 一起使用。
@Resource:可以根据类型注入,也可以根据名称注入,相当于@Autowired + @Qualifier。
@Value:注入普通类型属性。

初始化或销毁Bean时处理工作

Spring初始化bean或销毁bean时,有时需要作一些处理工作,因此Spring可以在创建和销毁bean的时候调用bean的两个生命周期方法。
,bean被载入到容器的时候调用init,当bean从容器中删除的时候调用destroy(scope=singleton有效)。若要使用注解方法,@PostConstruct代表是初始化方法,@PreDestroy代表是销毁方法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值