springboot 相关配置

配置线程池/任务执行器

SpringBoot默认单线程执行,需要多线程异步执行,需要@EnableAsync并设置ThreadPoolTaskExecutor,仅仅开启@EnableAsync 1.4.X版本仍是单线程执行,1.5.X会报错提醒设置线程池!

//可以设置执行任务的线程池的数量。默认是单线程。
@Bean
public ThreadPoolTaskScheduler getDefaultThreadPoolScheduler(){
    ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
    threadPoolTaskScheduler.setPoolSize(2);
    threadPoolTaskScheduler.setThreadNamePrefix("scheduleMoon");
    return threadPoolTaskScheduler;
}
//spingBoot默认单线程执行
@Bean
public ThreadPoolTaskExecutor createThreadPoolTaskExecutor() {
     ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
     threadPoolTaskExecutor.setCorePoolSize(10);
     threadPoolTaskExecutor.setMaxPoolSize(20);
     return threadPoolTaskExecutor;
}
配置跨域

private CorsConfiguration buildConfig() {  
        CorsConfiguration corsConfiguration = new CorsConfiguration();  
        corsConfiguration.addAllowedOrigin("*");  
        corsConfiguration.addAllowedHeader("*");  
        corsConfiguration.addAllowedMethod("*");  
        return corsConfiguration;  
    }  

    /** 
     * 跨域过滤器 
     * @return 
     */  
    @Bean  
    public CorsFilter corsFilter() {  
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();  
        source.registerCorsConfiguration("/**", buildConfig()); // 4  
        return new CorsFilter(source);  
    }

配置文件上传

@Bean 
    public MultipartConfigElement multipartConfigElement() { 
        MultipartConfigFactory factory = new MultipartConfigFactory();
         设置文件大小限制 ,超了,页面会抛出异常信息,这时候就需要进行异常信息的处理了;
        factory.setMaxFileSize("400MB"); //KB,MB
        /// 设置总上传数据总大小
        factory.setMaxRequestSize("400MB"); 
        //Sets the directory location where files will be stored.
        //factory.setLocation("路径地址");
        return factory.createMultipartConfig(); 
    }

配置全局拦截器


@Override
    public void addInterceptors(InterceptorRegistry registry) {
        // addPathPatterns 用于添加拦截规则
        // excludePathPatterns 用户排除拦截
        registry.addInterceptor(new GlobalInterceptor()).addPathPatterns("/**").excludePathPatterns("/common/**");

//      registry.addInterceptor(new MyInterceptor2()).addPathPatterns("/**");
        super.addInterceptors(registry);
    }
监听器

spring application context:

public class ApplicationStartUpListener implements ApplicationListener<ApplicationStartingEvent>{

    @Override
    public void onApplicationEvent(ApplicationStartingEvent event) {
        PropertyUtil.loadAllProperties();
        System.out.println(">>>>>>>>>>>>>>>>>>>>>>ApplicationStartUpListener EXEC");
    }
}

servlet context:

@WebListener
public class MyServletContextListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("ServletContex初始化");
        System.out.println(sce.getServletContext().getServerInfo());
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("ServletContex销毁");
    }

}

请求aop日志切割

@Aspect
@Component
public class LogOrderAspect {
    private static final Logger logger = LoggerFactory.getLogger(LogOrderAspect.class);
    @Resource private LogOrderOperationService logOrderService;

    @Before("@annotation(orderAspect)")
    public void gennerateLog(JoinPoint point, LogOrderAnnotation orderAspect) throws Throwable {
        logger.info(">>>>>>订单操作开始aspect");
        ServletContextUtil context = ServletContextUtil.getContext();
        HttpServletRequest request = context.getRequest();

        LogOrderOperation log = new LogOrderOperation();
        log.setAction(orderAspect.action());
        log.setUserId(LongUtils.parseLong(request.getParameter("userId")));
        Map<String, String[]> params = Maps.newHashMap(request.getParameterMap());
        params.put("url", new String[]{request.getRequestURI()});
        log.setParams(JSON.toJSONString(params));
        log.setCreated(new Date());

        logOrderService.insertEntry(log);
    }

    @After("@annotation(orderAspect)")
    public void endLog(JoinPoint point, LogOrderAnnotation orderAspect) {
        logger.info(">>>>>>订单操作执行完aspect");
    }

    @AfterReturning("@annotation(orderAspect)")
    public void returnLog(JoinPoint point, LogOrderAnnotation orderAspect) {
        logger.info(">>>>>>订单操作执行完aspect,return.................");
    }


}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值