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

SpringBoot 創(chuàng)建對象常見的幾種方式小結(jié)

 更新時間:2024年11月15日 09:28:32   作者:昔我往昔  
Spring Boot中創(chuàng)建對象的幾種常見方式包括使用@Component、@Service、@Repository或@Controller注解,本文就來詳細(xì)的介紹一下,感興趣的可以了解一下

在 Spring Boot 中,將 Bean 對象添加到 IOC 容器中,通用的有下面幾種方式:

  • 使用 @Component@Service、@Repository 或 @Controller 注解
  • 使用 @Configuration 和 @Bean 注解
  • 使用 @Import 注解導(dǎo)入其他配置類
  • 通過 ApplicationContext 編程方式手動注冊 Bean

1. 使用 @Component(或 @Service、@Repository、@Controller)注解

最常見的方式,Spring 會自動掃描并將帶有這些注解的類注冊為 Bean。

import org.springframework.stereotype.Component;

@Component
public class User {
    public void say() {
        System.out.println("Hello User!");
    }
}

配置掃描路徑(通常在 @SpringBootApplication 上已經(jīng)啟用了掃描,如果需要指定包路徑,可以使用 @ComponentScan 注解):

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

在 Spring Boot 啟動時,@Component 注解的類會自動注冊為 Bean,并添加到 IOC 容器中。

2. 使用 @Configuration 和 @Bean 注解

通過在 @Configuration 注解的配置類中使用 @Bean 注解,可以手動將對象添加到 Spring 容器中。

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class BeanConfig {

    @Bean
    public User user() {
        return new User();
    }
}

User 類:

public class user {
    public void say() {
         System.out.println("Hello User!");
    }
}

BeanConfig 類使用 @Bean 注解注冊了一個 user 實例,Spring 會將其自動加入到 IOC 容器中。

3. 使用 @Import 注解導(dǎo)入配置類

@Import 注解可以導(dǎo)入其他配置類,將其配置的 Bean 添加到當(dāng)前應(yīng)用的 IOC 容器中。

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

@Configuration
@Import(BeanConfig.class)
public class MainConfig {
    // 通過 @Import 導(dǎo)入 BeanConfig 中的 Bean
}

MainConfig 類通過 @Import(BeanConfig.class) 導(dǎo)入了 BeanConfig 中定義的所有 Bean,這樣 MyBean 也會被注冊到 IOC 容器中。

4. 使用 ApplicationContext 編程方式手動注冊 Bean

在某些特殊的場景中,可能需要手動編程注冊 Bean,這時可以使用 AnnotationConfigApplicationContext 或 GenericWebApplicationContext 類。

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class ManualBeanRegistration {

    public static void main(String[] args) {
        // 創(chuàng)建 Spring 容器
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();

        // 注冊配置類
        context.register(BeanConfig.class);

        // 啟動容器
        context.refresh();

        // 獲取并使用 Bean
        MyBean myBean = context.getBean(MyBean.class);
        myBean.printMessage();

        // 關(guān)閉容器
        context.close();
    }
}

通過 AnnotationConfigApplicationContext 顯式地手動注冊了 BeanConfig 配置類,并啟動了 Spring 容器。

總結(jié)

  • @Component 注解(及其衍生注解 @Service、@Repository、@Controller)是最常用的方式,通過自動掃描自動將 Bean 注冊到 IOC 容器中。
  • @Configuration 和 @Bean 注解 可以在配置類中手動注冊 Bean。
  • @Import 注解 可以將其他配置類中的 Bean 導(dǎo)入到當(dāng)前配置類中。
  • 手動注冊 通過 ApplicationContext 等類可以編程方式注冊 Bean。

到此這篇關(guān)于SpringBoot 創(chuàng)建對象常見的幾種方式小結(jié)的文章就介紹到這了,更多相關(guān)SpringBoot 創(chuàng)建對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • SpringCloud如何解決服務(wù)之間的通信問題

    SpringCloud如何解決服務(wù)之間的通信問題

    本文主要介紹了SpringCloud如何解決服務(wù)之間的通信問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • java如何使用redis加鎖

    java如何使用redis加鎖

    這篇文章主要介紹了java如何使用redis加鎖問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • logback FixedWindowRollingPolicy固定窗口算法重命名文件滾動策略

    logback FixedWindowRollingPolicy固定窗口算法重命名文件滾動策略

    這篇文章主要介紹了FixedWindowRollingPolicy根據(jù)logback 固定窗口算法重命名文件滾動策略源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • 關(guān)于maven項目中使用BCrypt加密方式

    關(guān)于maven項目中使用BCrypt加密方式

    BCrypt是一種基于Blowfish加密算法的密碼散列函數(shù),用于安全存儲和驗證用戶密碼,它通過引入鹽和工作因子增加計算復(fù)雜度,有效防止彩虹表攻擊和破解,BCrypt具備適應(yīng)性工作因子、成本參數(shù)調(diào)整、迭代哈希和密鑰擴展等特點,被廣泛應(yīng)用于Web應(yīng)用程序的安全性設(shè)計中
    2024-10-10
  • SpringCloud組件OpenFeign之?dāng)r截器解讀

    SpringCloud組件OpenFeign之?dāng)r截器解讀

    這篇文章主要介紹了SpringCloud組件OpenFeign之?dāng)r截器用法。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • SpringBoot整合mybatis-plus快速入門超詳細(xì)教程

    SpringBoot整合mybatis-plus快速入門超詳細(xì)教程

    mybatis-plus 是一個 Mybatis 的增強工具,在 Mybatis 的基礎(chǔ)上只做增強不做改變,為簡化開發(fā)、提高效率而生,本文給大家分享SpringBoot整合mybatis-plus快速入門超詳細(xì)教程,一起看看吧
    2021-09-09
  • 詳解springMVC之與json數(shù)據(jù)交互方法

    詳解springMVC之與json數(shù)據(jù)交互方法

    本篇文章主要介紹了詳解springMVC之與json數(shù)據(jù)交互方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 用java WebSocket做一個聊天室

    用java WebSocket做一個聊天室

    這篇文章主要為大家詳細(xì)介紹了用java WebSocket做一個聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • java實現(xiàn)ftp文件上傳下載功能

    java實現(xiàn)ftp文件上傳下載功能

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)ftp文件上傳下載功能的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • springboot實現(xiàn)https雙向傳輸協(xié)議的示例代碼

    springboot實現(xiàn)https雙向傳輸協(xié)議的示例代碼

    本文主要介紹了springboot實現(xiàn)https雙向傳輸協(xié)議的示例代碼,包含配置證書和私鑰路徑、調(diào)用請求方法等步驟,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03

最新評論

苍南县| 阳谷县| 克拉玛依市| 平邑县| 左权县| 长乐市| 通江县| 温泉县| 随州市| 华容县| 当阳市| 黔西县| 德阳市| 合山市| 田阳县| 吴川市| 团风县| 贵州省| 成武县| 舟山市| 荃湾区| 龙川县| 南丰县| 修水县| 天津市| 广州市| 建昌县| 鹤山市| 大丰市| 石屏县| 哈尔滨市| 榕江县| 集贤县| 南康市| 台中县| 商洛市| 杭锦后旗| 莲花县| 永吉县| 新泰市| 抚顺市|