Spring学习总结(1.2)-依赖注入及配置了解
来源:互联网 发布:资料员软件 编辑:程序博客网 时间:2024/06/02 20:44
前面的博客大概的讲了一下IOC容器的理解,那么IOC的实现实际上依托于依赖注入的。简单的说就是IOC是一种思想,而依赖注入为这种思想提供了实现。个人是这么理解的。本篇博客介绍两种常用的注入方式,以及他们的配置(基于XML)。
IOC容器说明
从最近的学习来看,特别是基于XML的配置形式下。IOC容器就是一个生产线,它依据配置中类之间的持有关系,一个部件一个部件的组装成一个完整的产品去执行一个完整的任务。从使用者的方向上看,他只能看到一个入口,而之后的处理他是不知道的。当然,这在没有容器的概念的时候也是一样的。不一样的地方在于,容器是一个装配者只有它知道各个部分之间的关系,它负责将各个部分组合成一个完整的产品。大概是这么个意思:依赖注入
前面说过控制反转,反转的是创建被调用者的功能被反转了,交给了IOC容器去处理。依赖注入是什么呢?它就是IOC将被调用者提供给调用者的途径。在运行的时候无需调用者自己创建被动用者,而是IOC容器像打针一样将被调用者注入到调用者中去。那么最常用的注入方式有两种:setter方法注入和构造函数注入。setter方法
即通过set方法注入Bean的属性值或者依赖对象。这种方式注入需要提供一个默认的不带参数构造函数。如果没有构造函数,JVM默认提供一个默认的无参构造函数。当自己写了构造函数时,由于JVM不再提供默认的构造函数,因此需要自己写一个不带参数的构造函数。否则抛出异常。Car类
public class Car {private String company;private String brand;private int maxSpeed;private float price; public void setBrand(String brand){ this.brand = brand;}public void setMaxSpeed(int maxSpeed){ this.maxSpeed = maxSpeed;}public void setPrice(double price){ this.price = price;}public void setCompany(String company){ this.company = company;}}
配置
<bean id = "car" class="com.tgb.spring.car"> <property name ="brand"><value>迷你</value></property><property name ="company"><value>宝马</value></property><property name ="price"><value>220000</value></property><property name ="maxSpeed"><value>200</value></property></bean>这种方式配置灵活简单,以上也能看出来。这里还需要提一点,通过set方法注入时Spring只会检查bean中是否存在对应的set方法而不会检查是否存在对应的变量。只是,良好的习惯起见,通常都定义变量。
构造函数
通过构造函数的方式设置属性的值和依赖对象是除了set方法以为比较常用的方式了。这里需要提供有参数的构造函数。car类
public class Car {private String company;private String brand;private int maxSpeed;private float price;public Car(String company, String brand, float price) {super();this.company = company;this.brand = brand;this.price = price;}public Car(String company, String brand, int maxSpeed) {super();this.company = company;this.brand = brand;this.maxSpeed = maxSpeed;}public Car(String company, String brand, int maxSpeed, float price) {super();this.company = company;this.brand = brand;this.maxSpeed = maxSpeed;this.price = price;}}
配置
<bean id="car" class="com.atguigu.spring.helloworld.Car"><constructor-arg value="KUGA" index="1"></constructor-arg><constructor-arg value="ChangAnFord" index="0"></constructor-arg><constructor-arg value="250000" type="float"></constructor-arg></bean>这里首先大家注意到bean中有三个带参数的构造函数,另外一个需要注意的地方是配置中引入了index和type两个标签。这里通过你配置的参数个数、参数顺序、参数类型来精确定位你要使用的是哪一个构造函数。这个自己体会一下。
其他
spring提供的配置功能是比较丰富的,处理基本的这些配置之外还有像,内部bean配置、自动装配等一些有趣的配置。 0 0
- Spring学习总结(1.2)-依赖注入及配置了解
- spring学习总结(三):IOC & DI 配置 Bean 之配置形式及依赖注入方式
- Spring依赖注入学习总结
- spring依赖注入配置及简写形式
- Spring 学习总结(一)依赖注入的理解
- 了解Spring set依赖注入
- Spring 4 学习笔记6:依赖注入(配置)
- 传智播客 Spring学习 xml配置依赖注入
- spring 依赖注入总结
- spring依赖注入总结
- Spring 学习-------依赖注入
- 依赖注入学习总结
- 依赖注入学习总结
- spring框架学习(二)依赖注入
- Spring学习笔记(1)---依赖注入
- spring框架学习(二)依赖注入
- Spring学习笔记(8)-----------依赖注入
- spring框架学习(二)依赖注入
- SQL 数据库——多表查询
- 第六届蓝桥杯java试题-立方变自身
- Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (gbk_chinese_ci,COERCIBLE) for operation
- Rails中Flash
- git版本回退的一个问题
- Spring学习总结(1.2)-依赖注入及配置了解
- rails 的Helper
- 2014找工作总结-机会往往留给有准备的人
- thinkServer TS240 windows server 2003安装记录
- Rails3处理css和js
- java 正则表达式
- BZOJ 4018 小Q的幻想之乡
- HDU 2083 简易版之最短距离
- EJB到底是什么,真的那么神秘吗??