配置 bean,本章节中主要介绍蓝色文字部分.
  配置形式基于 XML 文件的方式;基于注解的方式
  Bean 的配置方式通过全类名(反射)、通过工厂方法(静态工厂方法 & 实例工厂方法)、FactoryBean
  IOC 容器 BeanFactory & ApplicationContext 概述
  依赖注入的方式属性注入;构造器注入
  注入属性值细节
  自动转配
  bean 之间的关系:继承;依赖
  bean 的作用域:singleton;prototype;WEB 环境作用域
  使用外部属性文件
  spEL
  IOC 容器中 Bean 的生命周期
  Spring 4.x 新特性:泛型依赖注入

Spring IOC 容器 ApplicationContext

  在 Spring IOC 容器读取 Bean 配置创建 Bean 实例之前, 必须对它进行实例化. 只有在容器实例化后, 才可以从 IOC 容器里获取 Bean 实例并使用.

  Spring 提供了两种类型的 IOC 容器实现-BeanFactory 和 ApplicationContext.
    BeanFactory: IOC 容器的基本实现;ApplicationContext: 提供了更多的高级特性. 是 BeanFactory 的子接口.
    BeanFactory 是 Spring 框架的基础设施,面向 Spring 本身;ApplicationContext 面向使用 Spring 框架的开发者,几乎所有的应用场合都直接使用ApplicationContext 而非底层的 BeanFactory.无论使用何种方式, 配置文件时相同的.
  ApplicationContext 的主要实现类:ClassPathXmlApplicationContext:从 类路径下加载配置文件;FileSystemXmlApplicationContext: 从文件系统中加载配置文件
  ConfigurableApplicationContext 扩展于 ApplicationContext,新增加两个主要方法:refresh() 和 close(), 让 ApplicationContext 具有启动、刷新和关闭上下文的能力.

  ApplicationContext 在初始化上下文时就实例化所有单例的 Bean。
  WebApplicationContext 是专门为 WEB 应用而准备的,它允许从相对于 WEB 根目录的路径中完成初始化工作  

基于XML文件的方式配置bean

  通过全类名的方式去配置bean:

  

  id:Bean 的名称。 class:全类名,通过反射的方式创建bean,所以要求bean中必须具有无参构造器.
  id在 IOC 容器中必须是唯一的,若 id 没有指定,Spring 自动将权限定性类名作为 Bean 的名字,id 可以指定多个名字,名字之间可用逗号、分号、或空格分隔.

依赖注入的方式

  属性注入
  构造器注入
  工厂方法注入(很少使用,不推荐).

属性注入

  属性注入即通过 setter 方法注入Bean 的属性值或依赖的对象
  属性注入使用 <property> 元素, 使用 name 属性指定 Bean 的属性名称,value 属性或 <value> 子节点指定属性值
  属性注入是实际应用中最常用的注入方式

构造器注入

  通过构造方法注入Bean 的属性值或依赖的对象,它保证了 Bean 实例在实例化后就可以使用。构造器注入在 <constructor-arg> 元素里声明属性, <constructor-arg> 中没有 name 属性

  

