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

SpringBoot解決@Component無法注入其他Bean的問題

 更新時間:2021年08月31日 14:38:27   作者:954L  
這篇文章主要介紹了SpringBoot解決@Component無法注入其他Bean的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot @Component無法注入其他Bean

一、現(xiàn)象

在SpringBoot新new一個普通類,習(xí)慣性添加@Component讓Spring掃描。

在@Component修飾的類里注入了其他Bean,運(yùn)行時提示注入的為null

但這個Bean可以在控制層被引入,在普通類就不行。

二、解決

找了些資料,最后也沒解決注入的問題。

最后的方案就是去掉@Component注解,在new這個普通類時從Spring上下文實(shí)例中取出這個Bean賦給成員變量使用。

弊端:這個類非單例

三、代碼如下

ApplicationContextProvider

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component; 
@Component
public class ApplicationContextProvider implements ApplicationContextAware {
 
    /**
     * 上下文對象實(shí)例
     */
    private static ApplicationContext applicationContext;
 
    @SuppressWarnings("static-access")
    @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,以及Clazz返回指定的Bean
     *
     * @param name
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T getBean(String name, Class<T> clazz) {
        return getApplicationContext().getBean(name, clazz);
    } 
}

IdentityCheckUtil

import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.http.FullHttpRequest;
import org.apache.log4j.Logger; 
public class IdentityCheckUtil { 
    private Logger logger = Logger.getLogger(IdentityCheckUtil.class); 
    private UserMapper userMapper; 
    public IdentityCheckUtil() {
        this.userMapper = ApplicationContextProvider.getBean(UserMapper.class);
    } 
    public boolean allowedPass(ChannelHandlerContext ctx, FullHttpRequest fullHttpRequest) {
        System.out.println(userMapper);
    }
}

@Component注解自動注入失效問題

使用@Component聲明 進(jìn)行自動注入失效

在這里插入圖片描述

@Component,在默認(rèn)情況下只能掃描與控制器在同一個包下以及其子包下的@Component注解,以及能將指定注解的類自動注冊為Bean的@Service@Controller和@ Repository,將接口與對應(yīng)實(shí)現(xiàn)類放在了與控制器所在包的同一級目錄下,這樣的注解自然是無法被識別的。

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

相關(guān)文章

  • mybatis-plus如何禁用一級緩存的方法

    mybatis-plus如何禁用一級緩存的方法

    這篇文章主要介紹了mybatis-plus如何禁用一級緩存的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • SpringBoot中的多個事務(wù)管理詳解

    SpringBoot中的多個事務(wù)管理詳解

    這篇文章主要介紹了SpringBoot中的多個事務(wù)管理詳解,事務(wù)管理是一種組織和協(xié)調(diào)各種活動和資源的方法,以實(shí)現(xiàn)特定目標(biāo),它涉及規(guī)劃、執(zhí)行和監(jiān)控各種任務(wù),以確保項(xiàng)目或組織的順利運(yùn)行,需要的朋友可以參考下
    2023-10-10
  • Java并發(fā)工具Fork/Join原理

    Java并發(fā)工具Fork/Join原理

    這篇文章主要為大家介紹了Java并發(fā)工具Fork/Join原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Java基于遞歸解決全排列問題算法示例

    Java基于遞歸解決全排列問題算法示例

    這篇文章主要介紹了Java基于遞歸解決全排列問題算法,結(jié)合實(shí)例形式分析了Java使用遞歸算法解決全排列問題的原理與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-11-11
  • 詳解Spring中接口的bean是如何注入的

    詳解Spring中接口的bean是如何注入的

    這篇文章主要介紹了詳解Spring中接口的bean是如何注入的的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Java this關(guān)鍵字的引用詳解

    Java this關(guān)鍵字的引用詳解

    每個類中都有一個本類的this引用,類似:類名 this;實(shí)例對象時,this引用指向?qū)ο蟊旧?,其最主要的作用是讓類中的方法可以訪問本類中的另外一個方法或?qū)傩?,因?yàn)檎{(diào)用一個方法或?qū)傩?非類方法/屬性)必須要有實(shí)例
    2022-03-03
  • Mybatis查找返回Map,List集合類型的數(shù)據(jù)方式

    Mybatis查找返回Map,List集合類型的數(shù)據(jù)方式

    這篇文章主要介紹了Mybatis查找返回Map,List集合類型的數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java excel數(shù)據(jù)導(dǎo)入mysql的實(shí)現(xiàn)示例詳解

    Java excel數(shù)據(jù)導(dǎo)入mysql的實(shí)現(xiàn)示例詳解

    今天教大家如何使用Java將excel數(shù)據(jù)導(dǎo)入MySQL,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴呢很有幫助,需要的朋友可以參考下
    2022-08-08
  • Java基礎(chǔ)高級綜合練習(xí)題撲克牌的創(chuàng)建

    Java基礎(chǔ)高級綜合練習(xí)題撲克牌的創(chuàng)建

    今天小編就為大家分享一篇關(guān)于Java基礎(chǔ)高級綜合練習(xí)題撲克牌的創(chuàng)建,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • java.lang.Instrument 代理Agent使用詳細(xì)介紹

    java.lang.Instrument 代理Agent使用詳細(xì)介紹

    這篇文章主要介紹了java.lang.Instrument 代理Agent使用詳細(xì)介紹的相關(guān)資料,附有實(shí)例代碼,幫助大家學(xué)習(xí)參考,需要的朋友可以參考下
    2016-11-11

最新評論