色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

JAVA解決在@autowired,@Resource注入為null的情況

瀏覽:83日期:2022-08-23 09:08:34

使用SpringMVC或者SSH過程中,有時可能會遇到這么一個問題。就是在一個普通的JAVA類(不是controller也不是action類)中無法注入在spring配置文件中配置的bean。

比如你在一個普通java類想調(diào)用某個在spring中配置的service,你會發(fā)現(xiàn)不管你用@Resource還是@Autowired注解都無法注入,對象始終是null。

那是因為一般普通的Java類沒有被spring代理,自然無法通過spring注入相關(guān)的對象。難道這樣就不能調(diào)用了嗎?這里提供下面一個類來解決這個問題:

SpringContextUtil

package com.im.utils; import org.springframework.beans.BeansException;import org.springframework.beans.factory.NoSuchBeanDefinitionException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware; /** * 這個類是為了解決在普通類調(diào)用service的問題 * * @ClassName SpringContextUtil * @Description * @author kokjuis [email protected] * @date 2016-6-12 * @content * */public class SpringContextUtil implements ApplicationContextAware {private static ApplicationContext applicationContext; // Spring應(yīng)用上下文 // 下面的這個方法上加了@Override注解,原因是繼承ApplicationContextAware接口是必須實現(xiàn)的方法@Overridepublic void setApplicationContext(ApplicationContext applicationContext)throws BeansException {SpringContextUtil.applicationContext = applicationContext;} public static ApplicationContext getApplicationContext() {return applicationContext;} public static Object getBean(String name) throws BeansException {return applicationContext.getBean(name);} public static Object getBean(String name, Class requiredType)throws BeansException { return applicationContext.getBean(name, requiredType);} public static boolean containsBean(String name) {return applicationContext.containsBean(name);} public static boolean isSingleton(String name)throws NoSuchBeanDefinitionException {return applicationContext.isSingleton(name);} public static Class getType(String name)throws NoSuchBeanDefinitionException {return applicationContext.getType(name);} public static String[] getAliases(String name)throws NoSuchBeanDefinitionException {return applicationContext.getAliases(name);}}

然后在spring配置文件中配置一下這個類:

<?xml version='1.0' encoding='UTF-8'?><beans xmlns='http://www.springframework.org/schema/beans' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:tx='http://www.springframework.org/schema/tx' xmlns:aop='http://www.springframework.org/schema/aop' xmlns:task='http://www.springframework.org/schema/task' xmlns:cache='http://www.springframework.org/schema/cache' xsi:schemaLocation='http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.3.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd'> <!--配置spring工具類 --> <bean scope='singleton'></bean> </beans>

然后通過這個類提供的方法就能正常的獲取在spring中托管的bean了,使用很簡單:

/** * 獲取spring托管的redis連接池 */private JedisPool jedisPool = (JedisPool) SpringContextUtil.getBean('jedisPool');

補(bǔ)充知識:解決Spring中為靜態(tài)static的@Resource自動注入失敗的問題

在寫一個單例模塊時,在初始化對象時需要注入靜態(tài)的參數(shù),導(dǎo)致spring 暴出

@Resource annotation is not supported on static fields

可以通過將@Resource寫在set方法上,并去除static

以上這篇JAVA解決在@autowired,@Resource注入為null的情況就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
主站蜘蛛池模板: 国产成人精品一区二三区 | 日日噜噜噜夜夜爽爽狠狠69 | 成年人视频在线免费看 | 好看毛片 | 亚洲精品欧洲一区二区三区 | 一区二区三区欧美日韩国产 | 国产精品亚洲欧美云霸高清 | 欧美成人午夜不卡在线视频 | av在线天堂网 | 成人免费一级在线播放 | 欧美日韩视频一区二区在线观看 | 日韩美女一区 | 欧美日韩一区二区三区视视频 | 国产盗摄一区二区三区 | 免费欧洲毛片a级视频无风险 | 国产精品7m凸凹视频分类大全 | 大桥未久在线精品视频在线 | 免费人成在线观看网站 | 国产精品亚欧美一区二区三区 | 99精品视频在线观看re | 手机在线看片国产日韩生活片 | 国产亚洲人成网站观看 | 97在线视频观看 | 国产亚洲精品久久麻豆 | 毛片手机在线 | 久久欧美精品欧美久久欧美 | 日本一级毛片免费播放 | 精品国产免费久久久久久 | 草草影院www色欧美极品 | 日本特黄a级高清免费酷网 日本特黄特色 | 免费视频一区二区 | 亚洲综合a | 俄罗斯一级成人毛片 | 精品国产一区二区三区不卡在线 | 久久亚洲综合中文字幕 | 欧美成人久久久免费播放 | 可以免费观看欧美一级毛片 | 深夜在线观看大尺度 | 国内国语一级毛片在线视频 | chinese情侣真实自拍 | 久久青草网站 |