依赖:
在A类中引用了B类,说明A依赖于B。
注入:
使用Spring框架给A类中的B对象的属性赋值。
直接上代码:
1.只使用IOC
public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } }
<bean id="person" class="com.spring.demo1.Person"/>
/** * 只使用IOC */ @Test public void m01(){ ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); Person p = (Person) ac.getBean("person"); p.setAge(10); p.setName("10岁的boy"); System.out.println(p); }
2.使用IOC+DI
<bean id="person" class="com.spring.demo1.Person"> <property name="name" value="30岁的man"/> <property name="age" value="30"/> </bean>
/** * 使用IOC+DI */ @Test public void m02(){ ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); Person p = (Person) ac.getBean("person"); System.out.println(p); }
两种注入方式
1.通过setter方法注入------开发常用
上述的依赖注入方法↑↑↑↑↑↑↑↑↑
在编写的JAVA类中加入属性的set方法
配置文件:(property)
<bean id="person" class="com.spring.demo1.Person"> <property name="name" value="30岁的man"/> <property name="age" value="30"/> </bean>
2.通过构造方法注入
在编写的JAVA类中加入有参构造方法
配置文件:(constructor-arg)
<bean id="person" class="com.spring.demo1.Person"> <constructor-arg name="name" value="40岁的person"/> <constructor-arg name="age" value="40"/> </bean>
注意:
如果属性是另一个JAVA类,应该将 value属性 改为 ref
<bean id="car" class="com.spring.Car"/> <bean id="person" class="com.spring.Person"> <property name="name" value="man"/> <property name="car" ref="car"/> </bean>
数组,集合(List,Set,Map),Properties等的注入
1. 如果是数组或者List集合,注入配置文件的方式是一样的 <bean id="collectionBean" class="com.spring.CollectionBean"> <property name="arrs"> <list> <value>呵呵</value> <value>哈哈</value> </list> </property> </bean> 2. 如果是Set集合,注入的配置文件方式如下: <property name="sets"> <set> <value>哈哈</value> <value>呵呵</value> </set> </property> 3. 如果是Map集合,注入的配置方式如下: <property name="map"> <map> <entry key="老王1" value="38"/> <entry key="老王2" value="38"/> <entry key="老王3" value="29"/> </map> </property> 4. 如果是properties属性文件的方式,注入的配置如下: <property name="pro"> <props> <prop key="username">root</prop> <prop key="password">root</prop> </props> </property>
时间: 2024-10-24 00:02:44