当前位置: 首页 > >

Spring的如何通过bean创建一个对象,并赋值。

发布时间:

实体类:
package org.service;

public class ManService {
int id;
//有参构造器
public ManService(int id) {
super();
id = id;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

@Override
public String toString() {
return "ManService [id=" + id + "]";
}
//无参构造器
public ManService() {
super();
}
}

xml配置:



xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:cache="http://www.springframework.org/schema/cache"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:c="http://www.springframework.org/schema/c"
xsi:schemaLocation="http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.1.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd">








解析:


1 setter注入


当创建一个bean标签时候 比如上面这个id为"m1"的bean标签,他会先调用这个类的无参构造方法,如果没有无参构造方法会直接报错,然后当你通过标签进行赋值的时候会自动调用该属性的set方法,如果没有类里没有set方法,也会报错。


2 构造函数注入


如上图 通过构造函数注入如果标签如果有值,会调用有参的构造方法,如果只有类里没有有参的构造函数会报错。





友情链接: