成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

普通類(lèi)注入不進(jìn)spring bean的解決方法

瀏覽:2日期:2023-07-24 10:56:04

解決問(wèn)題:我在做移動(dòng)端accessToken的使用遇到一個(gè)問(wèn)題,就是普通類(lèi)死活注入不進(jìn)去spring bean,我和同事雷杰通過(guò)各種注解,xml配置搞了好久都搞不定,這里插個(gè)眼,有空補(bǔ)一下spring,得深入研究一下

解決辦法:后面通過(guò)一個(gè)spring工具類(lèi)搞定,這里貼上代碼

1、引入這個(gè)springUtil類(lèi)

普通類(lèi)注入不進(jìn)spring bean的解決方法

2、通過(guò)構(gòu)造方法注入

普通類(lèi)注入不進(jìn)spring bean的解決方法

貼上SpringUtils代碼:

package com.dt.base.weixin.util;import org.springframework.aop.framework.AopContext;import org.springframework.beans.BeansException;import org.springframework.beans.factory.NoSuchBeanDefinitionException;import org.springframework.beans.factory.config.BeanFactoryPostProcessor;import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;import org.springframework.stereotype.Component;/** * @Description: spring工具類(lèi) 方便在非spring管理環(huán)境中獲取bean * @author: ZhangChongHu * @Date: 2020/12/8 17:23 * @Copyright: Xi’an Dian Tong Software Co., Ltd. All Rights Reserved. * @Version 1.0 */@Componentpublic final class SpringUtils implements BeanFactoryPostProcessor{ /** Spring應(yīng)用上下文環(huán)境 */ private static ConfigurableListableBeanFactory beanFactory; @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { SpringUtils.beanFactory = beanFactory; } /** * 獲取對(duì)象 * * @param name * @return Object 一個(gè)以所給名字注冊(cè)的bean的實(shí)例 * @throws BeansException * */ @SuppressWarnings('unchecked') public static <T> T getBean(String name) throws BeansException { return (T) beanFactory.getBean(name); } /** * 獲取類(lèi)型為requiredType的對(duì)象 * * @param clz * @return * @throws BeansException * */ public static <T> T getBean(Class<T> clz) throws BeansException { T result = (T) beanFactory.getBean(clz); return result; } /** * 如果BeanFactory包含一個(gè)與所給名稱(chēng)匹配的bean定義,則返回true * * @param name * @return boolean */ public static boolean containsBean(String name) { return beanFactory.containsBean(name); } /** * 判斷以給定名字注冊(cè)的bean定義是一個(gè)singleton還是一個(gè)prototype。 如果與給定名字相應(yīng)的bean定義沒(méi)有被找到,將會(huì)拋出一個(gè)異常(NoSuchBeanDefinitionException) * * @param name * @return boolean * @throws NoSuchBeanDefinitionException * */ public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { return beanFactory.isSingleton(name); } /** * @param name * @return Class 注冊(cè)對(duì)象的類(lèi)型 * @throws NoSuchBeanDefinitionException * */ public static Class<?> getType(String name) throws NoSuchBeanDefinitionException { return beanFactory.getType(name); } /** * 如果給定的bean名字在bean定義中有別名,則返回這些別名 * * @param name * @return * @throws NoSuchBeanDefinitionException * */ public static String[] getAliases(String name) throws NoSuchBeanDefinitionException { return beanFactory.getAliases(name); } /** * 獲取aop代理對(duì)象 * * @param invoker * @return */ @SuppressWarnings('unchecked') public static <T> T getAopProxy(T invoker) { return (T) AopContext.currentProxy(); }}

貼上調(diào)用得方法:

注意:調(diào)用getValidator()方法直接返回得是 AgentCfgDao agentCfgDao ,相當(dāng)于

@Autowired private AgentCfgDao agentCfgDao;

