寻求 springboot 测试类会启动 定时器的问题

当我编写里一个每秒执行一次的定时器,然后在运行junit测试的时候,发现我的定时器也在跑。想要在测试时关闭定时器,而正常启动时不用关闭。也不通过注解 @EnableScheduling 来实现。求大神帮助。
定时器 是这样的。

@Scheduled(cron="0/1 * * * * ? ")
    public void generationDayData(){
        ExecutorService executor = this.getExecutor();
        String [] ss=new String[]{"1","2","3","4"};
        for (String s:ss ) {
            executor.submit(()->{
                DayDate da=new DayDate(s,new Date(),new BigDecimal(Math.random()*(100)+0).setScale(2,BigDecimal.ROUND_DOWN),
                        "1","");
                boolean t=ds.insert(da);
                if(t){
                    log.info("insert"+s+" :data"+da.toString());
                }
            });
        }

    }

测试类

@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)

public class Test3 {

目前试了 双启动类,第二个启动类不添加@EnableScheduling

@ComponentScan(excludeFilters = {
        @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = TestScheduled.class),
})

加在测试类
都不生效

先学学怎么用markdown。你这个代码格式,没法看。

先学学怎么用 markdown 。你这个代码格式,没法看。

我改了,大神来给个主意

大神求援助

哦。这下子看懂了。。我一下子也不知道咋整。你要不然用 spring.profiles.active 来处理一下?限制你的定时任务类只在指定的环境下加载。

谢了,我搞定了

@Component
//defalut 不影响默认配置文件运行定时器
@Profile("default")
public class TestScheduled {
    private final  Logger log= LoggerFactory.getLogger(this.getClass());
    @Autowired
    DayDateService ds;
    private static ExecutorService executorService;

    public static synchronized ExecutorService getExecutor(){

        if(executorService==null){
            executorService = Executors.newCachedThreadPool();
        }
        return executorService;
    }

    @Scheduled(cron="0/1 * * * * ? ")
    public void generationDayData(){
        ExecutorService executor = this.getExecutor();
        String [] ss=new String[]{"1","2","3","4"};
        for (String s:ss ) {
            executor.submit(()->{
                DayDate da=new DayDate(s,new Date(),new BigDecimal(Math.random()*(100)+0).setScale(2,BigDecimal.ROUND_DOWN),
                        "1","");
                boolean t=ds.insert(da);
                if(t){
                    log.info("insert"+s+" :data"+da.toString());
                }
            });
        }

    }```
1 个赞