学习spring的第二天
对昨天的查漏:关于<bean>标签的scope属性,是由它决定原型和单例的,而不是说你java代码中用到了单例模式就是单例了。
其二就是lazy-init属性,它对于scope="singleton"是无用的,但是对于scope="prototype"来说,选择true,可以使初始化在getBean的时候进行,而不是在spring启动时,对singleton无用也是因为这个原因。
今天:主要是控制反转,依赖注入(所有被spring管理的bean,当他依赖一个其他的被spring管理的bean,那么spring负责把第二个bean注入第一个bean)
1.set访问器
1.1:在<bean></bean>中选择<property>,它由name属性,填写set方法中的字段名。在<property>中,有<set><map><list><props>之类的标签,可以用于对类中的相应类型的字段进行操作。以为他们不想那些简单类型或者类类型。再在这个标签中可以使用<value>往里面添加值,每种标签有相应的特点,比如<set>就可以和java中的Set一样可以防止重复值。在<set>同级别以及<value>中可以设置规定值的类型属性。
1.2:对于简单类型,直接在<property>中对name和value进行赋值。
1.3:对于类类型:在<property>中对name和ref属性进行设置 ,ref是指引用。
1.3.1:第一种是外部在创建一个指向该类的<bean id="x" class="x">,在ref中指向这个<bean>的id
1.3.2:第二种是内部嵌套:<property>中<bean>,再在<bean>中<property>
2.构造函数:<bean id="x" class="x"></bean>中有<constructor-arg>,如果是简单类型直接通过value属性进行赋值(不写name属性就是按照构造方法的参数顺序,其他类似name功能的还有index下表,以及type指定类型),但如果不是简单属性,在<construcotr-arg>中也有像上述所说的<set><list>之类的标签,差不多的用法。
3.控制反转:IOC:inverse of control。也有人把它理解成DI(dependency injection),依赖注入。
3.1不反转就是当你创建一个对象时,你要对它手动调用set方法初始化,而反转就是当你getBean得到一个对象后,它的所有属性已经设置好了,就是上面1和2讲的set和构造方法配置<bean>的注入,当然还有一种接口注入,我也不太清楚。
学习spring的第二天的更多相关文章
- #Spring实战第二章学习笔记————装配Bean
Spring实战第二章学习笔记----装配Bean 创建应用对象之间协作关系的行为通常称为装配(wiring).这也是依赖注入(DI)的本质. Spring配置的可选方案 当描述bean如何被装配时, ...
- 深入浅出学习Spring框架(四):IoC和AOP的应用——事务配置
在前文 深入浅出学习Spring框架(一):通过Demo阐述IoC和DI的优势所在. 深入浅出学习Spring框架(三):AOP 详解 分别介绍了Spring的核心功能——IoC和AOP,光讲知识远远 ...
- 【转】Spring学习---Spring IoC容器的核心原理
[原文] Spring的两个核心概念:IoC和AOP的雏形,Spring的历史变迁和如今的生态帝国. IoC和DI的基本概念 IoC(控制反转,英文含义:Inverse of Control)是Spr ...
- 学习Spring——依赖注入
前言: 又开始动笔开了“学习Spring”系列的头…… 其实一开始写“学习SpringMVC”的几篇文章是出于想系统的了解下Spring以及SpringMVC,因为平时在公司中虽然每天都在使用Spri ...
- Stealth视频教程学习笔记(第二章)
Stealth视频教程学习笔记(第二章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提 ...
- 菜鸟学习Spring——60s配置XML方法实现简单AOP
一.概述. 上一篇博客讲述了用注解的形式实现AOP现在讲述另外一种AOP实现的方式利用XML来实现AOP. 二.代码演示. 准备工作参照上一篇博客<菜鸟学习Spring--60s使用annota ...
- 学习HTML5的第二周
---恢复内容开始--- 这是我学习H5的第二周,在本周,我独立完成了一个网站的首页和一个二级页,虽然在做网页的时候我遇到了许多问题,但我自己想办法解决了其中的大部分,只留下了一小部分没有头绪的问题等 ...
- 跟着刚哥学习Spring框架--创建HelloWorld项目(一)
1.Spring框架简介 Spring是一个开源框架,Spring是在2003年兴起的一个轻量级的开源框架,由Rod johnson创建.主要对JavaBean的生命周期进行管理的轻量级框架,Spri ...
- 学习Spring中遇到关于BeanFactory及测试类的问题
最近在学习Spring,使用的是Spring 5.0.1 学习书本中使用的是4.0 学习书本中使用以下来加载配置文件及设置 Resource resource = new ClassPathResou ...
随机推荐
- django-redis和redis连接
redis连接 简单连接 import redis r = redis.Redis(host=) r.set('foo', 'Bar') print r.get('foo') 连接池 import r ...
- 运行自己的 DaemonSet【转】
本节以 Prometheus Node Exporter 为例演示如何运行自己的 DaemonSet. Prometheus 是流行的系统监控方案,Node Exporter 是 Prometheus ...
- springboot的maven多模块项目架构微服务搭建——构建多模块项目(依赖方式)
总想对微服务架构做一个小小的总结,不知如何下手,最近觉得还是从搭建微服务的过程来入手,对于springboot的maven项目从构建多模块架构进而衍化为常用的微服务架构来做个记录吧. 首先,创建多个s ...
- XmlBeanDefinitionReader
- java#类的实例化顺序
关于类的实例化,不用弄的那么细致,这里只说单一类,没有其他父类(排除Obejct)的情况.要实例化一个类,需要加载class文件到jvm并且验证通过了是安全的字节码文件. 初始化大致上是按照如下步骤: ...
- java理解抽象类 2.19
// Telphone.java public abstract class Telphone{ public abstract void call(); public abstract void m ...
- 4 GC算法与种类
- cmd命令打开本地*.db数据文件的一些坑
昨天刚看了下sqlite数据库,用的是cmd窗口 写的,建了几个表,今天在次打开,发现.问题有点小多啊.. 我也不知道我的数据库名字后面为啥会带 (“ : ”) 下面是我的数据文件: 刚开始看了下, ...
- 获取QQ状态接口开发示例
unit checkqqstatus; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Control ...
- android studio (安卓开发)如何使用外部模拟器(mumu模拟器)调试运行程序
开发安卓 我觉得大家明白自带的模拟器卡的要死而且启动慢(我觉得八核的计算机应该可以解决这个问题),这里使androidstudio 使用外部模拟器 MuMu模拟器 配置方法 eclipse 开发安卓 ...