1、spring的容器spring
”容器“是spring的一个重要概念,其主要做用是完成建立成员变量,并完成装配。this
而容器的特色”控制反转“和”依赖注入“是两个相辅相成的概念。spa
控制反转:咱们在使用一个类型的实例实现某个功能时,须要先new出该类型的一个实例,并赋值给咱们声明的某个引用变量,这样咱们才可以使用该变量进行操做。而new和赋值本事咱们本身的权限,此处即是将该控制权限反转交给了spring。code
依赖注入:某个类型要完成一个功能每每须要其余类型的变量来完成,咱们在程序中每每经过本身new的方式来完成这个需求,而在spring中,它会帮助咱们将这种装配的功能实现,这即是依赖注入。xml
2、在系统中实现对象
在spring中只使用IOC容器的话,那么前面命名空间的声明只须要使用blog
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
在该标签下声明bean便可:get
<bean id="name" class="com.brolanda.spring.p.Name"> <property name="givenName" value="斯里" /> <property name="middleName" value="兰" /> <property name="lastName" value="卡" /> </bean>
咱们须要在Name这个类中,声明类型为String的变量名称,对应property标签的name属性,并为每一个属性设置set、get方法,这样spring才可以帮你注入。io
public class Name { private String givenName; private String middleName; private String lastName; public String getGivenName() { return givenName; } public void setGivenName(String givenName) { this.givenName = givenName; } public String getMiddleName() { return middleName; } public void setMiddleName(String middleName) { this.middleName = middleName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } }
若是成员变量是其余自定义类型的实例,那么,咱们须要先声明该自定义类型的bean,而后再在调用类的声明中引入对应的bean便可:ast
<bean id="person" class="com.brolanda.spring.p.Person"> <property name="name"> <ref bean="name" /> </property> </bean>
即:person是引用了上面声明的name对象做为其成员变量。
总体以下: