国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?

這篇具有很好參考價(jià)值的文章主要介紹了【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

??前言

Spring 是?個(gè)包含了眾多?具?法的 IoC 容器,它具備以下兩個(gè)最基本的功能:

  • 將對(duì)象存儲(chǔ)到容器(Spring)中;

  • 從容器中將對(duì)象取出來(lái)。

在 Java 語(yǔ)?中對(duì)象也叫做 Bean,所以下文中提到的對(duì)象我們以 Bean 著稱

??創(chuàng)建 Spring 項(xiàng)?

接下來(lái)使? Maven ?式來(lái)創(chuàng)建?個(gè) Spring 項(xiàng)?,創(chuàng)建 Spring 項(xiàng)?和 Servlet 類(lèi)似,總共分為以下 3步:

  1. 創(chuàng)建?個(gè)普通 Maven 項(xiàng)?。

  2. 添加 Spring 框架?持(spring-context、spring-beans)。

  3. 添加啟動(dòng)類(lèi)。

??創(chuàng)建?個(gè) Maven 項(xiàng)?

【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?,JavaEE進(jìn)階,java-ee,spring,java,Spring

??添加 Spring 框架?持

我們需要添加的框架有

  • spring-context:spring 上下?
  • spring-beans:管理對(duì)象的模塊。
    【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?,JavaEE進(jìn)階,java-ee,spring,java,Spring
    添加支持代碼如下:
    <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>5.2.3.RELEASE</version>
    </dependency>
    </dependencies>

如果此處添加后,出現(xiàn)問(wèn)題,說(shuō)明 Maven jar 包下載失敗

相關(guān)解決問(wèn)題請(qǐng)看博主關(guān)于《【JavaEE進(jìn)階】 Maven jar 包下載失敗問(wèn)題的解決方法》的講解

??添加啟動(dòng)類(lèi)

最后在創(chuàng)建好的項(xiàng)? java ?件夾下創(chuàng)建?個(gè)啟動(dòng)類(lèi),包含 main ?法即可
【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?,JavaEE進(jìn)階,java-ee,spring,java,Spring

??存儲(chǔ) Bean 對(duì)象

存儲(chǔ) Bean 分為以下 2 步:

  1. 存儲(chǔ) Bean 之前,先得有 Bean 才?,因此先要?jiǎng)?chuàng)建?個(gè) Bean。
  2. 將創(chuàng)建的 Bean 注冊(cè)到 Spring 容器中。

具體實(shí)現(xiàn)如下。

??創(chuàng)建Bean

所謂的 Bean 就是 Java 語(yǔ)?中的?個(gè)普通對(duì)象,實(shí)現(xiàn)代碼如下:

【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?,JavaEE進(jìn)階,java-ee,spring,java,Spring

??將 Bean 注冊(cè)到容器

在創(chuàng)建好的項(xiàng)?中添加 Spring 配置?件 spring-config.xml,將此?件放到resources 的根?錄下,如下圖所示
【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?,JavaEE進(jìn)階,java-ee,spring,java,Spring

Spring 配置?件 spring-config.xml 的固定格式為以下內(nèi)容:

<?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">
</beans>

接下來(lái),再將 User 對(duì)象注冊(cè)到 Spring 中就可以,具體操作是在 中添加如下配置

【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?,JavaEE進(jìn)階,java-ee,spring,java,Spring

??獲取并使? Bean 對(duì)象

獲取并使? Bean 對(duì)象,分為以下 3 步:

  1. 得到 Spring 上下?對(duì)象,因?yàn)閷?duì)象都交給 Spring 管理了,所以獲取對(duì)象要從 Spring 中獲取,那么就得先得到 Spring 的上下?。

  2. 通過(guò) Spring 上下?,獲取某?個(gè)指定的 Bean 對(duì)象。

  3. 使? Bean 對(duì)象

如果取多個(gè) Bean 的話重復(fù)以上第 2、3 步驟。

??創(chuàng)建 Spring 上下?

Spring 上下?對(duì)象可使? ApplicationContext,實(shí)現(xiàn)代碼如下:

