啟動(dòng)類
包
import org.springframework.scheduling.annotation.EnableAsync;
注解
@EnableAsync
整體
package com.ruoyi;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.scheduling.annotation.EnableAsync;
/**
* 啟動(dòng)程序
*
* @author ruoyi
*/
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@EnableAsync
public class RuoYiApplication
{
public static void main(String[] args)
{
// System.setProperty("spring.devtools.restart.enabled", "false");
SpringApplication.run(RuoYiApplication.class, args);
System.out.println("(????)?? 啟動(dòng)成功 ?(′?`?)? \n");
}
}
異步方法
異步類需要交給Spring管理 @Component
異步方法需要@Async修飾文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-508443.html
package com.ruoyi.common.async;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
@Component
public class SysUserAsync {
@Async
public void JobOne() throws InterruptedException {
System.out.println("開(kāi)始執(zhí)行任務(wù)一");
long l1 = System.currentTimeMillis();
Thread.sleep(2000);
long l2 = System.currentTimeMillis();
System.out.println("任務(wù)一用時(shí)" + (l2 - l1));
}
@Async
public void JobTwo() throws InterruptedException {
System.out.println("開(kāi)始執(zhí)行任務(wù)二");
long l1 = System.currentTimeMillis();
Thread.sleep(2000);
long l2 = System.currentTimeMillis();
System.out.println("任務(wù)二用時(shí)" + (l2 - l1));
}
@Async
public void JobThree() throws InterruptedException {
System.out.println("開(kāi)始執(zhí)行任務(wù)三");
long l1 = System.currentTimeMillis();
Thread.sleep(2000);
long l2 = System.currentTimeMillis();
System.out.println("任務(wù)三用時(shí)" + (l2 - l1));
}
}
測(cè)試
package com.ruoyi.system.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import javax.validation.Validator;
import com.ruoyi.common.async.SysUserAsync;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanValidators;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.domain.SysUserPost;
import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.mapper.SysPostMapper;
import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.SysUserPostMapper;
import com.ruoyi.system.mapper.SysUserRoleMapper;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserService;
/**
* 用戶 業(yè)務(wù)層處理
*
* @author ruoyi
*/
@Service
public class SysUserServiceImpl implements ISysUserService {
private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
@Autowired
private SysUserMapper userMapper;
@Autowired
private SysUserAsync sysUserAsync;
/**
* 根據(jù)條件分頁(yè)查詢用戶列表
*
* @param user 用戶信息
* @return 用戶信息集合信息
*/
@Override
@DataScope(deptAlias = "d", userAlias = "u")
public List<SysUser> selectUserList(SysUser user) throws InterruptedException {
System.out.println("開(kāi)始訪問(wèn)");
long l1 = System.currentTimeMillis();
sysUserAsync.JobOne();
sysUserAsync.JobTwo();
sysUserAsync.JobThree();
long l2 = System.currentTimeMillis();
System.out.println("結(jié)束訪問(wèn),用時(shí)" + (l2 - l1));
return userMapper.selectUserList(user);
}
}
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-508443.html
到了這里,關(guān)于SpringBoot--@Async異步的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!