首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Spring入门(二)——DI

Spring入门(二)——DI

作者头像
晚上没宵夜
发布2020-03-11 14:25:23
发布2020-03-11 14:25:23
3280
举报

1. DI

Dependency Injection,依赖注入。当对象里有属性或对象的时候,就需要为这些属性或对象赋值

2. 流程

这里介绍两种方式

  • set方法
  • 注解方式

2.1 set方法

Bean准备

代码语言:javascript
复制
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;
    }
}
代码语言:javascript
复制
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配置

代码语言:javascript
复制
<!--创建User对象-->
<bean id="User" class="User">
    <!-- 依赖注入,setting自动注入 -->
    <property name="Question" ref="Question"/>
</bean>

 <!--创建Question对象-->
<bean id="Question" class="Question"></bean>

获取对象

代码语言:javascript
复制
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

//直接获取
User user = ac.getBean("User");

2.2 注解方式

注解准备

代码语言:javascript
复制
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;
    }
}

获取对象

代码语言:javascript
复制
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

//直接获取
User user = ac.getBean("User");
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-12-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. DI
  • 2. 流程
    • 2.1 set方法
    • 2.2 注解方式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档