欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中Spring的創(chuàng)建和使用詳解

 更新時間:2023年08月03日 10:28:11   作者:M??? ??.  
這篇文章主要介紹了Java中Spring的創(chuàng)建和使用詳解,Spring 是?個包含了眾多?具?法的 IoC 容器,既然是容器那么 它就具備兩個最基本的功能,將對象存儲到容器中,從容器中將對象取出來,需要的朋友可以參考下

Spring

Spring 是?個包含了眾多?具?法的 IoC 容器。

既然是容器那么 它就具備兩個最基本的功能:

  • 將對象存儲到容器(Spring)中;
  • 從容器中將對象取出來。

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

使? 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 項?

 1.2 添加 Spring 框架支持

在項?的 pom.xml 中添加 Spring 框架的?持,xml 配置如下:

<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>

從上述配置中可以看出,添加的框架有 spring-context:spring 上下?,還有 spring-beans:管理對象的模塊。 寫入完成后記得刷新。

1.3 添加啟動類

最后在創(chuàng)建好的項? java ?件夾下創(chuàng)建?個啟動類,包含 main ?法即可: 、

2.存儲 Bean 對象

存儲 Bean 分為以下 2 步:

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

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

2.1 創(chuàng)建 Bean

所謂的 Bean 就是 Java 語?中的?個普通對象,實現(xiàn)代碼如下:

 2.2 將 Bean 注冊到容器

