zoukankan      html  css  js  c++  java
  • Spring入门(二)——DI



    1. DI

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


    2. 流程

    这里介绍两种方式

    • set方法
    • 注解方式

    2.1 set方法

    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");
    


    2.2 注解方式

    注解准备

    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");
    


  • 相关阅读:
    20180925-3 效能分析
    20180925-7 规格说明书-吉林市2日游
    20180918博客作业
    第二周例行报告
    2018091-2博客作业
    容器(list集合)
    给应届生们的建议(一定要看哦)!
    MySQL 和 JDBC(Java数据库连接)
    Oracle常用数据库对象(片段)
    7353. 【2021.11.06NOIP提高A组模拟】qaq (qaq)
  • 原文地址:https://www.cnblogs.com/Howlet/p/11980172.html
Copyright © 2011-2022 走看看