package com.lyms.etl;
import com.lyms.etl.datasource.DynamicDataSourceRegister;
import com.lyms.etl.service.IInvokeHandler;
import com.lyms.etl.util.AopTargetUtil;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Import;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import java.util.Date;
import java.util.Set;
/**
* @Author: litao
* @Date: 2017/5/2 0002 20:29
* @Version: V1.0
*/
@SpringBootApplication
@EnableTransactionManagement
@Import({ DynamicDataSourceRegister.class })
@MapperScan("com.lyms.etl.dao")
public class ApplicationRunner implements CommandLineRunner{
private static final Logger log = LoggerFactory.getLogger(ApplicationRunner.class);
@Autowired
Set<IInvokeHandler> invokeHandlers;
public static void main(String[] args) {
SpringApplication.run(ApplicationRunner.class, args);
}
@Override
public void run(String... strings) throws Exception {
for (IInvokeHandler handler : invokeHandlers) {
Date start = new Date();
log.info("start ................ {}", AopTargetUtil.getTarget(handler).getClass().getName());
handler.invoke();
log.info("end ................ used: {} ms", System.currentTimeMillis() - start.getTime());
}
}
}