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

【框架篇】Spring 創(chuàng)建與使用介紹

這篇具有很好參考價值的文章主要介紹了【框架篇】Spring 創(chuàng)建與使用介紹。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

Spring 創(chuàng)建與使用

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java


一,Spring項目的創(chuàng)建

使用Maven方式來創(chuàng)建一個Spring項目,創(chuàng)建Spring項目和Servlet類似,總共分為以下3步:

  1. 創(chuàng)建一個普通Maven項目
  2. 添加 Spring 框架?持(spring-context、spring-beans)
  3. 添加啟動類

1.1,創(chuàng)建一個Maven項目

創(chuàng)建一個普通的Maven項目注意點:項目名稱和項目路徑中不能有任何中文。

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

當 Java源代碼根目錄出現顏色以及resources資源目錄出現標識圖像時,說明該Maven項目已經初始化完畢。

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

1.2,添加Spring框架依賴

在項目的 pom.xml 中添加 Spring 框架依賴(spring-context依賴),xml 配置如下:

<dependencies>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.19</version>
    </dependency>
</dependencies>

在項目的 pom.xml 配置文件中添加spring-context依賴后,需點擊刷新鍵重新加載Maven項目,操作如下:

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

當在External Libra 目錄下出現下述6個庫,表明Spring-context依賴添加成功。

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

疑問:我在pom.xml 中只添加了一個Spring-context依賴,但為啥最終會有6個依賴呢?

解答:Spring-context依賴的底層實現依賴于另外五個框架依賴,所以再添加Spring-context依賴的同時也會把這另外5個也添加。

1.3,添加啟動類

在Java源代碼根目錄java下創(chuàng)建一個啟動類,該啟動類包含main方法即可。

該啟動類的功能是:為后面從Spring容器中讀取Bean做準備。

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

測試Maven項目是否創(chuàng)建成功,可通過在main方法里寫測試代碼,根據代碼能否成功運行來判斷。

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

注:上述測試代碼能夠正常運行,說明Maven項目創(chuàng)建以及配置成功。


二,存儲Bean

2.1,創(chuàng)建Bean對象

Bean對象就是 Java 語?中的?個普通對象,只是該對象能夠被多次調用并使用。

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

2.2,將Bean注冊到Spring

操作流程:在resources資源目錄下添加 Spring 配置?件spring-config.xml,并添加下述配置:

<?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 http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
</beans>

在resources資源目錄下添加配置文件示意圖:

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

添加好配置文件后,再將Bean對象注冊到 Spring 中就可以,具體操作是在 中添加如下配置:

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

注:id 指明Bean對象名稱,class 指明Bean對象路徑(包名 + 類名)。

<bean id="student" class="org.example.Student"></bean>

上述表示含義為:將Bean(org.example.Student)存到Spring 容器中,它的名稱叫作student。


三,讀取Bean

3.1,得到 Spring上下文

Spring 上下文對象的獲取可使用 ApplicationContex,創(chuàng)建的時候需要配置 Spring 配置信息。

ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");

說明:ClassPathXmlApplicationContext屬于ApplicationContext的?類,擁有ApplicationContext的所有功能,是通過 xml 的配置來獲取Spring容器中所有的 Bean對象。

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

注意:ClassPathXmlApplicationContext里的參數configLocation值應與Spring配置信息文件名相同。

3.2,獲取指定Bean對象

獲取指定Bean對象要求:getBean的參數值idclass要與指定Bean對象的idclass相對應。

Student student = context.getBean("student", Student.class);

獲取指定Bean對象示意圖:

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

3.3,使用Bean對象

student.sayHi();

讀取Bean對象并使用的總操作流程代碼:

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

public class App {
    public static void main(String[] args) {
        //1,獲得Spring對象上下文
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
        //2,獲取指定的Bean對象
        Student student = context.getBean("student", Student.class);
        //3,使用Bean對象(非必須)
        student.sayHi();
    }
}

讀取Bean對象并使用的總操作流程代碼執(zhí)行結果:

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java


四,其他注意問題

4.1,獲取Spring上下文的兩種方式

1)ApplicationContext
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");

ApplicationContext 執(zhí)行操作代碼:

public static void main(String[] args) {
    //1,獲得Spring對象上下文
    ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
    //2,獲取指定的Bean對象
    Student student = context.getBean("student", Student.class);
    //3,使用Bean對象(非必須)
    student.sayHi();
}

執(zhí)行 ApplicationContext 打印結果:

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

2)BeanFactory
BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));

BeanFactory 執(zhí)行操作代碼:

public static void main(String[] args) {
    //1,獲得Spring對象上下文
    BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
    //2,獲取指定的Bean對象
    Student student = beanFactory.getBean("student", Student.class);
    //3,使用Bean對象(非必須)
    student.sayHi();
}

執(zhí)行 BeanFactoryt 打印結果:

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

3)兩種方式的區(qū)別

1,Student類(Bean對象)準備

public class Student {
    public Student(){
        System.out.println("do student init!");
    }

    public void sayHi(){
        System.out.println("Hi student!");
    }
}

2,Teacher類(Bean對象)準備

public class Teacher {
    public Teacher(){
        System.out.println("do teacher init!");
    }

    public void sayHi(){
        System.out.println("Hi teacher!");
    }
}

3,兩種方式對比

執(zhí)行 ApplicationContext (無獲取指定的Bean對象操作) 打印結果:

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

執(zhí)行 BeanFactoryt (有獲取指定的Bean對象操作) 打印結果:

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

執(zhí)行 BeanFactoryt (有獲取指定的Bean對象操作) 打印結果:

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

4,兩種方式區(qū)別總結

ApplicationContext:該方式在獲取Spring對象上下文時會對Spring容器中的所有Bean對象進行加載初始化。

方式特征:比較耗內存,一次性加載,后續(xù)Bean對象的讀取不需進行加載初始化操作,效率高。

BeanFactory:該方式只有在調用getBean方法時才會進行加載初始化對應的Bean對象,而不是所有的Bean對象,屬于懶加載。

方式特征:比較省內存,懶加載,只有當調用getBean時才會加載初始化對應的Bean對象,效率不高。

ApplicationContextBeanFactory的聯系:

ApplicationContextBeanFactory都是接口,在使用時都是調用其的子類。

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

兩種方式對比區(qū)別:從繼承功能方面和性能方面這兩個方面進行比較說明。

  1. 繼承關系和功能方面:BeanFactory 提供了基礎的訪問容器的能力,而ApplicationContext是BeanFactory的子類,它除了繼承了BeanFactory的所有功能之外,它還擁有獨特的特性還添加了對國際化支持、資源訪問支持、以及事件傳播等方面的支持。
  2. 性能方面:ApplicationContext是一次性加載并初始化所有的Bean對象,而BeanFactory是需要哪個才去加載并初始化哪個,因此BeanFactory更加輕量,但效率不高。

4.2,獲取Bean對象的三種方式

1)通過名稱獲取
Student student = (Student) context.getBean("student");

該方式需經過兩步操作,先獲取到Bean對象,再經過強制類型轉換為對應的類型,而強制類型轉換容易出現空指針異常,不優(yōu)雅。

如果Bean對象名稱不存在,則會拋出NoSuchBeanDefinitionException異常。

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

2)通過類名獲取
Student student = context.getBean(Student.class);

該方式存在缺陷,當有?個類型被重復注冊到 spring-config.xml 中時,不可使用該方式,若使用則會拋出NoUniqueBeanDefinitionException異常(非唯一的Bean異常)。

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java

3)通過名稱+類名獲取

該方式推薦使用,既避免了強制類型轉換帶來的空指針異常問題,也避免了只根據類名獲取Bean方式帶來的非唯一的Bean異常問題。

Student student = context.getBean("student", Student.class);

本文總結

1,Spring 創(chuàng)建與使用流程?

解答:Spring 創(chuàng)建與使用的流程分為三大步,分別為Spring項目的創(chuàng)建,Bean對象的存儲以及Bean對象的讀取。具體流程為:

1)Spring項目的創(chuàng)建

  1. 創(chuàng)建一個Maven項目
  2. 添加Spring框架依賴 【spring-context】
  3. 添加啟動類 【功能:為后面從Spring容器中讀取Bean做準備】

2)存儲Bean

  1. 創(chuàng)建Bean對象
  2. 將Bean注冊到Spring容器中 【spring-config.xml配置文件】

3)讀取Bean

  1. 得到Spring 對象【ApplicationContext,BeanFactory】
  2. 通過Spring 對象的 getBean() 方法獲取到Bean對象 【DI操作】
  3. 使用Bean對象 【非必須】

Spring 創(chuàng)建與使用的流程示意圖:【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java


2,獲取Spring的兩種方式?區(qū)別?

1)ApplicationContext:在獲取Spring對象上下文時會對Spring容器中的所有Bean對象進行加載初始化。

ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");

2)BeanFactory:只有在調用getBean方法時才會進行加載初始化對應的Bean對象,而不是所有的Bean對象。

BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"))

3)兩種方式區(qū)別:從繼承功能方面和性能方面兩個方面進行比較說明。

  1. 繼承關系和功能方面:BeanFactory 提供了基礎的訪問容器的能力,而ApplicationContext是BeanFactory的子類,它除了繼承了BeanFactory的所有功能之外,它還擁有獨特的特性還添加了對國際化支持、資源訪問支持、以及事件傳播等方面的支持。
  2. 性能方面:ApplicationContext是一次性加載并初始化所有的Bean對象,而BeanFactory是需要哪個才去加載并初始化哪個,因此BeanFactory更加輕量,但效率不高。

3,獲取Bean對象的三種方式?

1)通過名稱獲取:有缺陷,需要進行強制性轉換,而強制類型轉換容易出現空指針異常。

Student student = (Student) context.getBean("student");

2)通過類名獲取:有缺陷,當同類型的Bean對象有多個時,拋出NoUniqueBeanDefinitionException異常(非唯一的Bean異常)。

Student student = context.getBean(Student.class);

3)通過名稱+類名獲取:推薦使用,規(guī)避了上述問題。

Student student = context.getBean("student", Student.class);

結語

這就是本期博客的全部內容啦!如果有什么其他的問題無法自己解決,可以在評論區(qū)留言哦!

最后,如果你覺得這篇文章寫的還不錯的話或者有所收獲的話,麻煩小伙伴們動動你們的小手,給個三連唄(點贊??,評論?,收藏??),多多支持一下!各位的支持是我最大的動力,后期不斷更新優(yōu)質的內容來幫助大家,一起進步。那我們下期見!

【框架篇】Spring 創(chuàng)建與使用介紹,Java EE【進階】,java-ee,spring,java文章來源地址http://www.zghlxwxcb.cn/news/detail-564991.html


到了這里,關于【框架篇】Spring 創(chuàng)建與使用介紹的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • SSM框架的學習與應用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級應用開發(fā)學習記錄(第一天)Mybatis的學習

    SSM框架的學習與應用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級應用開發(fā)學習記錄(第一天)Mybatis的學習

    一、當前的主流框架介紹(這就是后期我會發(fā)出來的框架學習) Spring框架 ? Spring是一個開源框架,是為了解決企業(yè)應用程序開發(fā)復雜性而創(chuàng)建的 ,其主要優(yōu)勢之一就是分層架構。 Spring提供了更完善的開發(fā)環(huán)境,可以為POJO(Plain Ordinary Java Object,普通Java對象 )對象提供企業(yè)級

    2024年02月12日
    瀏覽(58)
  • SSM框架的學習與應用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級應用開發(fā)學習記錄(第五天)MyBatis的注解開發(fā)

    SSM框架的學習與應用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級應用開發(fā)學習記錄(第五天)MyBatis的注解開發(fā)

    ? 昨天我們深入學習了 MyBatis多表之間的關聯映射,了解掌握了一對一關聯映射,一對多關聯映射,嵌套查詢方式以及嵌套結果方式,掌握了緩存機制的一級緩存,二級緩存等概念,也使用了代碼進行復現理解 。但是都是基于XML配置文件的方式來實現的,現在我們要學習一下

    2024年02月11日
    瀏覽(58)
  • SSM框架的學習與應用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級應用開發(fā)學習記錄(第二天)Mybatis的深入學習

    SSM框架的學習與應用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級應用開發(fā)學習記錄(第二天)Mybatis的深入學習

    上一篇我們的項目搭建好了,也寫了簡答的Junit測試類進行測試,可以正確映射到數據庫中。 那么這篇文章來深入學習一下以下幾個點: 了解 MyBatis的核心對象SqlSessionFactoryBuilder 以及它的作用 掌握MyBatis核心配置文件以及元素的使用 。 掌握MyBatis映射文件及其元素的使用 。

    2024年02月11日
    瀏覽(34)
  • (第十一天)初識SpringMVC SSM框架的學習與應用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級應用開發(fā)學習記錄

    (第十一天)初識SpringMVC SSM框架的學習與應用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級應用開發(fā)學習記錄

    今天我們要來學習一下SSM框架的最后一個框架SpringMVC 一、初認SpringMVC 基本概念: ? Spring MVC(Model-View-Controller)是一個用于構建Java Web應用程序的開源框架,它提供了一種基于MVC架構的方式來開發(fā)Web應用 。 ? SpringMVC是Spring Framework的一部分,它是一種基于模型-視圖-控制器(

    2024年02月07日
    瀏覽(56)
  • 【框架篇】Spring Boot核心介紹及項目創(chuàng)建(詳細教程)

    【框架篇】Spring Boot核心介紹及項目創(chuàng)建(詳細教程)

    Spring Boot 是基于 Spring 開發(fā)的一種輕量級的全新框架,不僅繼承了 Spring 框架原有的優(yōu)秀特性,而且還通過簡化配置來進一步簡化了 Spring 應用的整個搭建和開發(fā)過程。通過 Spring Boot ,可以輕松地創(chuàng)建獨立的,基于生產級別的和基于 Spring 的應用程序。 Spring 的誕生是為了簡化

    2024年02月16日
    瀏覽(47)
  • 【JavaEE進階】Spring 創(chuàng)建與使用

    【JavaEE進階】Spring 創(chuàng)建與使用

    使用Maven方式來創(chuàng)建一個Spring項目,創(chuàng)建Spring項目和Servlet類似,總共分為以下3步: 創(chuàng)建一個普通Maven項目 添加 Spring 框架?持(spring-context、spring-beans) 添加啟動類 1.1,創(chuàng)建一個Maven項目 創(chuàng)建一個普通的Maven項目注意點:項目名稱和項目路徑中不能有任何中文。 當 Java源代碼

    2024年02月13日
    瀏覽(23)
  • 【Java】Spring框架介紹

    【Java】Spring框架介紹

    人不走空 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 目錄 ????????個人主頁:人不走空?????? ??系列專欄:算法專題 ?詩詞歌賦:斯是陋室,惟吾德馨 1. Spring框架的核心理念 1. 輕量級和非侵入性 1.1.1 輕量級設計 1.1.2 非侵入性的

    2024年02月21日
    瀏覽(21)
  • Java開發(fā)框架:Spring介紹

    Java開發(fā)框架:Spring介紹

    Spring 是 Java EE 編程領域中的一個輕量級開源框架,由 Rod Johnson 在 2002 年最早提出并隨后創(chuàng)建,目的是解決企業(yè)級編程開發(fā)中的復雜性,實現敏捷開發(fā)的應用型框架 。其中,輕量級表現在 Spring 是非侵入式的,即開發(fā)應用中的對象可以不依賴于 Spring 的 API 類。另外,Spring 針對

    2024年02月08日
    瀏覽(22)
  • 【Spring框架】SpringBoot創(chuàng)建和使用

    【Spring框架】SpringBoot創(chuàng)建和使用

    Spring 的誕?是為了簡化 Java 程序的開發(fā)的,? Spring Boot 的誕?是為了簡化 Spring 程序開發(fā)的。 1.起步依賴(創(chuàng)建的時候就可以方便的添加依賴) 2.內置Tomcat容器 3.快速部署,使用jar包加上簡單的命令直接運行 4.拋棄XML的配置方式 5.提供了更多的監(jiān)控框架,方便的監(jiān)控系統運行

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

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

    2024年02月15日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包