最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Spring IoC原理

2020-04-01 10:38 作者:匯智知了堂  | 我要投稿

Spring IoC(DI)是Spring框架的核心,所有對象的生命周期都是由它們來管理。對于弄懂Spring IOC是相當(dāng)關(guān)鍵,往往我們第一次接觸Spring IOC大家都是一頭霧水。當(dāng)然我們這篇文章會通過程序例子的方式來告訴大家,如果還有不懂的朋友們建議去看一下Spring的官方文檔,或者是參考網(wǎng)上其他的一些博客。

1. Spring IOC的概念

  • IOC(Inversion of Control,控制反轉(zhuǎn)),所有的Java類(不管是JDK庫中Java類,還是你自己定義Java類)都可以利用Spring框架來new它們的實例化對象

  • Spring框架完成對Java類的初始化對象工作

  • Spring來負(fù)責(zé)控制對象的生命周期和對象間的關(guān)系

2. Spring DI的概念

  • DI(Dependency Injection,依賴注入),它主要作用是動態(tài)的向某個對象提供它所需要的其他對象

3. Spring IoC和DI 它們是否有區(qū)別嗎?

  • 我個人觀點,其實Spring中IOC和DI其實概念一樣

  • IOC控制反轉(zhuǎn),所有的Java類的初始化工作扔給Spring框架。Spring框架充分利用Java反射

  • DI依賴注入,一個Java類如果依賴其他Java類,則此類依賴另一個Java類的初始化工作也扔給Spring框架來完成。例如下面的描述可以幫助再次理解DI的核心功能

    • 你可以通過從MVC分層開發(fā)角度去理解一下DI

    • 在開發(fā)過程中,大家都知道Controller控制器依賴Service,假設(shè)整個Web開發(fā)過程中我們使用Spring框架,則Serivce的初始化工作Controller不用關(guān)心Service對象是如何創(chuàng)建的,Service創(chuàng)建過程扔給Spring框架


  • DI和IOC程序?qū)崿F(xiàn)的原理是什么


4. 上面確實是從我個人角度去理解和告訴大家什么是Spring IOC,下面開始我們的第一個Spring框架的程序。它能告訴你如何編寫一個由Spring框架導(dǎo)向的Java程序

  • 運行Spring框架首先要導(dǎo)入Spring相關(guān)的開發(fā)包。如果使用spring.4.0.3版本導(dǎo)包要包含(spring-core.jar, spring-beans.jar, spring-context.jar, spring-expression.jar, common-logging.jar


  • 創(chuàng)建一個Person的Java類

public class Person {

?private String name;

?public void setName(String name) {

?this.name = name;

? ? }

?public String getName() {

?return name;

? ? }

}

  • 創(chuàng)建一個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 id="person" class="com.zlt.spring.day01.Person"></bean></beans>

  • 創(chuàng)建一個測試程序來運行一段由Spring框架所管理的配置文件

package com.zlt.spring.test01;

import org.junit.Test;

import org.springframework.beans.factory.BeanFactory;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.zlt.spring.day01.Person;

public class Test01 {

? ? @Test

?public void m01() {

?/**

? ? ? ? ?* 運行Spring框架需要用到BeanFactory

? ? ? ? ?* 1.BeanFactory幫助我們啟動IOC容器

? ? ? ? ?* 2.幫助我們找到需要實例化Java對象

?*/

? ? ? ? BeanFactorybeanFactory = new ClassPathXmlApplicationContext("spring.xml");

? ? ? ? Person person = (Person) beanFactory.getBean("person");

? ? ? ? person.setName("Hello World");

? ? ? ? System.out.println(person.getName());

? ? }

}


5. 上面的第一個Spring框架的代碼,我這里簡單的說明一下幾個關(guān)鍵點

  • 以后我們編寫好的Java類都會在Spring的配置文件進行注冊

  • Spring配置文件就是一個容器工廠,它會在運行程序的時候檢測配置文件中注入的Java類。當(dāng)檢測有Java類在配置文件中,那么Spring框架就會給這些Java類創(chuàng)建對象

  • BeanFactory是Spring框架中的核心接口,在一個Java應(yīng)用程序運行的時候,它幫助我們啟動IoC容器,同時幫助我們找到需要實例化的Java對象

  • 如何找到需要實例化的Java對象呢?通過BeanFactory接口中的getBean(String beanName)方法來實現(xiàn)



Spring IoC原理的評論 (共 條)

分享到微博請遵守國家法律
海原县| 凤城市| 钟祥市| 屏边| 洛隆县| 南丰县| 修水县| 皮山县| 南华县| 南投县| 无锡市| 芜湖县| 临武县| 静宁县| 屯留县| 昌图县| 鸡泽县| 颍上县| 育儿| 霍林郭勒市| 苍梧县| 卢氏县| 焉耆| 武宣县| 福清市| 渭源县| 定结县| 社旗县| 秀山| 浙江省| 缙云县| 楚雄市| 威远县| 新丰县| 广东省| 阳西县| 芦溪县| 海淀区| 永州市| 确山县| 沈丘县|