最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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 的所有功能之外,它還擁有獨(dú)特的特性, 還添加了對國際化?持、資源訪問?持、以及事件傳播等??的?持。
  • 從性能??來說: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)文章

  • Maven繼承父工程時的relativePath標(biāo)簽解析用法小結(jié)

    Maven繼承父工程時的relativePath標(biāo)簽解析用法小結(jié)

    relativePath 的作用是為了找到父級工程的pom.xml,本文主要介紹了Maven繼承父工程時的relativePath標(biāo)簽解析用法小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Java簡單實現(xiàn)銀行ATM系統(tǒng)

    Java簡單實現(xiàn)銀行ATM系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java簡單實現(xiàn)銀行ATM系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • SpringBoot @Retryable注解使用

    SpringBoot @Retryable注解使用

    SpringBoot提供的@Retryable注解可以方便地實現(xiàn)方法的重試機(jī)制,可以在不侵入原有邏輯代碼的方式下,優(yōu)雅地實現(xiàn)重處理功能
    2024-12-12
  • 詳解Spring 中如何控制2個bean中的初始化順序

    詳解Spring 中如何控制2個bean中的初始化順序

    本篇文章主要介紹了Spring 中如何控制2個bean中的初始化順序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • springboot 微信授權(quán)網(wǎng)頁登錄操作流程

    springboot 微信授權(quán)網(wǎng)頁登錄操作流程

    這篇文章主要介紹了springboot 微信授權(quán)網(wǎng)頁登錄操作流程,本文通過實例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Java?split方法使用超詳細(xì)講解

    Java?split方法使用超詳細(xì)講解

    這篇文章主要給大家介紹了關(guān)于Java?split方法使用的相關(guān)資料,Java中的我們可以利用split把字符串按照指定的分割符進(jìn)行分割,然后返回字符串?dāng)?shù)組,需要的朋友可以參考下
    2023-10-10
  • Spring中的@ConditionalOnProperty注解詳解

    Spring中的@ConditionalOnProperty注解詳解

    這篇文章主要介紹了Spring中的@ConditionalOnProperty注解詳解,常見的@Conditionalxxx開頭的注解我們稱之為條件注解,常見的條件注解有,簡單來講,一般是在配置類上或者是@Bean修飾的方法上,添加此注解表示一個類是否要被Spring上下文加載,需要的朋友可以參考下
    2024-01-01
  • Java面試之SQL語句題經(jīng)典案例

    Java面試之SQL語句題經(jīng)典案例

    本文詳細(xì)討論了如何將行數(shù)據(jù)轉(zhuǎn)化為列數(shù)據(jù),并提供了多種SQL查詢練習(xí)題,包括查詢特定條件的學(xué)生信息、課程成績比較、學(xué)生成績排名等,文章還解釋了在SQL中使用Union、UnionAll和pivot的方法,以及如何處理復(fù)雜的SQL查詢問題,需要的朋友可以參考下
    2024-10-10
  • Java中使用Java?Mail實現(xiàn)郵件服務(wù)功能示例

    Java中使用Java?Mail實現(xiàn)郵件服務(wù)功能示例

    這篇文章主要介紹了Java中使用Java?Mail實現(xiàn)郵件服務(wù)功能的相關(guān)資料,文章還提供了一個發(fā)送郵件的示例代碼,包括創(chuàng)建參數(shù)類、郵件類和執(zhí)行結(jié)果,需要的朋友可以參考下
    2025-01-01
  • IDEA如何添加配置文件到classpath中

    IDEA如何添加配置文件到classpath中

    這篇文章主要介紹了IDEA如何添加配置文件到classpath中,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09

最新評論

克拉玛依市| 广宗县| 加查县| 宣化县| 鄄城县| 潜江市| 双流县| 永济市| 田林县| 青阳县| 思茅市| 寿宁县| 通城县| 虎林市| 茶陵县| 松潘县| 东乡族自治县| 台中县| 通江县| 彭阳县| 泸定县| 石阡县| 冕宁县| 县级市| 泸西县| 锡林浩特市| 惠水县| 营山县| 嘉禾县| 和平县| 沙湾县| 和平区| 三穗县| 武安市| 元谋县| 肇源县| 平塘县| 兰西县| 来凤县| 东乡族自治县| 楚雄市|