我的第一次Spring学习
来源:互联网 发布:朝鲜 核武 知乎 编辑:程序博客网 时间:2024/05/04 21:30
*****Spring的依赖注入是依赖java的反射机制
*****Spring是面向接口编程的方式进行耦合的,达到松耦合。
*****Spring的IoC容器(或依赖注入,控制反转)即应用了软件工程中工厂模式这种设计模式。为对象设置属性的方式即控制反转。
--这种依赖注入方式是一种很好的解耦方式。而Spring将Bean与配置文件组织在一起,而不是以硬编码(即在需要的地方new一个实例的方式)的方式耦合在一起,以达到解耦合的目的。
配置文件:
1.如何实例化Spring容器:
--ApplicationContext ctx=new ClassPathXmlApplicationContext("***.xml"); --***.xml具体配置文件的名称
2.Spring如何管理实例化某个类的对象:(以实例化Chinese类为例,该类实现了Person接口)
--Spring容器的getBean方法(该方法是重载方法)实例化某个类的对象的。
--同时Spring容器是调用该类的无参构造方法实例化该类的。所以如果该类中存在有参的构造方法,必须显式定义无参构造方法。
--Person person=ctx.getBean(“person”,Person.class);
--问题:为何对象的类型说明是接口类?
--因为Spring是以面向接口编程进行松耦合的。这样该对象就可以引用不同的类(这些类都必须实现了接口),只需要在配置文件修改该对象所引用的类的全名即可,Spring容器就自动将这些类的实例化引用赋值给对象变量。
3.Spring如何为对象的属性赋值的:
a) 设值注入:Spring容器在实例化类时,会调用属性的setter方法为属性赋值,此时Spring容器在实例化类还是调用该类的无参构造方法!!
i. 当该属性的类型为数值类型或字符串类型时,配置文件如下:
--<property name=”FieldName” value=”Value”></property> 将Value值赋值给属性名为FieldName的属性
ii. 当该属性的类型为其他类时,则该属性的类型应该是接口类,原因:请看上面
部分
--配置文件的定义:
b) 构造注入:属性的初始化在该类的有参构造方法中实现,此时Spring容器会调用该类的有参构造方法为属性初始化
类文件:
配置文件:
注意: index用于指定该构造参数值将作为第几个构造参数值。
****设值注入与构造注入的区别:
I. 设值注入是先通过无参数的构造器实例化类,然后调用对应的属性的setter方法注入依赖关系
II. 构造注入是直接通过调用有参数的构造器,在实例化类的同时,就已经完成了对依赖关系的注入。
--问题:那应该选择哪种方式对依赖关系进行注入?
--答:建议采用设值注入为主,构造注入为辅
- 我的第一次Spring学习
- 我与spring的第一次约会
- 第一次写我的学习笔记
- SPRING学习第一次错误
- 记我的第一次继承spring和hibernate
- 我的第一次!
- 我的第一次
- 哈哈,我的第一次
- 我的第一次
- 我的第一次
- 我的第一次
- 我的第一次blog
- 我的第一次
- 我的第一次BLOG
- 我的第一次
- 我的第一次入会
- 我的第一次yo。。
- 我的第一次~~~
- 凯运水利水电工程造价管理系统 技术解析(十) 中间单价(一)
- 6. ZigZag Conversion
- 掐二八控牌教程▇『【在线演示QQ:194714506】
- Ubuntu 12.04.2 LTS
- 掐二八控牌方法︾▃【在线演示QQ:194714506】
- 我的第一次Spring学习
- 修改linux主机名称
- UITableView_4cell简单练习,汽车品牌展示
- CSDN之星
- 掐二八控牌手法←㊣【在线演示QQ:194714506】
- 红黑树基本操作
- struts2文件异步上传带进度条(二)
- RIP设置
- 掐二八怎么控牌▃▃【在线演示QQ:194714506】