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