在創(chuàng)建好的項?中添加 Spring 配置?件 spring-config.xml,將此?件放到 resources 的根?錄下,如下圖所示:

 Spring 配置?件的固定格式為以下內(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>

接下來,再將 User 對象注冊到 Spring 中就可以,具體操作是在 <beans> 中添加如下配置:

    <beans>
        <bean id="user" class="org.example.User"></bean>
    </beans>

3.獲取并使用 Bean 對象

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

  1. 得到 Spring 上下?對象,因為對象都交給 Spring 管理了,所以獲取對象要從 Spring 中獲取,那 么就得先得到 Spring 的上下?。
  2. 通過 Spring 上下?,獲取某?個指定的 Bean 對象。
  3. 使? Bean 對象。

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

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

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

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

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

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

ApplicationContext 和 BeanFactory 效果是?樣的,ApplicationContext 屬于 BeanFactory 的? 類,它們的區(qū)別如下。

ApplicationContext VS BeanFactory(常??試題)

  • 繼承關(guān)系和功能??來說:Spring 容器有兩個頂級的接口:BeanFactory 和 ApplicationContext。其中 BeanFactory 提供了基礎(chǔ)的訪問容器的能?,? ApplicationContext 屬于 BeanFactory 的?類,它除了繼承了 BeanFactory 的所有功能之外,它還擁有獨特的特性, 還添加了對國際化?持、資源訪問?持、以及事件傳播等??的?持。
  • 從性能??來說:ApplicationContext 是?次性加載并初始化所有的 Bean 對象,? BeanFactory 是需要那個才去加載那個,因此更加輕量。

PS:? ClassPathXmlApplicationContext 屬于 ApplicationContext 的?類,擁有 ApplicationContext 的所有功能,是通過 xml 的配置來獲取所有的 Bean 容器的。

3.2 獲取指定的 Bean 對象

// 2.加載某個 bean
User user = (User) context.getBean("user");

3.2.1 注意事項

Bean 的 Id 要??對應(yīng),如下圖所示:

3.2.2 getBean ?法的更多?法 

getBean() ?法有很多種重載?法,我們也可以使?其他?式來獲取 Bean 對象,?如以下這兩種: 根據(jù)類型獲取 Bean:

User user1 = context.getBean(User.class);

或以下這種,名稱 + 類型獲取 Bean:

User user2 = context.getBean("user",User.class);

?者的區(qū)別:當(dāng)有?個類型被重復(fù)注冊到 spring-config.xml 中時,只能使?根據(jù)名稱獲取了,?如以下程序:

以上場景就會導(dǎo)致程序報錯,如下圖所示:

 3.3 使用 Bean

public class App {
 public static void main(String[] args) {
 // 1.得到 Spring 上下?對象
 ApplicationContext context =
 new ClassPathXmlApplicationContext("spring-config.xml");
 // 2.加載某個 bean
 User user = (User) context.getBean("user");
 // 3.調(diào)?相應(yīng)的?法
 System.out.println(user.sayHi("Java"));
 }
}

4.總結(jié)

1. 操作容器之前,先要有容器,所以先要得到容器。

2. 存對象         

a. 創(chuàng)建 Bean(普通類)。         

b. 將 Bean 注冊(配置)到 spring-confing.xml 中。

3. 取對象         

a. 得到 Spring 上下?,并讀取到 Spring 的配置?件。         

b. 獲取某?個 Bean 對象。         

c. 使? Bean 對象。 操作流程如下圖所示:

到此這篇關(guān)于Java中Spring的創(chuàng)建和使用詳解的文章就介紹到這了,更多相關(guān)Spring的創(chuàng)建和使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java及nginx實現(xiàn)文件權(quán)限控制代碼實例

    Java及nginx實現(xiàn)文件權(quán)限控制代碼實例

    這篇文章主要介紹了Java及nginx實現(xiàn)文件權(quán)限控制代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • java組件commons-fileupload實現(xiàn)文件上傳

    java組件commons-fileupload實現(xiàn)文件上傳

    這篇文章主要介紹了java借助commons-fileupload組件實現(xiàn)文件上傳,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Java源碼解析阻塞隊列ArrayBlockingQueue常用方法

    Java源碼解析阻塞隊列ArrayBlockingQueue常用方法

    今天小編就為大家分享一篇關(guān)于Java源碼解析阻塞隊列ArrayBlockingQueue常用方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • SpringCloudConfig之client端報錯Could?not?resolve?placeholder問題

    SpringCloudConfig之client端報錯Could?not?resolve?placeholder問

    這篇文章主要介紹了SpringCloudConfig之client端報錯Could?not?resolve?placeholder?‘from‘?in?value?“${from}“問題及解決方案,具有很好的參考價值,希望對大家有所幫助
    2022-12-12
  • mybatis collection關(guān)聯(lián)查詢多個參數(shù)方式

    mybatis collection關(guān)聯(lián)查詢多個參數(shù)方式

    在使用MyBatis進(jìn)行關(guān)聯(lián)查詢時,往往需要根據(jù)多個參數(shù)進(jìn)行查詢,例如,使用evtId和businessType作為查詢條件,同時在resultMap中配置id和businessType1作為結(jié)果映射,這種情況下,可以通過<sql>標(biāo)簽定義參數(shù)模板,或者使用@Param注解指定參數(shù)名稱
    2024-10-10
  • SpringBoot+VUE實現(xiàn)數(shù)據(jù)表格的實戰(zhàn)

    SpringBoot+VUE實現(xiàn)數(shù)據(jù)表格的實戰(zhàn)

    本文將使用VUE+SpringBoot+MybatisPlus,以前后端分離的形式來實現(xiàn)數(shù)據(jù)表格在前端的渲染,具有一定的參考價值,感興趣的可以了解一下
    2021-08-08
  • java多線程之線程同步七種方式代碼示例

    java多線程之線程同步七種方式代碼示例

    這篇文章主要介紹了java多線程之線程同步七種方式代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Java中過濾器、監(jiān)聽器和攔截器的區(qū)別詳解

    Java中過濾器、監(jiān)聽器和攔截器的區(qū)別詳解

    這篇文章主要介紹了Java中過濾器、監(jiān)聽器和攔截器的區(qū)別詳解,有些朋友可能不了解過濾器、監(jiān)聽器和攔截器的區(qū)別,本文就來詳細(xì)講一下,相信看完你會有所收獲,需要的朋友可以參考下
    2024-01-01
  • SpringBoot SpringEL表達(dá)式的使用

    SpringBoot SpringEL表達(dá)式的使用

    本文主要介紹了SpringEL表達(dá)式的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Spring中BeanFactory解析bean詳解

    Spring中BeanFactory解析bean詳解

    本篇文章主要介紹了Spring中BeanFactory解析bean詳解 ,詳細(xì)的介紹了使用BeanFactory對bean進(jìn)行解析的實例,有興趣的可以了解一下。
    2017-04-04

最新評論