spring4-2-bean配置-1-依赖注入的更多相关文章

  1. 峰Spring4学习(2)依赖注入的几种方式

    一.装配一个bean 二.依赖注入的几种方式 com.cy.entity   People.java: package com.cy.entity; public class People { pri ...

  2. spring总结之二(Bean作用域、依赖注入)

    ### Bean的作用域:单例(singleton),多例(prototype) 1.单例模式:表示在任何地方使用对象,总是一个(对象是唯一的). (笔面试重点) 饿汉式 public class K ...

  3. Spring IoC(一)bean实例化和依赖注入

    1.IoC容器概述 IoC 全称为 Inversion of Control,翻译为 “控制反转”,它还有一个别名为 DI(Dependency Injection),即依赖注入. 所谓 IOC ,就 ...

  4. Spring基础知识1--环境搭建、bean创建、依赖注入、注解注入

    一.Spring两大核心内容 1.控制反转IOC/DI:  应用本身不负责对象的创建和维护,对象和依赖对象的创建完全交给容器管理. 2.AOP(面向切面编程):通过预编译的方式,在运行期通过动态代理的 ...

  5. Spring配置及依赖注入

    入门 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-we ...

  6. 3、Spring4之Bean 配置的细节

    1). 若字面值中包括特殊字符,则能够使用 value 节点的 <![CDATA[]]> 把字面值包裹起来.      <constructor-arg>           ...

  7. spring源码分析之玩转ioc:bean初始化和依赖注入(一)

    最近赶项目,天天加班到十一二点,终于把文档和代码都整完了,接上继续整. 上一篇聊了beanProcess的注册以及对bean的自定义修改和添加,也标志着创建bean的准备工作都做好了,接下来就是开大招 ...

  8. spring4——IOC之基于注解的依赖注入(DI )

    spring容器对于Bean的创建和对象属性的依赖注入提供了注解的支持,让我们在开发中能够更加便捷的实现对象的创建和对象属性的依赖注入.一,对于Bean的创建spring容器提供了以下四个注解的支持: ...

  9. Spring 源码分析之 bean 依赖注入原理(注入属性)

         最近在研究Spring bean 生命周期相关知识点以及源码,所以打算写一篇 Spring bean生命周期相关的文章,但是整理过程中发现涉及的点太多而且又很复杂,很难在一篇文章中把Spri ...

  10. Spring源码解析(四)Bean的实例化和依赖注入

    我们虽然获得了Bean的描述信息BeanDefinition,但是什么时候才会真正的实例化这些Bean呢.其实一共有两个触发点,但是最后实际上调用的是同一个方法. 第一个:在AbstractAppli ...

随机推荐

  1. nginx和php-fpm通信的两种方式 unix socket和TCP

    nginx和fastcgi的通信方式有两种,一种是TCP 一种是unix socket TCP使用的是 127.0.0.1:9000端口,将fastcgi_pass参数修改为127.0.0.1:900 ...

  2. nginx限制请求之四:目录进行IP限制

    相关文章: <高可用服务设计之二:Rate limiting 限流与降级> <nginx限制请求之一:(ngx_http_limit_conn_module)模块> <n ...

  3. ptyhon中文本挖掘精简版

    import xlrd import jieba import sys import importlib import os #python内置的包,用于进行文件目录操作,我们将会用到os.listd ...

  4. Hadoop Map/Reduce的工作流

    问题描述 我们的数据分析平台是单一的Map/Reduce过程,由于半年来不断地增加需求,导致了问题已经不是那么地简单,特别是在Reduce阶段,一些大对象会常驻内存.因此越来越顶不住压力了,当前内存问 ...

  5. 5月16日上课笔记-js中DOM操作

    一.DOM操作 DOM节点的操作 增加 删除 修改 节点的信息: nodeName 获取节点的标签名 parentNode 获取父节点 childNodes IE忽略回车换行,chrome回车换行是文 ...

  6. Android 应用获取Jenkins编译的版本号

    Android很多应用的版本号最后都带了编译的版本号.比如说V1.0.0.125,后边的125就通常使用每次编译之后build history的号码,它是逐次增加,这样就可以区分每个细分的编译版本号, ...

  7. clutter recoder

    cin >> ch; cin.get(ch);区别读取输入是否忽略空格.制表等; char ch; ; cout << "Enter characters;enter ...

  8. ansible初识二

    一.ansible模块(yum.pip.service.conr.user.group) 上篇中我们已经学了ansible 的几个模块, 接下来再来学习几个, 那么你是否知道ansible 一共有多少 ...

  9. Windbg基本命令应用总结

    .cordll -ve -u -l //reload core dlls ------加载下载系统文件符号的URL---------- .sympath SRV*C:\Symbols*http://m ...

  10. 【源码阅读】Java集合之一 - ArrayList源码深度解读

    Java 源码阅读的第一步是Collection框架源码,这也是面试基础中的基础: 针对Collection的源码阅读写一个系列的文章,从ArrayList开始第一篇. ---@pdai JDK版本 ...