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

SpringBoot項(xiàng)目如何將Bean注入到普通類中

 更新時(shí)間:2021年11月15日 16:28:46   作者:banmajio  
這篇文章主要介紹了SpringBoot項(xiàng)目如何將Bean注入到普通類中,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

如何將Bean注入到普通類中

Spring管理的類獲得一個(gè)注入的Bean方式

@Autowired是一種注解,可以對成員變量、方法和構(gòu)造函數(shù)進(jìn)行標(biāo)注,來完成自動(dòng)裝配的工作,自動(dòng)執(zhí)行當(dāng)前方法,如果方法有參數(shù),會(huì)在IOC容器中自動(dòng)尋找同類型參數(shù)為其傳值。

如Controller中注入Bean可以這么寫:

@RestController
public class TestController {
 @Autowired
 public TestBean bean;// 配置文件bean
}

非Spring管理的類獲得一個(gè)注入的Bean方式

上述通過@Autowired注解注入的方式只可以用在Spring管理的類中,而普通類中通過這樣的方式獲得的Bean為null。

可以使用Spring上下文ApplicationContext獲得Bean的方式,將Bean注入到普通類中

普通類中通過ApplicationContext上下文獲得Bean

public class Test{
 //聲明要注入的Bean變量
 private static TestBean bean;
 // 通過applicationContext上下文獲取Bean
 
 public static void setApplicationContext(ApplicationContext applicationContext) {
  bean = applicationContext.getBean(TestBean.class);
 }
}

修改SpringBoot啟動(dòng)類

將ApplicationContext傳入普通類中

@SpringBootApplication
public class TestrApplication {
 public static void main(String[] args) {
  final ApplicationContext applicationContext = SpringApplication.run(TestApplication.class, args);
  // 將上下文傳入Test類中,用于檢測tcp連接是否正常
  Test.setApplicationContext(applicationContext);
 }
}

這樣一個(gè)Spring的Bean就可以注入到普通類中使用了.

在普通類中如何獲取Bean節(jié)點(diǎn)

/*
 * 文件名:SpringContextUtil.java
 * 描述:獲取bean實(shí)例工具類
 * 修改人:Wang Chinda
 * 修改時(shí)間:2018/10/30
 * 修改內(nèi)容:新增
 */
package com.chinda.utils;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
 * 獲取bean實(shí)例工具類
 * @author Wang Chinda
 * @date 2018/10/30
 * @see
 * @since 1.0
 */
@Component
public class SpringContextUtil implements ApplicationContextAware {
    /**
     * 上下文對象實(shí)例
     */
    private static ApplicationContext applicationContext;
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
    }
    /**
     * 獲取applicationContext
     *
     * @return
     */
    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }
    /**
     * 通過name獲取Bean.
     *
     * @param name
     * @return
     */
    public static Object getBean(String name) {
        return getApplicationContext().getBean(name);
    }
    /**
     * 通過class獲取Bean.
     *
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T getBean(Class<T> clazz) {
        return getApplicationContext().getBean(clazz);
    }
    /**
     * 通過name以及Class返回指定的Bean
     *
     * @param name
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T getBean(String name, Class<T> clazz) {
        return getApplicationContext().getBean(name, clazz);
    }
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 史上最簡單的MyBatis動(dòng)態(tài)SQL入門示例代碼

    史上最簡單的MyBatis動(dòng)態(tài)SQL入門示例代碼

    動(dòng)態(tài)sql,可以根據(jù)用戶對字段選擇和輸入,動(dòng)態(tài)生成一條sql執(zhí)行。接下來通過本文給大家分享MyBatis動(dòng)態(tài)SQL入門示例代碼,一起看看吧
    2017-03-03
  • Spring?@Conditional通過條件控制bean注冊過程

    Spring?@Conditional通過條件控制bean注冊過程

    這篇文章主要為大家介紹了Spring?@Conditional通過條件控制bean注冊過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Java微服務(wù)開發(fā)之Swagger詳解

    Java微服務(wù)開發(fā)之Swagger詳解

    Swagger 是一個(gè)規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù)??傮w目標(biāo)是使客戶端和文件系統(tǒng)作為服務(wù)器以同樣的速度來更新。文件的方法,參數(shù)和模型緊密集成到服務(wù)器端的代碼,允許API來始終保持同步
    2021-10-10
  • 利用Jackson實(shí)現(xiàn)數(shù)據(jù)脫敏的示例詳解

    利用Jackson實(shí)現(xiàn)數(shù)據(jù)脫敏的示例詳解

    在我們的企業(yè)項(xiàng)目中,為了保護(hù)用戶隱私,數(shù)據(jù)脫敏成了必不可少的操作,那么我們怎么優(yōu)雅的利用Jackson實(shí)現(xiàn)數(shù)據(jù)脫敏呢,本文就來和大家詳細(xì)聊聊,希望對大家有所幫助
    2023-05-05
  • Java 線程池詳解

    Java 線程池詳解

    本文給大家總結(jié)了java中的線程池的相關(guān)問題,非常的詳細(xì)也很實(shí)用,有需要的小伙伴可以參考下。
    2016-03-03
  • Java Volatile關(guān)鍵字你真的了解嗎

    Java Volatile關(guān)鍵字你真的了解嗎

    這篇文章主要為大家介紹了Java Volatile關(guān)鍵字,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Java基礎(chǔ)之代碼死循環(huán)詳解

    Java基礎(chǔ)之代碼死循環(huán)詳解

    這篇文章主要介紹了Java基礎(chǔ)之代碼死循環(huán)詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Eclipse下使用ANT編譯提示OutOfMemory的解決方法

    Eclipse下使用ANT編譯提示OutOfMemory的解決方法

    由于需要使用ANT編譯的代碼比較多,特別是在第一次變異的時(shí)候,會(huì)出現(xiàn)OutOfMemory錯(cuò)誤。并提示更改ANT_OPTS設(shè)定。
    2009-04-04
  • java+mysql實(shí)現(xiàn)商品搶購功能

    java+mysql實(shí)現(xiàn)商品搶購功能

    這篇文章主要為大家詳細(xì)介紹了java+mysql實(shí)現(xiàn)商品搶購功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 詳解java中的PropertyChangeSupport與PropertyChangeListener

    詳解java中的PropertyChangeSupport與PropertyChangeListener

    這篇文章主要介紹了詳解java中的PropertyChangeSupport與PropertyChangeListener的相關(guān)資料,需要的朋友可以參考下
    2017-09-09

最新評論