// 1.得到 Spring 的上下?對(duì)象,創(chuàng)建的時(shí)候需要配置 Spring 配置信息
ApplicationContext context = new ClassPathXmlApplicationContext("spring-con-fig.xml");

【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?,JavaEE進(jìn)階,java-ee,spring,java,Spring

??獲取指定的 Bean 對(duì)象

這里我們用 getBean() 這個(gè)方法來(lái)進(jìn)行獲取

使用方法我們這里分為三個(gè)使用方法:

??使用id獲取

由于返回的是一個(gè)Object類(lèi)

【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?,JavaEE進(jìn)階,java-ee,spring,java,Spring

所以我們這里需要進(jìn)行強(qiáng)轉(zhuǎn)一下

使用如下:

// 1.得到 Spring 上下?對(duì)象
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
// 2.加載某個(gè) bean
User user = (User) context.getBean("user");

??根據(jù)類(lèi)型獲取 Bean

ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
User user = context.getBean(User.class);

注意:

  • 這種方式由于只是根據(jù)類(lèi)型獲取的,當(dāng)有?個(gè)類(lèi)型被重復(fù)注冊(cè)到 spring-config.xml 中時(shí),只能使?根據(jù)名稱獲取了,如果有兩個(gè)對(duì)象,則就會(huì)報(bào)錯(cuò)

??id+ 類(lèi)型獲取 Bean

這種方法與第一種沒(méi)有什么太大的區(qū)別,不過(guò)這里的 getBean() 方法返回值是泛型,所以這里不涉及強(qiáng)轉(zhuǎn)
【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?,JavaEE進(jìn)階,java-ee,spring,java,Spring

ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
User user = context.getBean("user",User.class);

??使? Bean

直接使用該對(duì)象所有的方法和屬性即可
【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?,JavaEE進(jìn)階,java-ee,spring,java,Spring

?? BeanFactory 與 ApplicationContext 的區(qū)別

除了 ApplicationContext 之外,我們還可以使? BeanFactory 來(lái)作為 Spring 的上下?,如下代碼所示:

BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("springconfig.xml"));

后續(xù)的Bean的獲取和使用與ApplicationContext是一樣

ApplicationContext 屬于 BeanFactory 的?類(lèi),它們的區(qū)別如下

??繼承關(guān)系和功能??

Spring 容器有兩個(gè)頂級(jí)的接?:BeanFactory 和ApplicationContext。

其中 BeanFactory 提供了基礎(chǔ)的訪問(wèn)容器的能?,? ApplicationContext 屬于 BeanFactory 的?類(lèi)

它除了繼承了 BeanFactory 的所有功能之外,它還擁有獨(dú)特的特性,還添加了對(duì)國(guó)際化?持、資源訪問(wèn)?持、以及事件傳播等??的?持

??性能??

ApplicationContext 是?次性加載并初始化所有的 Bean 對(duì)象,?BeanFactory 是需要那個(gè)才去加載那個(gè),因此更加輕量

舉例驗(yàn)證如下:

創(chuàng)建兩個(gè)對(duì)象如下:

User類(lèi)

public class User {
    public User() {
        System.out.println("我是User的構(gòu)造方法!?。?);
    }
    public String greet() {
        return "Hello User";
    }
}

User2類(lèi)

public class User2 {
    public User2() {
        System.out.println("我是User2的構(gòu)造方法?。?!");
    }
    public String greet() {
        return "Hello User2";
    }
}

配置文件如下:
【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?,JavaEE進(jìn)階,java-ee,spring,java,Spring

ApplicationContext 獲取上下文代碼如下:

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

public class TestMain {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
        System.out.println("ApplicationContext加載getBean()前!!!");
        User user = context.getBean("user",User.class);
        System.out.println(user.greet());
        User2 user2 = context.getBean("user2",User2.class);
        System.out.println(user2.greet());
    }
}

BeanFactory 獲取上下文代碼如下

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

public class TestMain {
    public static void main(String[] args) {
        BeanFactory context =  new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
        System.out.println("BeanFactory加載getBean()前!!!");
        User user = context.getBean("user",User.class);
        System.out.println(user.greet());
        User2 user2 = context.getBean("user2",User2.class);
        System.out.println(user2.greet());
    }
}

