Spring简单来说,就是
一个基于IOC和AOP的结构J2EE系统的框架 ,其中
IOC 反转控制 是Spring的基础,Inversion Of Control
简单说就是创建对象由以前的程序员自己new 构造方法来调用,变成了交由Spring创建对象
IOC 反转控制 是Spring的基础,Inversion Of Control
简单说就是创建对象由以前的程序员自己new 构造方法来调用,变成了交由Spring创建对象
DI 依赖注入 Dependency Inject. 简单地说就是拿到的对象的属性,已经被注入好相关值了,直接使用即可。
Spring 注入方式:设置注入和构造注入
设置注入:使用者通过setter方式注入被调用者实例的方式。即不需要显示地调用set方法,会根据xml的相关配置自动进行调用,利用属性或成员变量的set方法进行注入
<beans ...>
<bean id ="Chinese" class="com.people.Chinese">
<!--property元素用于指定需要Spring容器注入的参数-->
<property name="language" ref="English" ></property>
</bean >
<bean id ="English" class="com.language.English">
</bean>
</beans>
上栗中:Chinese中有一个成员变量名为language,参数类型为English,spring的IoC容器会自动的调用Chinese中的set方法赋值其中 属性名为language 参数为English,具体实现类为com.langguage.English
构造注入:
在spring的IoC容器调用接口的构造方法去创建实例的时候,构造器会自动给成员变量赋值
<beans ...>
<bean id ="Chinese" class="com.
people.Chinese">
<!--constructor-arg 元素用于指定需要Spring容器注入的参数-->
<constructor-arg ref="English" index="0" ></constructor-arg>
</bean >
<bean id ="English" class="com.language.English">
</bean>
</beans>
</beans>
index表示第几个参数,只有一个参数时,可省略,不推荐
ref 与value区别
有时我们也会在配置bean参数时遇见value ,他们是不一样的。ref代表的是引用这个对象,相当于传入得是对象的引用。而value是引入的这个对象名字的字符串。