第一步:編寫實體類java
package com.xuan.pojo;
import java.io.Serializable;
/**
* xuan
* 2020/7/15
* 1870136088@qq.com
**/
public class User implements Serializable {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
第二步:編寫spring核心配置文件applicationContext.xml(而且把User注入到bean容器中)spring
id
屬性是標識單個bean定義的字符串。編程
class
屬性定義Bean的類型,並使用徹底限定的類名。app
property屬性進行賦值 也是經過Spring容器進行賦值的ide
id至關於變量名 class至關於反射建立對象(ClassforName)因而Spring就爲咱們建立了User對象函數
當咱們用的時候咱們是從Spring的Bean容器中拿的,這說明咱們已經把建立對象和賦值交給spring了也就時控制反轉IOC測試
第三步:編寫測試類ui
實例化容器:this
提供給ApplicationContext
構造函數的一個或多個位置路徑是資源字符串,可以讓容器從各類外部資源(例如本地文件系統,Java等)中加載配置元數據CLASSPATH
。spa
使用容器:
該ApplicationContext
是一個維護bean定義以及相互依賴的註冊表的高級工廠的接口。經過使用方法 T getBean(String name, Class<T> requiredType)
,您能夠檢索bean的實例。
public class TestUser {
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
User user = applicationContext.getBean("user", User.class);
System.out.println(user);
}
}
//測試成功 輸出結果爲:
User{name='xuan', age=22}
寫到這能夠聊一聊什麼是控制反轉?
控制? 主要講的應該是建立對象交由誰(spring)來控制
反轉? 是一個從主動編程建立對象到被動接受spring建立的對象的一種轉化