线程里面使用注解---线程里使用注解的正确姿势

Java注解说明书:从正确姿势到防坑指南,让你的代码会说话! Step 1:定义权限注解Step 2:实现AOP切面@Aspect@Componentif (!Step 3:业务层使用@Service现象在Java 5环境下对接口方法使用@Override导致编译失败void run();@Override // Java 5下报错!根因分析Java 5的@Override仅支持类继承,不支持接口实现Java 6+ 才扩展支持接口方法解决方案。 阅读详情

本文来自:http://www.w2bc.com/article/234085


一、写好获取bean的工具类

import java.util.Locale;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

/** 
 * 类名: SpringContextUtil
 * 描述: 获取bean的工具类,可用于在线程里面获取bean
 */
public class SpringContextUtil implements ApplicationContextAware {

    private static ApplicationContext context = null;

    /* (non Javadoc)
     * @Title: setApplicationContext
     * @Description: spring获取bean工具类
     * @param applicationContext
     * @throws BeansException
     * @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext)
     */
    @Override
    public void setApplicationContext(ApplicationContext applicationContext)
            throws BeansException {
        this.context = applicationContext;
    }

    public static <T> T getBean(String beanName){
        return (T) context.getBean(beanName);
    }

    public static String getMessage(String key){
        return context.getMessage(key, null, Locale.getDefault());
    }

}
二、在spring的配置文件里面注册这个工具类,我的是在spring-mybatis.xml,即spring和mybatis的整合配置文件中。

<!-- 注册Spring工具类 -->
<bean id="springContextUtil" class="com.kgzt.idcqzt.pub.SpringContextUtil"></bean>
三、在线程里面获取bean

/*
 * 在线程中是不能直接从容器中获取bean的,
 * 需要另写一个工具类来获取
 * */
KeepAliveService keepAliveService = SpringContextUtil.getBean("keepAliveService");




调度线程池 ScheduledThreadPoolExecutor 的正确使用姿势 项目中经常会遇到一些非分布式的调度任务,需要在未来的某个时刻周期性执行。Timer类, jdk1.3 引入,不推荐它所有任务都是串行执行的,同一时间只能有一个任务在执行,而且前一个任务的延迟或异常都将会影响到之后的任务。Spring 的@Scheduled注解,不是很推荐这种方式底层虽然是用线程池实现,但是有个最大的问题,所有的任务都使用的同一个线程池,可能会导致长周期的任务运行影响短周期任务运行,造成线程池"饥饿",更加推荐的做法是同种类型的任务使用同一个线程池。自定义实现调度任务。 阅读详情

相关推荐

RexUniNLU零样本通用自然语言理解:nlp_deberta_rex-uninlu_chinese-base模型实战解析

本文深入解析了RexUniNLU零样本通用自然语言理解模型(nlp_deberta_rex-uninlu_chinese-base)的实战应用。通过详细的环境配置、模型加载及实战案例,展示了该模型在零样本场景下的强大能力,如实体识别和复杂关系抽取,显著提升NLP任务效率。

weixin_29088655的博客 251

SpringBoot中使用多线程问题总结

此次项目中使用的多线程批量处理数据,使用过程中遇到了以下几个问题: 1、线程类没有被Spring容器托管,只是一个普通的类,在线程类中需要使用@Value注解以获得yaml配置文件中的信息,直接使用这种注解方式是获取不到信息的,如果需要使用@Value这种注解获取值,则类的本身需要被Spring容器进行托管(但是线程类使用@Component注解会有点问题) /** * orgbuildUrl */ @Value("${paas.orgbuild-url}") pr

qq_42005922的博客 2048

SIwave仿真手册——软件基础(一)

最近在学习SIWAVE,在这里将自己的笔记整理一下,做一个专题。希望对大家有帮助,这个会持续更新的。仅限于软件操作学习,不涉及信号完整性的讨论。

luohuo9844的博客 4万+

线程类中不能使用@Autowired注解

解决方法  private AlmPlanToDBService almPlanToDBService = VisualContext.getBean(AlmPlanToDBService.class); or  private AlmPlanToDBService almPlanToDBService = VisualContext.getBean("almPlanToDBServic

weixin_38207457的博客 5279

如何理解下一代ERP 即:华为MetaERP

如何理解下一代ERP 即:华为MetaERP 华为的 MetaERP核心定位: 华为MetaERP是华为公司自主研发的下一代企业核心商业管理系统。它不仅仅是一个传统的ERP(企业资源规划)系统,更是一个面向未来、基于云原生、AI驱动、安全可信的企业核心管理平台。

金牌架构师 1142

【HALCON 25.11 + C#】 01:2026年工业机器视觉实战详解(从入门到精通)

2026年机器视觉市场规模将突破230亿美元,HALCON 25.11的革命性更新与C#的工业集成优势形成黄金技术栈。本文作为付费专栏开篇序章,聚焦“为什么现在必须学25.11+C#”的核心问题,通过真实工业案例、五项核心技术突破、联合编程架构优势及30篇系统学习路线,全方位论证其投资价值。读者将掌握持续学习、深度OCR加速等关键技能,获得可直接上产线的工业级代码资产与架构设计思维,解决柔性生产、边缘部署等核心痛点,成为具备技术溢价的机器视觉工程师。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1227

【多线程】@Async注解和线程池

快速了解@Async的使用

weixin_45325628的博客 7880

华为OD新系统机试真题 - 操作历史管理器的撤销/重做能力

华为OD机试新系统真题【操作历史管理器的撤销/重做能力】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【操作历史管理器的撤销/重做能力】

qq_45776114的博客 865

Springboot使用@Async多线程注解

本文主要讲解 @Async 的基本使用及和 AsyncConfigurer 接口的关系,对于线程池的作用、线程池的参数(核心线程、最大线程......)及运行原理,这里不再过多赘述。

李小德不晓得的博客 1万+

【PSINS工具箱】159联邦滤波器代码优化与注释、运行结果、文字性解释。15维状态量、9维观测量,联邦滤波与集中式滤波对比。完整代码可订阅后查看

基于工具箱的联邦滤波代码,15维状态量、9为观测量

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 486

嵌入式Modbus协议面试题及参考答案

Modbus 协议采用主从模式进行通信,这种模式定义明确,便于在工业环境中实现设备之间的有序数据交互。在主从模式中,存在一个主站(Master)和多个从站(Slave)。主站通常是工业控制系统中的上位机,如 PLC、工控机等,它负责发起通信请求,控制整个通信过程。从站则是各种现场设备,如传感器、执行器等,它们接收主站的请求,并根据请求进行相应的操作,然后将结果返回给主站。主站的主要功能包括:发起数据读取或写入请求、控制通信的时序和流程、处理从站返回的数据。

大模型大数据攻城狮的专栏 2044

**线程里面使用注解(线程里面spring使用注解无法注入值的解决办法)**

今天在使用SSM框架(spring/springmvc/mybatis)进行开发时,自己也是第一次使用,所以遇到的问题也比较多啊·········我今天是在一条线程里面使用注解时,发现一直报空指针异常,仔细看了一下发现使用注解时并没有注入值,所以才一直空指针异常····· 再仔细对比一下之前我自学时的代码,发现调用流程也没有错,搞了半天也没找出什么原因······最后想了一下,我是启动服务器的时候

Awsmsniper的博客 1万+

Ollama教程——模型:如何将模型高效导入到ollama框架

本教程详细介绍了如何将GGUF、PyTorch和Safetensors格式的模型导入到ollama框架中。通过一系列步骤,从环境准备、模型转换和量化,到最终的模型创建和运行,我们为开发者提供了一个清晰的指南。此外,我们还探讨了如何发布模型到ollama平台,使得模型可以被更广泛地分享和应用。ollama框架提供了一个灵活、高效的解决方案,帮助开发者在各种环境中部署和运行机器学习模型。无论您是想将现有模型快速部署到生产环境,还是希望探索新的模型架构,ollama都能为您提供所需的工具和资源。

walkskyer的博客 1万+

Spring使用异步注解@Async正确姿势

最近项目中用到了该注解,对其查找线程池的顺序比较困惑,查阅资料简单整理在此。 注意的点 * 必须用在public方法上 * 在某异步方法的同一个类的其他方法调用此异步方法无效 Spring的异步配置 要激活Spring的异步行为,可以为配置类添加@EnableAsync注解。 @EnableAsync @SpringBootApplication public class App...

悟鸣的技术博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

@Async正确使用姿势

@Async注解可以使被修饰的方法成为异步方法,简单且方便,这篇文章将教你正确去使用它,避免默认线程池所引发的生产事故

做从未做的事,叫成长;做不愿做的事,叫改变;做不敢做的事,叫突破。 4540

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

JUC 线程池正确使用姿势

线程池(Java中有哪些方法获取多线程) 前言 获取多线程的方法,我们都知道有三种,还有一种是实现Callable接口 实现Runnable接口 实现Callable接口 实例化Thread类 使用线程池获取 Callable接口 Callable接口,是一种让线程执行完成后,能够返回结果的 在说到Callable接口的时候,我们不得不提到Runnable接口 /** * 实现Runnable接口 */ class MyThread implements Runnable { @Overrid

weixin_39304711的博客 328

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Spring Data Redis事务的正确使用姿势

之前使用Spring Data Redis的时候,由于使用不当,导致redis连接不释放的血案。现在来总结下Spring Data Redis事务的两种使用方式。 1、execute(SessionCallback session)方法 我们都知道Redis的事务的命令主要有multi、exec、discard和watch,在RedisTemplate中也是对应的有这几种方法 public i...

hxm_Code的专栏 2533

Spring使用异步注解@Async正确姿势【转存】

最近项目中用到了该注解,对其查找线程池的顺序比较困惑,查阅资料简单整理在此。 注意的点 *1、必须用在public方法上 *2、 在某异步方法的同一个类的其他方法调用此异步方法无效 Spring的异步配置 要激活Spring的异步行为,可以为配置类添加@EnableAsync注解。 @EnableAsync @SpringBootApplication public class Application { public static void main(String[] args) {...

艾利克斯冰的博客 355

Spring Boot中异步调用的正确使用姿势(详解)

文章目录1. 概述1.1 简介1.2 @Async失效场景2. 同步与异步调用示例3. @Async异步调用使用详解及优化3.1 当前使用分析3.2 自定义线程池执行异步方法3.3 全局处理异步方法中的异常4. 异步请求与异步调用的区别5. 最后一些思考 1. 概述 1.1 简介 介绍: 异步请求的处理。除了异步请求,一般上我们用的比较多的应该是异步调用。通常在开发过程中,会遇到一个方法是和实际业务无关的,没有紧密性的。比如记录日志信息等业务。这个时候正常就是启一个新线程去做一些业务处理,让主线程异步的

Gang-bb的博客 1万+

springboot整合netty的正确姿势

chatGPT大神帮助我整理思路

6044

Android Model正确使用姿势——AutoValue

Android Model正确使用姿势——AutoValueAndroid Model正确使用姿势AutoValue 前言 简介 简单使用 ImmutableValue types 高级使用 Nullable Gson序列化 Serializable Parcelable Retrofit和Rxjava结合使用 相关插件 RoboPOJOGenerator AutoValue plugin 原理介

流水不腐小夏 9523

杂记之@Asyns异步调用的正确打开姿势

环境: spring;spring boot 摘要说明: 项目开发过程中往往会出现需异步调用的情况,以便提高系统的响应速度或者提高部分业务的处理时间; 但异步调用需要根据系统的承受能力做好相关配置,而不是放任随意使用; 如系统批跑5000条数据做相关业务处理;若循环异步处理,则很可能将数据库给压垮; 所以这里需要控制系统异步线程池的大小及线程池的满额执行策略; 步骤: 1.@Asy...

叶落自飘零的博客 2187

原来这才是Spring Boot使用AOP的正确姿势

可能有人会问我为什么愿意去花时间帮助大家实现求职梦想,因为我一直坚信时间是可以复制的。我牺牲了自己的大概十个小时写了这片文章,换来的是成千上万的求职者节约几天甚至几周时间浪费在无用的资源上。上面的这些(算法与数据结构)+(Java多线程学习手册)+(计算机网络顶级教程)等学习资源《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!链图片转存中…(img-swaZfLu0-1712408378427)]

2301_79655496的博客 994

Lombok正确使用姿势,你真的了解了吗?

是一个java库,它可以自动插入编辑器和构建工具,通过Lombok我们不需要再在类上编写setter/getter、equals、try/catch、无参构造器、全参构造器等方法。

BASK2311的博客 342

深入解锁 @Async 的魔力!使用与避坑指南

Async 的确是 Java 异步编程的得力工具,尤其适合处理那些不影响主流程的耗时操作,比如发邮件、处理日志等。然而,在享受它带来的异步快感时,记得小心避开它的几个坑,避免调试时“踩雷”。在合理的场景下,用对 @Async,你的应用会变得“风驰电掣”,但别忘了随时关注它的“背后行为”,灵活掌握线程池、事务等细节。这样一来,你才能既用得安心,又用得愉快!

龚小帅的博客 1925
上一篇: bootstrap ajax - (se7en框架)
下一篇: PLSQL 笔记
「已注销」
博客等级 码龄10年 15粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值