31、springboot与任务
异步任务
@Service
public class AsynService { public void hello(){
try {
Thread.sleep();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("处理数据.....");
}
}
controller类:
@Controller
public class AsynController { @Autowired
AsynService asynService; @ResponseBody
@RequestMapping("/hello")
public String hello(){
asynService.hello();
return "success";
}
}

此时会有三秒的等待响应时间!!!!
但是如果工程量大的话,这样会比较麻烦
@Service
public class AsynService { //告诉spring这是一个异步的方法
@Async
public void hello(){
try {
Thread.sleep();
} catch (InterruptedException e) {
e.printStackTrace();
} System.out.println("处理数据.....");
}
}
开启方法:
@EnableAsync
@SpringBootApplication
public class TaskApplication { public static void main(String[] args) {
SpringApplication.run(TaskApplication.class, args);
} }

定时任务


定时做打印操作:
@Service
public class ScheduleService { //cron:second、minute、hour、day of mounth、day of week
@Scheduled(cron ="0 * * * * MON-SAT" )
public void hello(){
System.out.println("定时处理");
} }
开启注解:
//开启定时任务
@EnableScheduling
@SpringBootApplication
public class TaskApplication {
public static void main(String[] args) {
SpringApplication.run(TaskApplication.class, args);
}
}

在任意分钟的0-10s进行打印
@Scheduled(cron = "0-10 * * * * 0-7")
public void hello(){
System.out.println("定时处理");
}


邮件任务


aaarticlea/png;base64,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" alt="" />
@ConfigurationProperties(
prefix = "spring.mail"
)
public class MailProperties {
private static final Charset DEFAULT_CHARSET;
private String host;
private Integer port;
private String username;
private String password;
private String protocol = "smtp";
private Charset defaultEncoding;
private Map<String, String> properties;
private String jndiName;
...
}

配置文件:
spring.mail.username=@qq.com
#授权码
spring.mail.password=keoszgbsssddbaad
spring.mail.host=smtp.qq.com
spring.mail.properties.mail.smtp.ssl.enable=true

host:

简单邮件
@Autowired
JavaMailSenderImpl javaMailSender; @Test
public void contextLoads() {
SimpleMailMessage msg = new SimpleMailMessage();
//邮件设置
msg.setSubject("猪头");
msg.setText("你就是猪头哦!!");
msg.setTo("xxxxxxxxx@qq.com");
msg.setFrom("12872213xx@qq.com"); javaMailSender.send(msg);
}
复杂的邮件测试:
@Test
public void test1() throws MessagingException {
//创建复杂邮件
MimeMessage msg = javaMailSender.createMimeMessage();
//上传文件
MimeMessageHelper helper = new MimeMessageHelper(msg,true); //邮件设置
helper.setSubject("pig"); helper.setText("<b style='color:red'>pig..... </b>",true);
helper.setTo("3212393029@qq.com");
helper.setFrom("12872213xx@qq.com"); //上传文件
helper.addAttachment("319898.jpg",new File("D:\\Tools\\319898.jpg")); javaMailSender.send(msg);
}
html的设置等都可以显示,图片的上传!!!
31、springboot与任务的更多相关文章
- 第3章 springboot接口返回json 3-1 SpringBoot构造并返回一个json对象
数据的使用主要还是以JSON为主,我们不会去使用XML. 这个时候我们先不使用@RestController,我们使用之前SpringMVC的那种方式,就是@Controller. @Respons ...
- 千锋很火的SpringBoot实战开发教程视频
springboot是什么? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...
- 微服务springboot视频最新SpringBoot2.0.3版本技术视频教程【免费学习】
超火爆的springboot微服务技术怎么学,看这里,springboot超详细的教程↓↓↓↓↓↓https://ke.qq.com/course/179440?tuin=9b386640 01.sp ...
- jquery-bootgrid
http://www.jquery-bootgrid.com/GettingStarted 日志是生产环境非常重要的配置,在迁移老的工程到spring-boot时日志的设置兼容很重要,以下是自己在配置 ...
- 每天学会一点点(JAVA基础)
1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. Java被设计成允 ...
- 城市代码表mysql
只有代码: # ************************************************************ # Sequel Pro SQL dump # Version ...
- 「小程序JAVA实战」springboot的后台搭建(31)
转自:https://idig8.com/2018/08/29/xiaochengxujavashizhanspringbootdehoutaidajian31/ 根据下面的图,我们来建立下对应的sp ...
- SpringBoot IntelliJ创建简单的Restful接口
使用SpringBoot快速建服务,和NodeJS使用express几乎一模一样,主要分为以下: 1.添加和安装依赖 2.添加路由(即接口) 3.对路由事件进行处理 同样坑的地方就是,祖国的防火墙太 ...
- springboot+druid
最近项目需要搭建新工程,打算使用微服务的形式搭建便于后期拓展.看了一圈发现springboot易于搭建,配置简单,强化注解功能,"just run". Spring Boot ma ...
随机推荐
- mybatis必知必会二
关联: 嵌套查询:通过执行另外一个 SQL 映射语句来返回预期的复杂类型. 嵌套结果:使用嵌套结果映射来处理重复的联合结果的子集.首先,然让我们来查看这个元素的属性.所有的你都会看到,它和普通的只由 ...
- yum只下载不安装dokcer
yum install --downloadonly --downloaddir=/test/ docker-io 有三个依赖包,如果不知道现后依赖顺序,可以强制安装 哦了
- PoPo数据可视化周刊第4期
PoPo数据可视化 聚焦于Web数据可视化与可视化交互领域,发现可视化领域有意思的内容.不想错过可视化领域的精彩内容, 就快快关注我们吧 :) 微信号:popodv_com 由于国庆节的原因,累计 ...
- 使用jQuery获取Dribbble的内容
Introduction As a web developer, third party API integration is something you will have to face. Esp ...
- html-路径的介绍
一.绝对路径 绝对路径是指文件在硬盘上真正存在的路径 - D:\Java\JavaWeb\day01\a.jpg - http://www.baidu.com/b.jpg 二.相对路径 一个文件相对于 ...
- css3 常用动画 随笔
/* animation */.a-bounce,.a-flip,.a-flash,.a-shake,.a-swing,.a-wobble,.a-ring{-webkit-animation:1s e ...
- 转:在使用angularjs过程,ng-repeat中track by的作用
转载:链接 <div ng-repeat="links in slides"> <div ng-repeat="link in links track ...
- redux-devtools的使用
1.浏览器里安装redux-devtools 2.在项目的入口文件里 找到 createStore函数调用的地方,给它加第二个参数 window.__REDUX_DEVTOOLS_EXTENSION ...
- js如何获取response header信息
信息转自网上 普通的请求JS无法获取,只有ajax请求才能获取到. $.ajax({ type: 'HEAD', // 获取头信息,type=HEAD即可 url : window.location. ...
- RocketMQ读书笔记7——吞吐量优先的场景
[Broker端进行消息过滤] 在Broker端进行消息过滤,可以减少无效消息发送到Consumer,少占用网络宽带从而提高吞吐量. [过滤方式1——通过Tag过滤] [ 关于Tag和Key ] 对一 ...