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

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

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

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

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

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

最常見的方式,Spring 會(huì)自動(dòng)掃描并將帶有這些注解的類注冊(cè)為 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 啟動(dòng)時(shí),@Component 注解的類會(huì)自動(dòng)注冊(cè)為 Bean,并添加到 IOC 容器中。

2. 使用 @Configuration 和 @Bean 注解

通過在 @Configuration 注解的配置類中使用 @Bean 注解,可以手動(dòng)將對(duì)象添加到 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 注解注冊(cè)了一個(gè) user 實(shí)例,Spring 會(huì)將其自動(dòng)加入到 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 也會(huì)被注冊(cè)到 IOC 容器中。

4. 使用 ApplicationContext 編程方式手動(dòng)注冊(cè) Bean

在某些特殊的場(chǎng)景中,可能需要手動(dòng)編程注冊(cè) Bean,這時(shí)可以使用 AnnotationConfigApplicationContext 或 GenericWebApplicationContext 類。

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class ManualBeanRegistration {

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

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

        // 啟動(dòng)容器
        context.refresh();

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

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

通過 AnnotationConfigApplicationContext 顯式地手動(dòng)注冊(cè)了 BeanConfig 配置類,并啟動(dòng)了 Spring 容器。

總結(jié)

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

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

相關(guān)文章

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

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

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

    java如何使用redis加鎖

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

    logback FixedWindowRollingPolicy固定窗口算法重命名文件滾動(dòng)策略

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

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

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

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

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

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

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

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

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

    用java WebSocket做一個(gè)聊天室

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

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

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

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

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

最新評(píng)論

舞阳县| 盖州市| 洛浦县| 杨浦区| 延长县| 隆子县| 洪湖市| 晴隆县| 青铜峡市| 荥阳市| 无棣县| 山东省| 湟源县| 名山县| 盱眙县| 沁源县| 土默特右旗| 清苑县| 新蔡县| 江山市| 泰安市| 福鼎市| 南召县| 卢湾区| 锡林郭勒盟| 沙雅县| 酉阳| 全南县| 浦东新区| 辉县市| 阿荣旗| 芜湖县| 西吉县| 宁远县| 黄浦区| 灌阳县| 日照市| 德阳市| 宜昌市| 延安市| 卫辉市|