一、通过构造器
无参构造器
<?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"> <!--配置我们的Dog类 spring 框架在底层 通过反射的机制 执行了我们的构造方法--> <bean id="dog" class="cn.pb.dao.impl.Dog"></bean> </beans>
直接这样配置一个bean的话,相当于是调用这个Dog类的无参构造器,如果无参构造器不在,Spring上下文创建对象的时候就会报错。
无参构造器加setter方法注入field的值
类:
package com.mc.base.learn.spring.bean; public class Person { private String name; private Integer id; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Override public String toString() { return "Person [name=" + name + ", >; } }
bean配置:
<?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 class="com.mc.base.learn.spring.bean.Person" > <property name="name" value="LiuChunfu"></property> <property name="id" value="125"></property> </bean> </beans>
就bean标签下再用property标签来设置name和value
如果有field是引用型的,就不用value,用ref = "xxx",xxx就是某个bean的id或者name
利用有参数的构造方法:
类代码:
package com.mc.base.learn.spring.bean; public class Person { private String name; private Integer id; public Person(String name, Integer id) { super(); this.name = name; this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Override public String toString() { return "Person [name=" + name + ", >; } }