Dependency Injection,依赖注入。当对象里有属性或对象的时候,就需要为这些属性或对象赋值
这里介绍两种方式
Bean准备
package bean;
import bean.Question;
public class User {
    
    private String name;
    private String email;
    private String password;
    private Question question;
    
    /**
    * 省略了getters/setters
    * @author Howl
    */
    
    //set方法
    public void setQuestion(Question question) {
       this.question = question;
    }
    
    //构造函数
    public User(String name, String email, String password) {
        super();
        this.name = name;
        this.email = email;
        this.password = password;
    }
}package bean;
import java.sql.Timestamp;
import java.util.Date;
public class Question {
    
    private int id;
    private Timestamp time;
    private String content;
    
    /**
    * 省略了getters/setters
    * @author Howl
    */
    
    //构造函数
    public Question(int id, Timestamp time, String content) {
        super();
        this.id = id;
        this.time = time;
        this.content = content;
    }
}applictionContext.xml配置
<!--创建User对象-->
<bean id="User" class="User">
    <!-- 依赖注入,setting自动注入 -->
    <property name="Question" ref="Question"/>
</bean>
 <!--创建Question对象-->
<bean id="Question" class="Question"></bean>获取对象
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//直接获取
User user = ac.getBean("User");
注解准备
package bean;
import bean.Question;
@Component
public class User {
    
    private String name;
    private String email;
    private String password;
    private Question question;
    
    /**
    * 省略了getters/setters
    * @author Howl
    */
    
    //set方法
    @Autowired
    public void setQuestion(Question question) {
       this.question = question;
    }
    
    //构造函数
    public User(String name, String email, String password) {
        super();
        this.name = name;
        this.email = email;
        this.password = password;
    }
}获取对象
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//直接获取
User user = ac.getBean("User");
原文:https://www.cnblogs.com/Howlet/p/11980172.html