Spring注入

Spring注入是指在启动Spring容器加载bean配置的时候,完成对变量的赋值行为

常用的两种注入方式:

  • 设值注入
  • 构造注入

Bean配置项及作用域

Bean的配置项

  • Id
  • Class
  • Scope
  • Constructor arguments
  • Properties
  • Autowiring mode
  • lazy-initialization mode
  • Initialization/destruction method

Bean的作用域

  • singleton:单例,指一个Bean容器中只存在一份
  • prototype:每次请求(每次使用)创建新的实例,destroy方式不生效
  • request:每次http请求创建一个实例且仅在当前request内有效
  • session:每次http请求创建一个实例且仅在当前session内有效
  • global session:基于portlet的web中有效(portlet定义了global session),如果是在web中,通session

Bean的生命周期

定义

初始化

实现org.springframework.beans.factory.InitializingBean接口,覆盖afterPropertiesSet方法

public class ExampleInitializingBean implements InitializingBean
{public void init(){// do some initialization work}
}

配置init-method

<bean id="exampleInitBean" class="examples.ExampleBean" init-method="init">
public class ExampleBean
{public void init(){// do some initialization work}
}

销毁

实现org.springframework.beans/factory.DisposableBean接口,覆盖destroy方法

public class ExampleDisposableBean implements DisposableBean
{@Overridepublic void destroy(){// do something}
}

配置destroy-method

<bean id="exampleInitBean" class="examples.ExampleBean" destroy-method="cleanup">
public class ExampleBean
{public void cleanup(){// do some destruction work}
}

配置全局默认初始化、销毁方法

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://wwww.springframework.org/schema/beans/spring-beans.xsd"default-init-method="init" default-destroy-method="destroy">
</beans>

Bean的自动装配

  • No:不做任何操作
  • byname:根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配
  • byType:如果容器中存在一个与指定类型相同的bean,那么将与该属性自动装配;如果存在多个该类型bean,那么抛出异常,并指出不能使用byType方式进行自动配置;如果没有找到相匹配的bean,则什么事都不发生

Spring Bean装配相关推荐

  1. Spring Bean装配(上)

    Bean:在spring的IOC里面,把配置到IOC容器里面的实体或者是对象都称为Bean Bean配置项 Bean的作用域 Bean的生命周期 Bean的自动装配 Resources&Res ...

  2. Spring Bean 装配和依赖注入

    Spring IOC 容器的依赖注入工作可以分为两个阶段.第一个阶段可以认为是构建和收集 Bean 定义的阶段,在这个阶段中,我们可以通过 xml 或者 Java 代码的方式定义一些 Bean,然后通 ...

  3. spring Bean装配的几种方式简单介绍

    Spring容器负责创建应用程序中的bean同时通过ID来协调这些对象之间的关系.作为开发人员,我们需要告诉Spring要创建哪些bean并且如何将其装配到一起. spring中bean装配有两种方式 ...

  4. Spring bean 装配

    装配 bean 1. 自动化装配 @Component 告知Spring为被注解的类创建bean > 为bean命名: > + Spring为Bean默认命名为类名首字母小写 > + ...

  5. 观看慕课moocer老师视频Spring Bean装配之Autowire注解说明-7

    基于泛型自动装配: package com.imooc.beanannotation.javabased;import org.springframework.beans.factory.annota ...

  6. 观看慕课moocer老师视频Spring Bean装配之Autowire注解说明-2

    数组及Map的自动注入: 1.@controller 控制器(注入服务) 2.@service 服务(注入dao) 3.@repository dao(实现dao访问) 4.@component (把 ...

  7. 观看慕课moocer老师视频Spring Bean装配之Autowire注解说明-6

    默认@Bean是单例的,使用@Scope指定它的范围: package com.imooc.beanannotation.javabased;//import org.springframework. ...

  8. 观看慕课moocer老师视频Spring Bean装配之Autowire注解说明-5

    使用@ImportResource和@Value注解进行资源文件读取 package com.imooc.beanannotation.javabased;import org.springframe ...

  9. 观看慕课moocer老师视频Spring Bean装配之Autowire注解说明-3

    @Qualifier @Qualifier可缩小注解范围,也可指定唯一的bean. package com.imooc.beanannotation.multibean;import java.uti ...

最新文章

  1. LSTM之父撰文,纪念这位图灵奖遗珠、“AI理论之父”
  2. 自由移动的气泡_STARCCM+标准算例展示之——曳力作用下的气泡上升速度
  3. CodeForces - 1207F Remainder Problem(分块)
  4. 用jackson转json_用Jackson编写大JSON文件
  5. 个人编程思想理解的片段(主要是面向对象的,参考了许多人的观点,还不成熟,没形成系统,请大家多指点)...
  6. win7系统出现0x0000001a蓝屏代码的解决教程
  7. JSK-387 求偶数和【入门】
  8. springboot添加ojdbc6报错
  9. 计算机性能怎么测试软件,如何测试电脑性能|检测电脑性能的方法
  10. 连接共享打印机0x0000011b win10
  11. php怎么画五星红旗,PHP_php基于GD库画五星红旗的方法,本文实例讲述了php基于GD库画 - phpStudy...
  12. matlab m怎么使用,MATLAB的M文件的学习和使用
  13. 正则表达式与文本处理器
  14. 信用社考试计算机知识,农村信用社考试计算机知识模拟试题及答案
  15. 第 13 章 一 垃圾回收概述
  16. 一般试卷的纸张大小是多少_试卷,考试试卷是多大的纸
  17. 域名系统(DNS)说明
  18. 《Access 2007开发指南(修订版)》一一2.7 操作查阅向导
  19. [iOS] Xcode 5 + iOS 7免证书(iDP)真机调试与生成IPA全攻略
  20. 上课笔记--商法(上)

热门文章

  1. Vue中computed、methods和watch之间的区别
  2. php2个数字拼接,PHP合并2个数字键数组值示例详解
  3. 「CF 932E」 Team Work
  4. react-native学习路线总结
  5. Codeforces Round #169 (Div. 2)
  6. 记conda 安装geopandas遇到的一个小错误
  7. Activity-数据状态的保存
  8. 近期会将视频在线课堂移植ios,欢迎大家关注
  9. 测地膨胀和膨胀重建—lhMorpRDilate
  10. Windows环境下安装redis以及出现的一些未解决的问题