五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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原理的評論 (共 條)

分享到微博請遵守國家法律
无锡市| 山丹县| 永定县| 柏乡县| 彩票| 岳普湖县| 富源县| 重庆市| 尼勒克县| 芒康县| 独山县| 秭归县| 金湖县| 三明市| 光泽县| 弋阳县| 商丘市| 黑龙江省| 上犹县| 林州市| 宣化县| 云南省| 彭水| 乐业县| 农安县| 岳池县| 桦甸市| 靖江市| 永吉县| 木兰县| 新巴尔虎左旗| 凯里市| 侯马市| 廉江市| 喀什市| 邵武市| 盘山县| 化州市| 平安县| 巴林左旗| 嘉黎县|