spring boot 使用缓存

1.启动类中使用 @EnableCaching

@Configuration
@EnableCaching
public class AggregationProvider {

    @SuppressWarnings("deprecation")
    public static void main(String[] args) throws IOException {
        System.setProperty("service.name", "albiz");

        // 新建并设置启动环境
        SpringApplication app = new SpringApplication(AggregationProvider.class);
        app.setWebEnvironment(false);

        // 运行
        app.run(args);
        com.alibaba.dubbo.container.Main.main(args);
    }
}

2.连接池



import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;




@Configuration
public class ExecutorPoolConfig {
	

	    private static final Logger logger = LoggerFactory.getLogger(ExecutorPoolConfig.class);
	    
	    @Value("${async.executor.thread.core_pool_size}")
	    private int corePoolSize;
	    @Value("${async.executor.thread.max_pool_size}")
	    private int maxPoolSize;
	    @Value("${async.executor.thread.queue_capacity}")
	    private int queueCapacity;
	    @Value("${async.executor.thread.name.prefix}")
	    private String namePrefix;

	    @Bean(name = "asyncServiceExecutor")
	    public Executor asyncServiceExecutor() {
	        logger.info("start asyncServiceExecutor");
	        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
	        //配置核心线程数
	        executor.setCorePoolSize(corePoolSize);
	        //配置最大线程数
	        executor.setMaxPoolSize(maxPoolSize);
	        //配置队列大小
	        executor.setQueueCapacity(queueCapacity);
	        //配置线程池中的线程的名称前缀
	        executor.setThreadNamePrefix(namePrefix);

	        // rejection-policy:当pool已经达到max size的时候,如何处理新任务
	        // CALLER_RUNS:不在新线程中执行任务,而是有调用者所在的线程来执行
	        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
	        //执行初始化
	        executor.initialize();
	        return executor;
	    }
	
}

配置

#线程池
async.executor.thread.core_pool_size=5
async.executor.thread.max_pool_size=10
async.executor.thread.queue_capacity=1000
async.executor.thread.name.prefix=ASYNC-UEP-

 

3.在实际的方法中使用增加 @Cacheable 注解,

	@Override
	@Cacheable(cacheNames ="getModuleList",key="#loginUser.getUserID().concat('-').concat(#brand)",condition="#brand!=null && #deptOrgid==null")
	public ListResult<Map<String, Object>> getModuleList(UserEntity loginUser, String brand, String deptOrgid,String dept) {
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值