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

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

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

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

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

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

最常見(jiàn)的方式,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 注解

通過(guò)在 @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 {
    // 通過(guò) @Import 導(dǎo)入 BeanConfig 中的 Bean
}

MainConfig 類通過(guò) @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();
    }
}

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

總結(jié)

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

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

相關(guān)文章

  • Java中Redis存儲(chǔ)String類型會(huì)有亂碼的問(wèn)題及解決方案

    Java中Redis存儲(chǔ)String類型會(huì)有亂碼的問(wèn)題及解決方案

    在java中使用Redis存儲(chǔ)String類型的數(shù)據(jù)時(shí),會(huì)出現(xiàn)亂碼,我寫(xiě)了一條存儲(chǔ)key為name,值為虎哥的字符串,然后獲取一下這個(gè)key為name的值,打印得到的值,下面通過(guò)實(shí)例代碼介紹Java中Redis存儲(chǔ)String類型會(huì)有亂碼的問(wèn)題及解決方案,一起看看吧
    2024-04-04
  • 詳解SpringMVC的url-pattern配置及原理剖析

    詳解SpringMVC的url-pattern配置及原理剖析

    這篇文章主要介紹了SpringMVC的url-pattern配置及原理剖析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Java讀取.properties配置文件方法示例

    Java讀取.properties配置文件方法示例

    這篇文章主要介紹了Java讀取.properties配置文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • springboot中如何通過(guò)main方法調(diào)用service或dao

    springboot中如何通過(guò)main方法調(diào)用service或dao

    這篇文章主要介紹了springboot中如何通過(guò)main方法調(diào)用service或dao,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java基礎(chǔ)之詳解基本數(shù)據(jù)類型的使用

    Java基礎(chǔ)之詳解基本數(shù)據(jù)類型的使用

    今天給大家?guī)?lái)的是關(guān)于Java基礎(chǔ)的相關(guān)知識(shí),文章圍繞著基本數(shù)據(jù)類型的使用展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Java開(kāi)發(fā)中的23種設(shè)計(jì)模式詳解(推薦)

    Java開(kāi)發(fā)中的23種設(shè)計(jì)模式詳解(推薦)

    本篇文章主要介紹了Java開(kāi)發(fā)中的23種設(shè)計(jì)模式詳解,現(xiàn)在分享給大家,也給大家做個(gè)參考。感興趣的小伙伴們可以參考一下。 設(shè)計(jì)模式(Design Patterns)
    2016-11-11
  • 詳解json在SpringBoot中的格式轉(zhuǎn)換

    詳解json在SpringBoot中的格式轉(zhuǎn)換

    這篇文章主要介紹了詳解json在SpringBoot中的格式轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 在Eclipse中更改maven項(xiàng)目名的方法

    在Eclipse中更改maven項(xiàng)目名的方法

    今天小編就為大家分享一篇關(guān)于在Eclipse中更改maven項(xiàng)目名的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • SpringBoot項(xiàng)目部署到阿里云服務(wù)器的實(shí)現(xiàn)步驟

    SpringBoot項(xiàng)目部署到阿里云服務(wù)器的實(shí)現(xiàn)步驟

    本文主要介紹了SpringBoot項(xiàng)目部署到阿里云服務(wù)器的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • SpringBoot集成Redis及Redis使用方法

    SpringBoot集成Redis及Redis使用方法

    Redis是現(xiàn)在最受歡迎的NoSQL數(shù)據(jù)庫(kù)之一,Redis是一個(gè)使用ANSI C編寫(xiě)的開(kāi)源、包含多種數(shù)據(jù)結(jié)構(gòu)、支持網(wǎng)絡(luò)、基于內(nèi)存、可選持久性的鍵值對(duì)存儲(chǔ)數(shù)據(jù)庫(kù),這篇文章主要介紹了SpringBoot集成Redis及Redis使用方法,需要的朋友可以參考下
    2023-08-08

最新評(píng)論