spring之bean的配置细节

来源:互联网 发布:易思普软件 编辑:程序博客网 时间:2024/05/29 17:37

一、value有两种配置方式:

<bean id="car"  class="com.atguigu.pring.beans.Car"><constructor-arg value="audi"></constructor-arg><constructor-arg value="shanghai"></constructor-arg><constructor-arg><value>250</value></constructor-arg></bean>

如上代码所示,value可以直接嵌在constructor标签里面,也可以另外搞一个value。

二、如果字面## 标题 ##值包含特殊字符,要用

<constructor-arg value="<shanghai^>"></constructor-arg><constructor-arg ><value><![CDATA[<shanghai^>]]></!></value></constructor-arg>

如上面两段代码,就是一个典型。第一段是出不来的,第二段才行。

三、如果在一个bean里面要配置另外一个类的话注意的事

package com.atguigu.pring.beans;public class Person {private String name;private int age;private Car car;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;}public Car getCar() {    return car;}public void setCar(Car car) {    this.car = car;}@Overridepublic String toString() {    return "Person [name=" + name + ", age=" + age + ", car=" + car + "]";}} <?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 --><bean id="helloworld"  class="com.atguigu.pring.beans.HelloWorld"><property name="name" value="Winter"></property></bean><bean id="car"  class="com.atguigu.pring.beans.Car"><constructor-arg value="audi"></constructor-arg><constructor-arg value="shanghai"></constructor-arg><constructor-arg><value>250</value></constructor-arg></bean><bean id="person"  class="com.atguigu.pring.beans.Person"><property name="name"  value="Winter"></property><property name="age"  value="18"></property><property name="car" ref="car"></property>------注意这里是用ref不是用的value,差点就错了</bean></beans>

如上所示,在person类里面有一个car类型,那么就把一个car的bean配置到里面去。因为上面刚好有人个car的bean(红色标注)。上面是用的ref元素,也可以用ref属性()

五、配置内部bean

只能内部自己用

<property name="car" >  <bean class="com.atguigu.pring.beans.Car">  <constructor-arg value="Ford"></constructor-arg>    <constructor-arg value="changan"></constructor-arg>      <constructor-arg value="66666"></constructor-arg>  </bean></property>

这里可以用一个内部bean来代替前面的那个ref来引用bean的方式。效果是一样的。内部bean是不用id的,反正外部也不能引用它。

六、级联属性赋值

<bean id="person"  class="com.atguigu.pring.beans.Person"><constructor-arg value="Winter"></constructor-arg><constructor-arg value="122"></constructor-arg><constructor-arg ref="car"></constructor-arg><property name="car.maxSpeed" value="2222"></property></bean>

这个功能其实很少用得到。

七、一个人有多辆车的情况

*“`
Person.java(里面要定义一个list类型的cars)*
package com.atguigu.spring.collection;
import java.util.List;
public class Person {
private String name;
private int age;
private List cars;
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;
}

public List getCars() {
return cars;
}
public void setCars(List cars) {
this.cars = cars;
}

public Person() {
super();
}

public Person(String name, int age, List cars) {
super();
this.name = name;
this.age = age;
this.cars = cars;
}
@Override
public String toString() {
return “Person [name=” + name + “, age=” + age + “, cars=” + cars + “]”;
}

}
配置文件里面配置好cars里面有3个car:

1 0
原创粉丝点击