技术标签: java
在多线程时使用@Autowired总是获取不到bean,原因是:new thread不在spring容器中,也就无法获得spring中的bean对象。
解决方法:手动获取
package com.test.configs;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class BeanContext implements ApplicationContextAware {
private static ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
BeanContext.applicationContext = applicationContext;
}
public static ApplicationContext getApplicationContext(){
return applicationContext;
}
@SuppressWarnings("unchecked")
public static <T> T getBean(String name) throws BeansException {
return (T)applicationContext.getBean(name);
}
public static <T> T getBean(Class<T> clz) throws BeansException {
return (T)applicationContext.getBean(clz);
}
}
创建thread
package com.test.handler; import com.test.configs.BeanContext; import com.test.service.TestService; import com.test.model.User; /** * created by huguoju on 2017/11/13. */ public class TestHandler implements Runnable { private User user; private TestService testService; @Override public void run() { this.testService= BeanContext.getApplicationContext().getBean(TestService.class); User user=testService.queryUserById(11); } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }
在其他service里调用
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("upFinancial-pool-%d").build(); ExecutorService pool = new ThreadPoolExecutor(corePoolSize, maxPoolSize, 6000L, TimeUnit.MILLISECONDS, new LinkedBlockingDeque<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); UpFinancialContractHandler handler=new UpFinancialContractHandler(); handler.setUser(user); pool.execute(handler);
文章浏览阅读554次。Q.想利用JS中的move函数实现小图的斜线下移,但是明明代码几乎一样,left的移动可以实现,top却怎么也动不了台球桌*{padding:0;margin:0;}div{background:url(../PICTURE/table.JPG) no-repeat;height:260px;width:465px;}#ball{}function init(){var timer = setIn..._js函数设置元素的top left值后没有发生位置变化
文章浏览阅读94次。2019独角兽企业重金招聘Python工程师标准>>> ..._安卓第三方ui组件
文章浏览阅读1.6k次。计算机二级C语言强化习题题及答案2017练习做多了自然会形成自己的做题方法和速度,为此,今天百分网小编为大家整理了以下2017计算机二级C语言强化习题题及答案,希望对你的学习有帮助!强化习题题一1: 第1题第请编写函数fun,该函数的功能使:统计各年龄段的人数。N个年龄**调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[..._c语言题目:请编写函数fun,该函数的功能是:统计各年龄段的人年龄
文章浏览阅读541次。由于谷歌对华为的封锁,终止了与华为的业务往来。华为将会在年内或者明年,推出自家的操作系统“华为OS打通了手机、电脑、平板、电视、可穿戴设备,统一成一个操作系统,并且兼容所有的安卓应用和web应用”,华为OS有望成为下一个IOS吗?下文具体说一说。华为“鸿蒙”操作系统目前,网上可查的华为操作系统是前几天爆出的一张PPT,显示了华为早在2012年就开始布局自家的操作系统,始终保持了低调的姿..._2001年华为操作系统
文章浏览阅读1.6w次。源码中位置看起来是在一个mac80211的包里面openwrt/trunk/package/mac80211/files/lib/wifi/mac80211.sh修改关闭wifi,修改热点名实践上更改上面的内容之后并没有让wifi开启,根本原因是不同的平台这个位置是不一定的(参考https://downloads.openwrt.org/kamikaze_openwrt默认开启wifi教程
文章浏览阅读102次。原文:ASP.NET Core 2.2 基础知识(七) 选项模式承接上一篇 配置,选项模式是专门用类来表示相关配置的服务.基本选项配置新建一个选项类,该类必须是包含无参数的构造函数的非抽象类. public class MyOptions { public MyOptions() { Id = 1;..._.net core 设计点击按钮显示两个选项
文章浏览阅读174次。很多站长为了寻觅一个满意的域名费尽心思,特别是发现自己想要的域名快要过期时,不知道什么时间可以再注册。下面分享域名到期后多长时间可以再注册机如何查询域名过期时间的方法和技巧。步骤/方法一、国际域名过期65–75天后ICANN会删除,删除之后可以立即注册。 国际域名COM NET ORG大约域名从到期到删除的时间为:30+30+5=65天,精确的删除时间网上也是众说不一,有时是75天,...
文章浏览阅读76次。章节列表:http://www.cnblogs.com/dflying/archive/2007/05/18/751741.html 在最近的一年以及今后的三五年内,我们有理由相信Web应用程序将受到更多开发者和用户的青睐。作为领路人Google的一系列基于Web的产品完全地颠覆了传统的网页概念,让用户甚至不敢相信基于浏览器的程序竟能实现如此强大的功能。浏览器这座宝库在沉睡多年之后终于被一...
文章浏览阅读251次。浅析用 js 解析 xml 的方法由于项目上需要解析 xml,于是各种百度,然后自己总结了下各个主流浏览器解析 xml 的方法,只能是很浅显的知道他的用法,但是还没有深层次的研究。装 X - 建立自己的斗图网站库之前加过一个斗图群,看到很多经典的表情,然后就收藏到了 QQ, 迫于本屌丝开不起某 Q 会员,就只能收藏到本地,无法在其他..._javascript精编语言
文章浏览阅读411次。Create by jsliang on 2019-3-7 22:26:08Recently revised in 2019-3-10 18:28:53Hello 小伙伴们,如果觉得本文还不错,记得给 jsliang 的文档库点个 star , 你们的 star 是我学习折腾的动力!GitHub 地址并不是只有特定的季节才能跑路,只因为人跑得多了,这条路就定下来了。金三银四跑路季,js..._cata测评 开发岗位
文章浏览阅读78次。设备组成Etest_CPS系统主要由硬件部分与软件部分组成。硬件部分由PCI机箱、PCI控制器以及各种PCI接口板卡组成。软件部分由测试设计软件模块、测试执行服务软件模块、测试执行客户端软件模块、设备资源管理软件模块等主要软件模块以及曲线数据生成、CRC插件生成与诊断、测试数据记录与查看、应用协议生成工具、应用协议模板管理、测试报告生成等系列工具组成。各模块主要功能(1)硬件部分Etest硬件部分采用标准的机柜形式,主机采用PCI工业控制计算机,各类接口板块采用PCI总线的接口板卡。主要硬件部分的指_机电管理计算机
文章浏览阅读121次。A:选出你想具有的人格,然后进行自我暗示。想象自己已经具备了这些优秀的品质。然后对自己讲:我已经是这样一个人了。那么不久你会发现自己身上出了你所羡慕的美德。B:用自制力控制住自己,每天多次提醒自己,并抓住每个表现的机会,把它展现出来。C:找到一些人,发现他们的长处并赞美他们,但切记不要虚伪、奉承,而是真诚热情的,这将证你养成发现别人美德的习惯,从而你将获得自尊及来自他人的感激。“吸引法则”..._培养和谐的个性和自尊的品格 博客