spring boot-任务

spring boot-任务

异步任务

1.主启动类开启注解@EnableAsync

2. 编写service层类
在对应的方法上加上@Async异步注解

@Service
@Slf4j
public class AsyncService {
	@Async  // 异步任务
	public String task() throws InterruptedException {
		Thread.sleep(3000);
		return "2021/12/29";
	}
}

3.编写控制器测试

@RestController
public class AsyncController {
	@Autowired
	private AsyncService asyncService;
	@GetMapping("/hello")
	public String hello() throws InterruptedException {
		String mst=asyncService.task();
		return mst;
	}
}

定时任务

1.导入一依赖

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--        邮件任务-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

    </dependencies>

2.主启动类开启注解
在这里插入图片描述

3.编写service层的类

这样,每天的整秒的时候就会触发任务


@Service
@Slf4j
public class ScheduleService {
	private static int count=0;
//	cron表达式  分别代表 秒-分-时-天-月-周几
	@Scheduled(cron = "0 * * * * 0-7")
	public void test(){
		count++;
		log.info("helloworld-"+count);
	}
}

cron表达式

在这里插入图片描述

@Service
@Slf4j
public class ScheduleService {
	private static int count=0;
//	cron表达式  分别代表 秒-分-时-天-月-周几
	@Scheduled(cron = "0 * * * * 0-7")
	public void test(){
		count++;
		log.info("helloworld-"+count);
	}
}

邮件任务

1.导入依赖

<!--        邮件任务-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

2.配置文件设置

spring:
  mail:
    username: 2795348161@qq.com
    # 注意:这里不能使用密码,需使用校验码,在QQ邮箱中的设置-账户获取
    password: anayncplhiwudddi 
    host: smtp.qq.com
    properties:
      mail:
        smtl:
          ssl:
            enable: true  #开启加密验证

3.编写测试类

这里分为简单邮件发送和复杂邮件发送(可以发送图片,文件等)

@SpringBootTest
@Slf4j
public class mailTest {
	@Autowired
	// 注意:该类时邮件依赖自己提供的,用于发送邮件
	JavaMailSenderImpl javaMailSender;

	//	简单邮件发送
	@Test
	public void mail(){
		SimpleMailMessage simpleMailMessage=new SimpleMailMessage();
//		主题设置
		simpleMailMessage.setSubject("小狂胜你好鸭");
//		邮件内容
		simpleMailMessage.setText("感谢狂胜大哥大");
//		接收人
		simpleMailMessage.setTo("2795348161@qq.com");
//		发送人
		simpleMailMessage.setFrom("2795348161@qq.com");
		javaMailSender.send(simpleMailMessage);
		log.info("邮件发送成功");
	}

	//	复杂邮件发送
	@Test
	public void complexMail() throws MessagingException {
		MimeMessage mimeMessage=javaMailSender.createMimeMessage();
		File file=new File("C:\\Users\\HJX\\Desktop\\jiaozhi.jpg");
//		组装  mime:多用途
		MimeMessageHelper helper=new MimeMessageHelper(mimeMessage,true);
		if(file.exists()){
			helper.addAttachment("jiaozi.jpg",file);
		}else{
			log.error("找不到"+file.getName()+"这个文件");
		}
		helper.setSubject("饺子");
		helper.setText("今天的饺子真好吃,你要来尝尝吗?");
		helper.setFrom("2795348161@qq.com");
		helper.setTo("2795348161@qq.com");

		javaMailSender.send(mimeMessage);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值