对昨天的查漏:关于<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>的注入,当然还有一种接口注入,我也不太清楚。

最新文章

  1. SQLServer------存储过程在C#中的使用方法
  2. 用python+selenium抓取微博24小时热门话题的前15个并保存到txt中
  3. ServletContextDemo
  4. 理解MySQL——复制(Replication)
  5. asp.net过滤HTML标签的几个函数
  6. C#的控制台程序输出
  7. 40 个顶级 jQuery 图片、内容滑块和幻灯片(转)
  8. 现代程序设计homework——04
  9. MySQL FEDERATED引擎使用示例, 类似Oracle DBLINK
  10. COJ 0981 WZJ的数据结构(负十九)树综合
  11. PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念
  12. 编程算法 - 二部图确定 代码(C)
  13. Struts2的拦截器
  14. 使用VS Code开发asp.net core (上)
  15. 沉淀,再出发——安装windows10和ubuntu kylin15.04双系统心得体会
  16. day-2 如何搭建一个github代码库
  17. Scala:字符串
  18. Redis数据结构之skiplist
  19. yum方式安装mysql
  20. MinGW GCC 7.1.0 2017年6月份出炉啦

热门文章

  1. sqli-labs level 2
  2. 最简单-转换MBR为GPT
  3. 5G时代能携号转网,你会提前换新手机吗?
  4. phpStudy隐藏后门预警
  5. 题解:luogu P1247
  6. git下载安装、配置及idea初始化
  7. 005-PHP函数输出一行内容
  8. eshop1-大型电商架构演进
  9. git commit -m 和 git commit -am 区别
  10. 吴裕雄--天生自然java开发常用类库学习笔记:List接口