/** * Copyright (c) 2014 - 2016 Xi’an Dian Tong Software Co., Ltd. All Rights Reserved. * <p> * This software is the confidential and proprietary information of Xi’an Dian Tong * Software Co., Ltd. ('Confidential Information'). You shall not disclose such * Confidential Information and shall use it only in accordance with the terms * of the license agreement you entered into with Xi’an Dian Tong Software Co., Ltd. */package com.dt.base.weixin.app;import cn.hutool.http.HttpRequest;import cn.hutool.http.HttpUtil;import com.dt.base.weixin.util.SpringUtils;import com.dt.ncfg.dao.AgentCfgDao;import com.dt.sys.manage.entity.DtwxAgentCfg;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import org.springframework.stereotype.Component;import java.util.HashMap;/** * 保存了 corpID + secret 和對(duì)應(yīng)的 access token 。 * key: corpID + secret * value: access token */public class AccessTokenPool { protected final static Logger log = LogManager.getLogger('AccessTokenPool'); DtwxAgentCfg dtwxAgentCfg = null; /** * 獲取AgentCfgDao * * @return */ protected AgentCfgDao getValidator() { return SpringUtils.getBean(AgentCfgDao.class); } /** * 根據(jù)corpID, secret 換取AccessToken * * @param corpID corpID * @param secret secret * @param type type * @return */ public String getAccessToken(String corpID, String secret, String type) { //如果是企業(yè)號(hào) if ('QYH'.equals(type)) { //可以單獨(dú)傳入http參數(shù),這樣參數(shù)會(huì)自動(dòng)做URL編碼,拼接在URL中 HashMap<String, Object> paramMap = new HashMap<>(); paramMap.put('corpId', corpID); paramMap.put('corpSecret', secret); String result = HttpUtil.get(resUrl() + '/api/mobile/QYH/isExist', paramMap); return result; } //如果是服務(wù)號(hào) if ('FWH'.equals(type)) { //可以單獨(dú)傳入http參數(shù),這樣參數(shù)會(huì)自動(dòng)做URL編碼,拼接在URL中 HashMap<String, Object> paramMap = new HashMap<>(); paramMap.put('appId', corpID); paramMap.put('appSecret', secret); String result = HttpUtil.get(resUrl() + '/api/mobile/FWH/isExist', paramMap); return result; } //如果是釘釘號(hào) if ('DING'.equals(type)) { //可以單獨(dú)傳入http參數(shù),這樣參數(shù)會(huì)自動(dòng)做URL編碼,拼接在URL中 HashMap<String, Object> paramMap = new HashMap<>(); paramMap.put('appKey', corpID); paramMap.put('appSecret', secret); String result = HttpUtil.get(resUrl() + '/api/mobile/DING/isExist', paramMap); return result; } return null; } /** * 根據(jù)corpID, secret 刪除舊的token * * @param corpID * @param secret * @return */ public String delAccessToken(String corpID, String secret, String type) { if ('QYH'.equals(type)) { //可以單獨(dú)傳入http參數(shù),這樣參數(shù)會(huì)自動(dòng)做URL編碼,拼接在URL中 HashMap<String, Object> paramMap = new HashMap<>(16); paramMap.put('corpId', corpID); paramMap.put('corpSecret', secret); //請(qǐng)求微服務(wù)接口地址 HttpRequest.delete(resUrl() + '/api/mobile/QYH') .form(paramMap).execute().body(); return null; } if ('FWH'.equals(type)) { //可以單獨(dú)傳入http參數(shù),這樣參數(shù)會(huì)自動(dòng)做URL編碼,拼接在URL中 HashMap<String, Object> paramMap = new HashMap<>(16); paramMap.put('appId', corpID); paramMap.put('appSecret', secret); //請(qǐng)求微服務(wù)接口地址 HttpRequest.delete(resUrl() + '/api/mobile/FWH') .form(paramMap).execute().body(); return null; } if ('DING'.equals(type)) { HashMap<String, Object> paramMap = new HashMap<>(16); paramMap.put('appKey', corpID); paramMap.put('appSecret', secret); //請(qǐng)求微服務(wù)接口地址 HttpRequest.delete(resUrl() + '/api/mobile/DING') .form(paramMap).execute().body(); return ''; } return ''; } /** * 根據(jù)corpID, secret 換取JSTicket * * @param corpID * @param secret * @return */ public String getJSTicket(String corpID, String secret, String type) { if ('QYH'.equals(type)) { //可以單獨(dú)傳入http參數(shù),這樣參數(shù)會(huì)自動(dòng)做URL編碼,拼接在URL中 HashMap<String, Object> paramMap = new HashMap<>(16); paramMap.put('corpId', corpID); paramMap.put('corpSecret', secret); //請(qǐng)求微服務(wù)接口地址 String result = HttpUtil.get(resUrl() + '/api/mobile/QYH/isJSTicket', paramMap); return result; } if ('FWH'.equals(type)) { //可以單獨(dú)傳入http參數(shù),這樣參數(shù)會(huì)自動(dòng)做URL編碼,拼接在URL中 HashMap<String, Object> paramMap = new HashMap<>(16); paramMap.put('appId', corpID); paramMap.put('appSecret', secret); //請(qǐng)求微服務(wù)接口地址 String result = HttpUtil.get(resUrl() + '/api/mobile/FWH/isJSTicket', paramMap); return result; } if ('DING'.equals(type)) { HashMap<String, Object> paramMap = new HashMap<>(16); paramMap.put('appKey', corpID); paramMap.put('appSecret', secret); //請(qǐng)求微服務(wù)接口地址 String result = HttpUtil.get(resUrl() + '/api/mobile/DING/isJSTicket', paramMap); return result; } return ''; } /** * 獲取數(shù)據(jù)庫(kù)中的url * @return url 地址 */ public String resUrl(){ //獲取url DtwxAgentCfg dtwxAgentCfg = new DtwxAgentCfg(); dtwxAgentCfg.setAppType('wxInterfaceUrl'); dtwxAgentCfg.setConfigKey('RESQUEST_ACS_TOKEN'); DtwxAgentCfg agentCfg = getValidator().selectDataCfg(dtwxAgentCfg); //url=http://localhost:8080 String url = agentCfg.getConfigValue(); return url; }}

總結(jié):bug是搞定了,但是基礎(chǔ)知識(shí)還要補(bǔ),打卡現(xiàn)在是2020/12/16寫(xiě)得博客,那天把這里得知識(shí)補(bǔ)了,在回來(lái)留痕。

以上就是普通類(lèi)注入不進(jìn)spring bean的解決方法的詳細(xì)內(nèi)容,更多關(guān)于普通類(lèi)注入不進(jìn)spring bean的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Spring
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
日韩视频一区二区在线观看| 亚洲日本一区二区三区| 国产午夜三级一区二区三| 国产乱码精品一区二区三| 色狠狠桃花综合| 午夜欧美大尺度福利影院在线看| 国产主播一区| 精品欧美一区二区三区精品久久| 日韩不卡手机在线v区| 国产日韩一区欧美| ●精品国产综合乱码久久久久| 午夜精品一区二区在线观看| 久久久一区二区| 成人激情免费网站| 日韩一区二区三区视频在线| 狠狠色狠狠色综合日日91app| 鲁大师成人一区二区三区| 亚洲欧美激情在线| 亚洲午夜av| 中文字幕制服丝袜一区二区三区| 欧美精品免费观看二区| 久久久久久久久久久黄色| 99久久亚洲一区二区三区青草| 91精品国产综合久久久久久久久久| 久久99精品久久久久久动态图 | 另类av一区二区| 亚洲动漫第一页| 亚洲在线免费| 亚洲成av人**亚洲成av**| 国产精品美女诱惑| 亚洲国产成人av| 久久综合福利| 久久精品国产第一区二区三区| 欧美在线一区二区| 精品在线观看免费| 欧美蜜桃一区二区三区| 国产伦理精品不卡| 日韩一级片在线观看| 国产精品88888| 日韩精品自拍偷拍| 99re在线精品| 欧美国产欧美综合| 影音先锋中文字幕一区| 亚洲黄一区二区三区| 亚洲女优在线| 免费观看久久久4p| 欧美另类变人与禽xxxxx| 成人精品免费网站| 国产偷国产偷亚洲高清人白洁 | 久久婷婷久久| 韩国精品免费视频| 亚洲精品一区二区精华| 欧美精品啪啪| 亚洲影视在线播放| 欧美伊人久久久久久午夜久久久久| 国内偷窥港台综合视频在线播放| 精品播放一区二区| 亚洲成人资源| 日本va欧美va精品| 日韩精品一区二区三区视频在线观看 | 国产综合自拍| 一区二区三区精品视频在线| 久久中文在线| 国产成人av福利| 国产女主播视频一区二区| 夜夜夜久久久| 麻豆成人av在线| 日韩欧美国产午夜精品| 国产精品国产精品| 亚洲v中文字幕| 56国语精品自产拍在线观看| 色综合欧美在线| 亚洲在线成人精品| 欧美日韩亚洲国产综合| 成人午夜免费视频| 国产婷婷色一区二区三区在线| 亚洲激情专区| 极品少妇一区二区三区精品视频| 国产欧美日韩精品在线| 亚洲一区二区在线免费观看| 国产一区视频导航| 国产精品嫩草影院av蜜臀| 美女久久网站| 成人午夜又粗又硬又大| 亚洲欧美偷拍三级| 欧美日韩黄视频| 国内精品国语自产拍在线观看| 蜜芽一区二区三区| 久久久久久久久一| 亚洲在线成人| 国产精品99久久久久久久vr| 一色桃子久久精品亚洲| 欧美色偷偷大香| 欧美女人交a| 麻豆极品一区二区三区| 久久五月婷婷丁香社区| 国产亚洲精品bv在线观看| 韩国成人福利片在线播放| 国产精品伦理一区二区| 欧美三级电影在线看| 国产综合亚洲精品一区二| 美女性感视频久久| 欧美激情一区三区| 欧美在线一区二区| 影院欧美亚洲| 国产精品一区免费在线观看| 亚洲免费在线看| 日韩欧美亚洲国产另类| 亚洲一区二区高清视频| 99麻豆久久久国产精品免费优播| 国产一区91| av一区二区三区在线| 日韩国产精品久久| 国产精品欧美经典| 欧美久久久久久蜜桃| 99精品热6080yy久久| 国产成人在线视频网站| 亚洲一区二区在线免费看| 精品国产一区二区三区四区四| 午夜在线a亚洲v天堂网2018| 97久久久精品综合88久久| 国产视频精品网| 成人久久视频在线观看| 视频一区视频二区中文字幕| 欧美国产一区在线| 91精品国产欧美日韩| 免费永久网站黄欧美| 99久久精品国产毛片| 麻豆成人久久精品二区三区红 | 91论坛在线播放| 国产美女精品在线| 午夜精品视频一区| 欧美激情在线免费观看| 51久久夜色精品国产麻豆| 国产一区美女在线| 亚洲国产精品一区二区久久| 国产视频一区二区在线| 91精品国产综合久久香蕉麻豆| 色久优优欧美色久优优| 国产呦萝稀缺另类资源| 日韩和欧美的一区| 亚洲人成在线观看一区二区| 久久蜜桃av一区二区天堂| 欧美美女视频在线观看| 先锋影音久久| 国产精品a级| 99精品久久久久久| 日本欧美一区二区| 国产精品综合av一区二区国产馆| 欧美日韩精品系列| 免费日韩av片| 国产欧美一区二区精品秋霞影院| 久久精品国产一区二区三区免费看| 国产不卡在线一区| 日本一区二区三区四区在线视频 | 亚洲视频电影在线| 久久精品国产秦先生| 99热这里只有精品8| 亚洲一区欧美激情| 一本大道综合伊人精品热热| 久久精品亚洲麻豆av一区二区| 午夜电影网亚洲视频| 国产欧美亚洲日本| 99riav1国产精品视频| 亚洲国产欧美在线人成| 伊人蜜桃色噜噜激情综合| 中文一区一区三区高中清不卡| 麻豆久久婷婷| 久久99国内精品| 国产亚洲欧美在线| 综合电影一区二区三区| 红桃视频亚洲| 国产一区二区伦理片| 在线视频综合导航| 亚洲国产高清在线| 欧美视频你懂的| 一本久久综合亚洲鲁鲁五月天| 亚洲欧美bt| 久久综合狠狠| 91久久精品一区二区二区| 久久免费黄色| 色就色 综合激情| 在线亚洲高清视频| 在线观看91视频| 欧美色网一区二区| 在线播放欧美女士性生活| 91精品福利在线一区二区三区 | 波多野结衣中文一区| 国产91在线|亚洲| 国产成人av网站| 大尺度一区二区| 97se亚洲国产综合自在线不卡| av动漫一区二区| 欧美精品一区二区三区在线看午夜 | 欧美激情一区二区三区不卡 | 日韩一区二区三区四区| 精品福利一二区| 国产欧美日韩卡一| 一区二区三区中文字幕| 亚洲一区二区三区四区中文字幕|