1.默认使用无参构造器创建对象
tips:要求实体类中不显示写出构造函数 或者 写出缺省的构造函数
.xml
<?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 id="user" class="com.kero.pojo.User">
<property name="name" value="abc"/>
</bean>
</beans>
实体类
public class User {
public User() {
}
public User(String name) {
this.name = name;
}
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void show(){
System.out.printf(name);
}
}
测试
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MyTest {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
User user = (User)context.getBean("user");
user.show();
}
}
2.使用有参数构造创建对象
要求实体类中显示的声明相应的带参数的构造函数
1.下标赋值
<?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 id="user" class="com.kero.pojo.User">
<constructor-arg index="0" value="sdt"/>
</bean>
</beans>
2.通过类型创建 不建议使用 如果有多个相同类型的参数 会报错
<?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 id="user" class="com.kero.pojo.User">
<constructor-arg type="java.lang.String" value="xxx"/>
</bean>
</beans>
3.直接通过参数名来设置
<?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 id="user" class="com.kero.pojo.User">
<constructor-arg name="name" value="asf"/>
</bean>
</beans>
Spring容器 ClassPathXmlApplicationContext context =
new ClassPathXmlApplicationContext("beans.xml");
总结:在配置文件加载的时候 容器中管理的对象就已经初始化了