构造函数注入指定bean名称

这篇具有很好参考价值的文章主要介绍了构造函数注入指定bean名称。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

配置类

@Configuration
public class ThreadPoolTaskExecutorConfig {

    @Bean
    public ThreadPoolTaskScheduler syncScheduler() {
        ThreadPoolTaskScheduler syncScheduler = new ThreadPoolTaskScheduler();
        syncScheduler.setPoolSize(10);
        syncScheduler.setThreadGroupName("syncTg");
        syncScheduler.setThreadNamePrefix("syncThread-");
        syncScheduler.initialize();
        return syncScheduler;
    }

    @Bean(name ="syncScheduler2")
    public ThreadPoolTaskScheduler syncScheduler2() {
        ThreadPoolTaskScheduler syncScheduler = new ThreadPoolTaskScheduler();
        syncScheduler.setPoolSize(100);
        syncScheduler.setThreadGroupName("syncTg");
        syncScheduler.setThreadNamePrefix("syncThread-");
        syncScheduler.initialize();
        return syncScheduler;
    }
}

测试类

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;

//@RunWith(SpringRunner.class)
@SpringBootTest
public class DynamicTaskServiceTest {
    private final ThreadPoolTaskScheduler syncScheduler;

    @Autowired
    public DynamicTaskServiceTest(@Qualifier("syncScheduler2") ThreadPoolTaskScheduler syncScheduler) {
        this.syncScheduler = syncScheduler;
    }

    @Test
    public void test() {
        for (int i = 0; i < 500; i++) {
            syncScheduler.schedule(testRunnable(), getNowDate());
        }
        try {
            // 主线程延迟,不然会导致子线程被打断
            Thread.sleep(10000000);
        } catch (InterruptedException e) {
            e.printStackTrace();
            Thread.currentThread().interrupt();
        }
    }

    public Runnable testRunnable() {
        return () -> {
            System.out.println(Thread.currentThread().getName() + "线程开始");
            try {
                // 每次循环都要等待10毫秒,模拟阻塞
                Thread.sleep(100000);
            } catch (InterruptedException e) {
                e.printStackTrace();
                Thread.currentThread().interrupt();
            }
            System.out.println(Thread.currentThread().getName() + "线程结束");
        };
    }
}

如图执行结果,通过@Qualifier指定调用syncScheduler2线程池100个
构造函数注入指定bean名称,java文章来源地址https://www.toymoban.com/news/detail-706954.html

到了这里,关于构造函数注入指定bean名称的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java编程教程】详解Java 构造函数

    在Java中,构造函数是类似于方法的代码块。它在创建类的实例时被调用。在调用构造函数时,对象的内存是在内存中分配的。 它是一种特殊类型的方法,用于初始化对象。 每次使用 new() 创建对象时,至少会调用一个构造函数。 如果类中没有可用的构造函数,它会调

    2024年02月06日
    浏览(41)
  • java中构造函数在继承中的调用顺序是什么?

    在Java中,当创建子类对象时,构造函数的调用顺序遵循以下规则: 父类的静态变量和静态初始化块 :首先,Java会加载父类,并执行父类中的静态变量初始化和静态初始化块(静态代码块)。这只会在类首次被加载到JVM时执行一次。 子类的静态变量和静态初始化块 :接下来

    2024年04月10日
    浏览(41)
  • Java8函数式接口, 方法引用, 构造器引用, 数组引用

    只包含一个抽象方法的接口,称为函数式接口。 你可以通过Lambda表达式来创建该接口的对象。(若Lambda表达式抛出一个受检异常(即:非运行时异常),那么该异常需要在目标接口的抽象方法上进行声明 我们可以在一个接口上使用 @Functionallnterface 注解,这样做可以检查它是

    2024年02月05日
    浏览(55)
  • 【Java】反射简介,利用反射打印一个类当中的构造函数,方法和属性。

       📝个人主页:哈__ 期待您的关注  我想要通过反射来打印如下效果的类信息。 Student类如下代码所示。  你是否有思路?如果你不了解反射的话,我来给大家简单的介绍一下反射的使用方法。 1、Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操

    2024年04月10日
    浏览(44)
  • java eazyexcel 实现excel的动态多级联动下拉列表(1)使用名称管理器+INDIRECT函数

    将数据源放到一个新建的隐藏的sheet中 将选项的子选项的对应字典设置到名称管理器中(名称是当前选项的内容,值是他对应的子菜单的单元格范围,在1里面的sheet中) 子菜单的数据根据INDIRECT函数去左边那个单元格获取内容,根据内容去名称管理器中获取字典的key,也就是

    2024年01月22日
    浏览(48)
  • spring注册bean和注入bean的方法

    一个对象加入到Spring容器中。 XML配置方式 @Component注解@Controler、@Service、@Repository + @ComponentScan包扫描方式 @Configuration + @Bean方式 @Import方式 @Import + ImportSelector方式 @Import + ImportBeanDefinitionRegistrar方式 FactoryBean方式 BeanDefinitionRegistryPostProcessor方式 BeanFactoryPostProcessor方式 参考:添

    2024年02月15日
    浏览(36)
  • Spring:依赖注入的方式(setter注入、构造器注入、自动装配、集合注入)

    依赖注入的方式有setter注入、构造器注入、自动装配、集合注入 首先,Maven项目pom.xml依赖包如下: pom.xml 【注】:上述除spring依赖包之外其他三个依赖包用于测试使用。 1. setter注入 先说明一下,这里有的文件为Book2Dao(接口)、Book2DaoImpl(Book2Dao接口实现类)、Book2Service(接口)、

    2024年02月02日
    浏览(40)
  • quarkus依赖注入之三:用注解选择注入bean

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是《quarkus依赖注入》系列的第三篇,前文咱们掌握了创建bean的几种方式,本篇趁热打铁,学习一个与创建bean有关的重要知识点:一个接口如果有多个实现类时,bean实例应该如何选择其中的一个

    2024年02月14日
    浏览(44)
  • quarkus依赖注入之四:选择注入bean的高级手段

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是《quarkus依赖注入》系列的第四篇,在应用中,一个接口有多个实现是很常见的,那么依赖注入时,如果类型是接口,如何准确选择实现呢?前文介绍了五种注解,用于通过配置项、profile等手

    2024年02月14日
    浏览(38)
  • Spring5学习随笔-Set注入详解和构造注入

    学习视频:【孙哥说Spring5:从设计模式到基本应用到应用级底层分析,一次深入浅出的Spring全探索。学不会Spring?只因你未遇见孙哥】 通过Spring工厂及配置文件,为所创建对象的成员变量赋值 “通过编码的方式,为成员遍历进行赋值,存在耦合” 类为成员变量提供set方法

    2024年02月05日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包