构造方法的方式
- 首先新建一个
User
类
- 这个类当中有一个构造器,两个参数的,就是待会用它来进行注入
/**
* @author: BNTang
**/
public class User {
private String name;
private Integer age;
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
- 然后修改
applicationContext.xml
...
<bean id="user" class="top.it6666.domain.User">
<constructor-arg name="name" value="BNTang"/>
<constructor-arg name="age" value="18"/>
</bean>
...
/**
* @author: BNTang
**/
public class UserDaoTest {
@Test
public void save() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
User User = (User) applicationContext.getBean("user");
System.out.println(User);
}
}
User{name='BNTang', age=18}
Set方法的方式
/**
* @author: BNTang
**/
public class User {
private String name;
private Integer age;
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
...
}
- 然后修改
applicationContext.xml
- 修改内容如下:
...
<bean id="user" class="top.it6666.domain.User">
<property name="name" value="BNTang"/>
<property name="age" value="23"/>
</bean>
...
Set方法的方式设置对象类型的属性
/**
* @author: BNTang
**/
public class Dog {
private String name;
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
'}';
}
}
/**
* @author: BNTang
**/
public class User {
private String name;
private Integer age;
private Dog dog;
public void setDog(Dog dog) {
this.dog = dog;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
", dog=" + dog +
'}';
}
}
- 然后修改
applicationContext.xml
- 修改内容如下,如果想要使用
Set
方法的方式设置对象类型的属性,首先被设置的对象需要交给 Spring
进行管理:
...
<bean id="dog" class="top.it6666.domain.Dog">
<property name="name" value="wc"/>
</bean>
<bean id="user" class="top.it6666.domain.User">
<property name="dog" ref="dog"/>
</bean>
...
P名称空间的方式
- 使用
P名称空间
,就不需要写那么多的 property
标签了
- 使用P名称空间时,需要添加
名称空间
,P名称空间内容如下:
- 也就是修改
applicationContext.xml
xmlns:p="http://www.springframework.org/schema/p"
- 接下来我们使用
P名称空间
的方式来改写我们之前的方式
- 改写完之后的内容如下,测试类的代码还是同上结果也是:
...
<bean id="dog" class="top.it6666.domain.Dog" p:name="wc"/>
<bean id="user" class="top.it6666.domain.User" p:dog-ref="dog"/>
...
SpEL表达式的方式
- 修改
applicationContext.xml
- 修改之后的内容如下:
...
<bean id="dog" class="top.it6666.domain.Dog">
<property name="name" value="#{'旺财'}"/>
</bean>
<bean id="user" class="top.it6666.domain.User">
<property name="dog" value="#{dog}"/>
</bean>
...
集合类型的属性注入
数组
/**
* @author: BNTang
**/
public class User {
private String attr[];
public void setAttr(String[] attr) {
this.attr = attr;
}
@Override
public String toString() {
return "User{" +
"attr=" + Arrays.toString(attr) +
'}';
}
}
- 修改
applicationContext.xml
- 修改之后的内容如下:
...
<bean id="user" class="top.it6666.domain.User">
<property name="attr">
<list>
<value>zs</value>
<value>ls</value>
<value>ww</value>
</list>
</property>
</bean>
...
List集合
/**
* @author: BNTang
**/
public class User {
private List myList;
public void setMyList(List myList) {
this.myList = myList;
}
@Override
public String toString() {
return "User{" +
"myList=" + myList +
'}';
}
}
- 修改
applicationContext.xml
- 修改之后的内容如下:
...
<bean id="user" class="top.it6666.domain.User">
<property name="myList">
<list>
<value>zs</value>
<value>ls</value>
<value>ww</value>
</list>
</property>
</bean>
...
Set集合
/**
* @author: BNTang
**/
public class User {
private Set mySet;
public void setMySet(Set mySet) {
this.mySet = mySet;
}
@Override
public String toString() {
return "User{" +
"mySet=" + mySet +
'}';
}
}
- 修改
applicationContext.xml
- 修改之后的内容如下:
...
<bean id="user" class="top.it6666.domain.User">
<property name="mySet">
<set>
<value>zs</value>
<value>ls</value>
<value>ww</value>
</set>
</property>
</bean>
...
Map集合
/**
* @author: BNTang
**/
public class User {
private Map myMap;
public void setMyMap(Map myMap) {
this.myMap = myMap;
}
@Override
public String toString() {
return "User{" +
"myMap=" + myMap +
'}';
}
}
- 修改
applicationContext.xml
- 修改之后的内容如下:
...
<bean id="user" class="top.it6666.domain.User">
<property name="myMap">
<map>
<entry key="key1" value="value1"/>
<entry key="key2" value="value2"/>
<entry key="key3" value="value3"/>
</map>
</property>
</bean>
...
- 测试类代码同上
- 都开始学 Spring 了关于集合一些的基本使用我就不一一说明了