配置项

  • id bean的标识
  • class bean的类全名
  • scope bean的作用域
  • constructor-arg 构造注入
  • properties 设值注入
  • autowire 装配模式
  • lazy-init 是否懒加载
  • init-method 初始化方式
  • destroy-method 销毁方法

作用域scope

  • singleton 单例,一个bean容器中只存在一份,若有多个容器则有多个实例
  • prototype 原型模式,每次请求创建新实例,destroy不生效
  • request 每个请求创建一个
  • session 当前session内有效
  • global session 单点情景下,跨系统session
    测试singleton和prototype


生命周期

  • 定义(实现一个类)
  • 初始化
    两种方式
    1、【常用】实现org.springframework.beans.factory.InitializingBean接口,并覆盖afterPropertiesSet()方法

2、配置init-method


3、全局配置,在beans中配置default-init-method(当某个bean设置了1、2种方式,则全局配置不生效)

  • 使用
  • 销毁
    1、【常用】实现org.springframework.beans.factory.DisposableBean接口,并覆盖destroy()方法

2、配置destroy-method

3、全局配置,在beans中配置default-destroy-method(当某个bean设置了1、2种方式,则全局配置不生效)

自动装配Aware

spring提供了以Aware结尾的接口,实现后可在bean初始化后获取相应资源,可以对其进行操作(因为资源较核心,操作须慎重)
类实现ApplicationContextAware接口,覆盖setApplicationContext方法

配置xml

获取该实例,实现aware接口的类setApplicationContext方法会优先执行,且和使用时的实例是同一个

AutoAwaring

  • No 什么都不做
  • byName 通过名称,配置后,属性可不用配置,会自动根据名称寻找相应的bean加载(一定要配置bean的id)
  • byType 通过类型(class)匹配对应的bean,若未找到,则什么都不做
  • Constructor 与byType类似,区别在于它应用与构造器参数,若未找到会异常
    Demo
    1、只配置bean

    2、Test类

    3、Service类

    4、Dao类

    5、RunTest

Resources&ResourceLoader

Resource针对于资源的统一接口

  • UrlResource Url对应的资源,根据一个URL地址即可构建
  • ClassPathResource 类路径下的资源文件
  • FileSystemResource 文件系统里的资源文件
  • ServletContextResource 用于访问Servlet环境下的资源
  • InputStreamResource 输入流封装资源
  • ByteArrayResource 字节数组封装资源

ResourceLoader

所有的applicationContext都会实现该接口
前缀:

  • classpath 从classpath中加载
  • file 从文件系统中加载
  • http 从连接中加载
  • (none)

JavaSpring【三、Bean】的更多相关文章

  1. Spring(三)Bean继续入门

    一.Aware相关接口 对于应用程序来说,应该尽量减少对Sping Api的耦合程度,然而有些时候为了运用Spring所提供的一些功能,有必要让Bean了解Spring容器对其进行管理的细节信息,如让 ...

  2. Spring三 Bean的三种创建方式

    创建Bean的三种方式在大多数情况下,Spring容器直接通过new关键字调用构造器来创建Bean实例,而class属性指定Bean实例的实现类,但这不是实例化Bean的唯一方法.实际上,Spring ...

  3. Spring揭秘 读书笔记 三 bean的scope与FactoryBean

    本书可作为王富强所著<<Spring揭秘>>一书的读书笔记  第四章 BeanFactory的xml之旅 bean的scope scope有时被翻译为"作用域&quo ...

  4. (三)Bean生命周期

    1 Bean注册 应用启动实质是调用Spring容器启动方法扫描配置加载bean到Spring容器中.同时启动内置的Web容器的过程,具体分析如下: @SpringBootApplication注解在 ...

  5. Java开发学习(三)----Bean基础配置及其作用范围

    一.bean基础配置 对于bean的基础配置如下 <bean id="" class=""/> 其中,bean标签的功能.使用方式以及id和clas ...

  6. Spring学习记录(三)---bean自动装配autowire

    Spring IoC容器可以自动装配(autowire)相互协作bean之间的关联关系,少写几个ref autowire: no ---默认情况,不自动装配,通过ref手动引用 byName---根据 ...

  7. Spring系列(三) Bean装配的高级技术

    profile 不同于maven的profile, spring的profile不需要重新打包, 同一个版本的包文件可以部署在不同环境的服务器上, 只需要激活对应的profile就可以切换到对应的环境 ...

  8. 学习 Spring (三) Bean 的配置项 & 作用域

    Spring入门篇 学习笔记 配置项 Id: 整个 IoC 容器中的唯一标识 Class: 具体实例化的类(必须配置项) Scope: 作用域 Constructor arguments: 构造器参数 ...

  9. java-Spring 管理bean例子

    Spring 通过2种方式管理bean 首先要导入Spring的包,(Spring.jar和commonslogging.jar) 或加载分开的... 在src目录下建立applicationCont ...

  10. Spring框架系列(三)--Bean的作用域和生命周期

    Bean的作用域 Spring应用中,对象实例都是在Container中,负责创建.装配.配置和管理生命周期(new到finalize()) Spring Container分为两种: 1.BeanF ...