我們利用兩份相同的代碼來(lái)看看執(zhí)行的效果,從而理解ApplicationContext 與 BeanFactory 的區(qū)別,執(zhí)行結(jié)果與區(qū)別如下:

【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?,JavaEE進(jìn)階,java-ee,spring,java,Spring

?總結(jié)

關(guān)于《【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?》就講解到這兒,感謝大家的支持,歡迎各位留言交流以及批評(píng)指正,如果文章對(duì)您有幫助或者覺(jué)得作者寫(xiě)的還不錯(cuò)可以點(diǎn)一下關(guān)注,點(diǎn)贊,收藏支持一下!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-752525.html

到了這里,關(guān)于【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • JavaEE進(jìn)階 Spring AOP(6/1)

    JavaEE進(jìn)階 Spring AOP(6/1)

    目錄 1.什么是AOP 2.Spring AOP可以干什么 3.AOP的組成成分 4.SpringAOP實(shí)現(xiàn)步驟 5.SpringAOP的原理 1.什么是AOP AOP是面向切面編程,是一種思想 Spring AOP是一種具體的技術(shù) 2.Spring AOP可以干什么 1.用戶登錄狀態(tài)的判斷 2.統(tǒng)一的日志記錄(比如記錄訪問(wèn)次數(shù)) 3.統(tǒng)一方法執(zhí)行實(shí)踐 3.AOP的組成

    2024年02月07日
    瀏覽(16)
  • 【JavaEE進(jìn)階】 Spring使用注解存儲(chǔ)對(duì)象

    【JavaEE進(jìn)階】 Spring使用注解存儲(chǔ)對(duì)象

    在博主前面所寫(xiě)的《【JavaEE進(jìn)階】 Spring 的創(chuàng)建和使?》中我們已經(jīng)可以實(shí)現(xiàn)基本的 Spring 讀取和存儲(chǔ)對(duì)象的操作了,但在操作的過(guò)程中我們發(fā)現(xiàn)讀取和存儲(chǔ)對(duì)象并沒(méi)有想象中的那么“簡(jiǎn)單”,所以接下來(lái)我們要學(xué)習(xí)更加簡(jiǎn)單的操作 Bean 對(duì)象的?法。 在 Spring 中想要更簡(jiǎn)單的存

    2024年02月05日
    瀏覽(20)
  • 【JavaEE進(jìn)階】 Spring請(qǐng)求如何傳遞參數(shù)詳解

    【JavaEE進(jìn)階】 Spring請(qǐng)求如何傳遞參數(shù)詳解

    訪問(wèn)不同的路徑,就是發(fā)送不同的請(qǐng)求.在發(fā)送請(qǐng)求時(shí),可能會(huì)帶?些參數(shù),所以我們?cè)趯W(xué)習(xí)Spring的請(qǐng)求時(shí),主要是學(xué)習(xí)如何傳遞參數(shù)到后端以及后端如何接收. 下面博主會(huì)對(duì)傳遞參數(shù)進(jìn)行一個(gè)詳解,咱們主要是使?瀏覽器和Postman來(lái)模擬 比如博主寫(xiě)了以下程序 當(dāng)我們運(yùn)行后,用瀏覽

    2024年02月03日
    瀏覽(23)
  • 【JavaEE進(jìn)階】Spring事務(wù)和事務(wù)傳播機(jī)制

    【JavaEE進(jìn)階】Spring事務(wù)和事務(wù)傳播機(jī)制

    Spring 事務(wù)是 Spring 框架提供的一種機(jī)制,用于 管理數(shù)據(jù)庫(kù)操作或其他資源的一組相關(guān)操作 ,以確保它們?cè)谝粋€(gè)原子、一致、可靠和隔離的執(zhí)行單元內(nèi)進(jìn)行。事務(wù)用于維護(hù)數(shù)據(jù)的完整性并支持并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)時(shí)的數(shù)據(jù)一致性。 Spring 事務(wù)的主要特點(diǎn)包括: 原子性(Atomicity):

    2024年02月09日
    瀏覽(22)
  • 【JavaEE進(jìn)階】 Spring核?與設(shè)計(jì)思想

    【JavaEE進(jìn)階】 Spring核?與設(shè)計(jì)思想

    我們通常所說(shuō)的 Spring 指的是 Spring Framework(Spring 框架),它是?個(gè)開(kāi)源框架,有著活躍?龐?的社區(qū),這就是它之所以能?久不衰的原因。Spring ?持?泛的應(yīng)?場(chǎng)景,它可以讓 Java 企業(yè)級(jí)的應(yīng)?程序開(kāi)發(fā)起來(lái)更簡(jiǎn)單。 ??句話概括 Spring: Spring 是包含了眾多?具?法的 I

    2024年02月04日
    瀏覽(25)
  • 【JavaEE進(jìn)階】 初識(shí)Spring Web MVC

    【JavaEE進(jìn)階】 初識(shí)Spring Web MVC

    Spring Web MVC 是 基于 Servlet API 構(gòu)建的原始 Web 框架 ,從?開(kāi)始就包含在Spring框架中。它的正式名稱“Spring Web MVC”來(lái)?其源模塊的名稱(Spring-webmvc),但它通常被稱為)Spring MVC). Servlet是?種實(shí)現(xiàn)動(dòng)態(tài)??的技術(shù).準(zhǔn)確來(lái)講Servlet是?套Java Web 開(kāi)發(fā)的規(guī)范,或者說(shuō)是?套Java Web 開(kāi)發(fā)的

    2024年02月03日
    瀏覽(26)
  • 【JavaEE進(jìn)階】Spring核心與設(shè)計(jì)思想

    【JavaEE進(jìn)階】Spring核心與設(shè)計(jì)思想

    我們通常所說(shuō)的 Spring 指的是 Spring Framework (Spring 框架),它是一個(gè)輕量級(jí)的 Java 開(kāi)源框架,有著活躍龐?的社區(qū)。Spring 是為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的,不僅?持?泛的應(yīng)?場(chǎng)景,還讓 Java 企業(yè)級(jí)的應(yīng)?程序開(kāi)發(fā)更加簡(jiǎn)單。 如何簡(jiǎn)單地使??句話概括 Spring:

    2024年02月13日
    瀏覽(34)
  • Java、Java EE、Spring和Spring Boot核心注解

    文章遷移至個(gè)人博客 此頁(yè)面包含常用 Java 、 Java EE 、 Spring 、 Spring Boot 、 JPA 常用注解的一站式說(shuō)明。 @Component注解 @Component 注解表明被注解的類(lèi)是一個(gè)“spring bean/組件”。@Component注解告訴Spring容器自動(dòng)創(chuàng)建Spring bean。 @Autowired注解 @Autowired 注解用于自動(dòng)注入 bean。@Autowired 注

    2024年02月15日
    瀏覽(25)
  • 【Java EE】Spring介紹

    【Java EE】Spring介紹

    參考資料spring中文文檔 Spring是一個(gè)JavaEE輕量級(jí)的一站式開(kāi)發(fā)框架。 它提供的功能涵蓋了JavaEE程序中的表示層,服務(wù)層,持久層功能組件。這意味著,單單Spring框架就可以滿足整個(gè)JavaEE程序的開(kāi)發(fā)。 為了降低Java開(kāi)發(fā)的復(fù)雜性,Spring采用了以下4種關(guān)鍵策略: 1、基于POJO的輕量

    2024年02月06日
    瀏覽(16)
  • Spring MVC程序開(kāi)發(fā)(JavaEE進(jìn)階系列3)

    Spring MVC程序開(kāi)發(fā)(JavaEE進(jìn)階系列3)

    目錄 前言: 1.什么是Spring?MVC 1.1MVC的定義 1.2MVC和Spring?MVC的關(guān)系 1.3為什么要學(xué)習(xí)Spring?MVC 2.Spring?MVC項(xiàng)目的創(chuàng)建 3.Spring?MVC框架的使用 3.1連接的功能 3.1.1@RequestMapping 3.1.2@GetMapping? 3.1.3@PostMapping 3.2獲取參數(shù)的功能 3.2.1獲取單個(gè)參數(shù) 3.2.2獲取對(duì)象 3.2.3上傳文件 3.2.4獲取Cookie 3.2

    2024年02月07日
    瀏覽(49)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包