Spring學(xué)習(xí)筆記01--簡介及HelloWorld

一、什么是Spring

  • Spring是一個(gè)基于IOC(控制反轉(zhuǎn) Inversion of Control)和AOP(之后講解)的結(jié)構(gòu),J2EE系統(tǒng)的框架
  • 簡單來說就是以前的Java程序,對(duì)象需要自己new一個(gè),而在Spring中,對(duì)象的創(chuàng)建交由Spring管理,不需要自己new
  • 簡介多說無益,請(qǐng)往下看

二、什么是控制反轉(zhuǎn) IOC

Spring的核心思想之一就是 控制反轉(zhuǎn)
控制反轉(zhuǎn):對(duì)象的創(chuàng)建 由外部容器完成(外部容器是什么之后會(huì)講解),這個(gè)過程就是 IOC

  • 進(jìn)一步解釋就是,new一個(gè)對(duì)象這個(gè)過程,不是自己寫的,是Spring提供的容器來完成

那對(duì)象的賦值,Spring是怎么做的呢?這就要提到依賴注入

依賴注入(DI)

  • Spring使用依賴注入來實(shí)現(xiàn)對(duì)象之間的依賴關(guān)系
  • 在創(chuàng)建完對(duì)象之后,對(duì)象的關(guān)系處理就是依賴注入
  • 簡單地說就是拿到的對(duì)象的屬性,已經(jīng)被注入好相關(guān)值了,直接使用即可。
  • 不理解沒關(guān)系,參考之后的代碼實(shí)例

三、編寫Spring代碼

  • 創(chuàng)建項(xiàng)目并導(dǎo)入相關(guān)jar包

1. 創(chuàng)建類,用來演示IOC及依賴注入

package com.shan.pojo;

public class Category {

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    private int id;
    private String name;
}

2. 在src目錄下創(chuàng)建applicationContext.xml文件

applicationContext.xml 是Spring的核心配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 以下為核心代碼 -->
    <bean name="category" class="com.shan.pojo.Category">
        <property name="name" value="category_1"></property>
    </bean>
</beans>
  • 通過上面的三行代碼,就成功配置了Category類
  • 通過關(guān)鍵字(name)category就能獲取到Category類的實(shí)例對(duì)象,這是 控制反轉(zhuǎn)
  • 當(dāng)獲取該實(shí)例時(shí),對(duì)象的name屬性就被賦予了"category_1"值,這就是 依賴注入

3. 測試用例

package com.shan.pojo;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"});

        Category c = (Category)context.getBean("category");
        System.out.println("獲取到的對(duì)象名字:" + c.getName());
    }
}

  • main中的第一行代碼用于加載整個(gè)XML文件
  • context.getBean() 可以通過之前Bean中配置好的name獲得對(duì)象實(shí)例
  • 整個(gè)過程沒有用到new關(guān)鍵字

到此,Spring HelloWorld講解完畢

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容