随机推荐

  1. 深入理解Flink ---- Metrics的内部结构

    从Metrics的使用说起 Flink的Metrics种类有四种Counters, Gauges, Histograms和Meters. 如何使用Metrics呢? 以Counter为例, publi ...

  2. nginx服务报错解决

    403禁止访问解决 . 重要:修改配置文件使用虚拟机,否则怎么配置都不生效,添加如下用户 [root@host---- html]# ll /etc/nginx/nginx.conf -rw-r--r ...

  3. GCE 部署 ELK 7.1可视化分析 nginx

    目录 一.准备 1.1.服务器环境准备 二.安装 ES 2.1.遇到小问题 三.安装 Kibana 四.安装 Logstash 一.准备 我这边有一个网站放在了 Google VM 上面,所以打算在购 ...

  4. Linux特基础的知识(接上一条)

    grep:文本过滤工具(找到要找的文本) print lines matching a pattern例: 打印 行 匹配 一个 模式/样式[root@oldboyedu /opt]# grep &q ...

  5. vulstudy

    vulstudy是专门收集当下流行的漏洞学习平台,并将其制作成docker镜像,方便大家快速搭建环境,节省搭建时间,专注于的漏洞学习上.目前vulstudy包含以下漏洞学习平台: 序号 漏洞平台 包含 ...

  6. 【编程开发】MD5和RSA

    MD5和RSA是网络传输中最常用的两个算法,了解这两个算法原理后就能大致知道加密是怎么一回事了.但这两种算法使用环境有差异,刚好互补. (1)MD5 MD5(单向散列算法)的全称是Message-Di ...

  7. Python Elasticsearch

    以下所用版本为Elasticsearch 7.2.0 1.安装 pip3 install elasticsearch -i https://pypi.tuna.tsinghua.edu.cn/simp ...

  8. 洛谷 题解 CF903B 【The Modcrab】

    如果它在接下来一回合能一下就将你KO了,那么,你就十分需要回血(一直回到它一下敲不死你),否则你就一直打它就好了. #include<iostream> using namespace s ...

  9. centos7:ssh免密登陆设置及常见错误

    目录 一.免密登录设置 二.常见错误 三.CentOS7再ssh-copy-id时的错误 一.免密登录设置 1.使用root用户登录,进入到目录/root/.ssh 2.执行命令:ssh-keygen ...

  10. c++ 行为型_备忘录模式(Memento)

    行为型_备忘录模式(Memento) 作用场景: 当意图在对象外面保存对象的内部状态,但是又不想破坏对象的封装性,就可以考虑备忘录模式. 解释: 其参与者包括 1.Memnto(备忘录,如下列Coun ...