spring带bean和config如何通过main启动测试

 更新时间:2023年07月20日 08:45:40   作者:多来哈米  
这篇文章主要介绍了spring带bean和config,通过main启动测试,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

main方法:

package com.xxx.tmp;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class Main {
    public static void main(final String[] args) {
        final AnnotationConfigApplicationContext applicationContext =
                new AnnotationConfigApplicationContext(SyncService.class);
        final SyncService bean = applicationContext.getBean(SyncService.class);
//        final SyncService bean = SpringContextHolder.getBean(SyncService.class);
        for (int i = 0; i < 100; i++) {
            bean.test(i);
        }
    }
}

service方法:

package com.xxx.tmp;
import org.springframework.stereotype.Component;
@Component
public class SyncService {
    //    @Async
    public void test(final int i) {
        System.out.println(Thread.currentThread().getName() + "——" + i);
    }
}

配置:

package com.xxx.tmp;
import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.AsyncConfigurer;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.lang.reflect.Method;
import java.util.concurrent.Executor;
@Configuration
@EnableAsync
@ComponentScan("com.xxx.tmp")
public class AsyncConfig implements AsyncConfigurer {
    @Override
    public Executor getAsyncExecutor() {
        final ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
        threadPoolTaskExecutor.setCorePoolSize(10);
        threadPoolTaskExecutor.setMaxPoolSize(50);
        threadPoolTaskExecutor.setQueueCapacity(50);
        threadPoolTaskExecutor.setKeepAliveSeconds(1);
        threadPoolTaskExecutor.initialize();
        return threadPoolTaskExecutor;
    }
    @Override
    public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
        return new AsyncUncaughtExceptionHandler() {
            @Override
            public void handleUncaughtException(final Throwable throwable, final Method method, final Object... objects) {
                System.out.println("出现异常啦~~~~~~");
            }
        };
    }
}

就可以真实启动了,无须通过test去测试

到此这篇关于spring带bean和config通过main启动测试的文章就介绍到这了,更多相关spring main启动测试内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java实现超市商品库存管理平台

    java实现超市商品库存管理平台

    这篇文章主要为大家详细介绍了java实现超市商品库存管理平台,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Spring根据XML配置文件注入属性的方法

    Spring根据XML配置文件注入属性的方法

    下面小编就为大家带来一篇Spring根据XML配置文件注入属性的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 最新版Eclipse安装、配置图文教程详解

    最新版Eclipse安装、配置图文教程详解

    这篇文章主要介绍了新版Eclipse安装、配置,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 解析Java按值传递还是按引用传递

    解析Java按值传递还是按引用传递

    这篇文章主要介绍了解析Java按值传递还是按引用传递,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Spring Boot文件上传简单实例代码

    Spring Boot文件上传简单实例代码

    在本篇文章里小编给大家分享的是关于Spring Boot 文件上传简易教程以及相关知识点,需要的朋友们参考下。
    2019-08-08
  • Java包含抽象方法的枚举类示例

    Java包含抽象方法的枚举类示例

    这篇文章主要介绍了Java包含抽象方法的枚举类,结合实例形式分析了Java包含抽象方法的枚举类实现方法与相关操作技巧,需要的朋友可以参考下
    2019-08-08
  • Java中使用RediSearch实现高效的数据检索功能

    Java中使用RediSearch实现高效的数据检索功能

    RediSearch是一款构建在Redis上的搜索引擎,它为Redis数据库提供了全文搜索、排序、过滤和聚合等高级查询功能,本文将介绍如何在Java应用中集成并使用RediSearch,以实现高效的数据检索功能,感兴趣的朋友跟着小编一起来看看吧
    2024-05-05
  • Java接口的本质解析

    Java接口的本质解析

    Java接口是初学者必须经历的基础,但初学之时肯定不会完全懂,温故而知新本篇文章就带你重拾接口全面掌握
    2022-03-03
  • SpringBoot使用Guava实现日志脱敏的示例代码

    SpringBoot使用Guava实现日志脱敏的示例代码

    本文主要介绍了SpringBoot使用Guava实现日志脱敏的示例代码,使用Guava中的Strings、Maps和CharMatcher类来进行日志脱敏,保护敏感数据的安全,感兴趣的可以了解一下
    2024-01-01
  • Java中synchronized锁的深入理解

    Java中synchronized锁的深入理解

    这篇本文主要对Java中synchronized锁进行深入理解,文中通过synchronized的优化,synchronized的实现原理及synchronized的升级过程来介绍Java中synchronized锁,感兴趣的同学可以跟着小编一起来学习
    2023-05-05

最新评论