异步
-
在Springboot程序入口SpringBootApplication类上添加@EnableAsync开启异步功能
-
在需要异步进行的方法上添加@Async,SpringBoot会自动为其创造线程
邮件
导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
修改配置文件
在MailSenderAutoConfiguration中有@EnableConfigurationProperties(MailProperties.class)
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ MimeMessage.class, MimeType.class, MailSender.class })
@ConditionalOnMissingBean(MailSender.class)
@Conditional(MailSenderCondition.class)
//属性文件
@EnableConfigurationProperties(MailProperties.class)
@Import({ MailSenderJndiConfiguration.class, MailSenderPropertiesConfiguration.class })
public class MailSenderAutoConfiguration {
}
点进MailProperties可以看到@ConfigurationProperties(prefix = "spring.mail"),以及其中的一些属性
@ConfigurationProperties(prefix = "spring.mail")
public class MailProperties {}
因此我们可以在application.properties设置一些Mail的属性
spring.mail.username=xxxxx@qq.com
spring.mail.password=xxxxxxxxxxxxxx
spring.mail.host=smtp.qq.com
# 加密验证
spring.mail.properties.mail.smtp.ssl.enable=true
实例
class DemoApplicationTests {
@Autowired
JavaMailSenderImpl MailSender;
@Test
void contextLoads() {
SimpleMailMessage sm = new SimpleMailMessage();
sm.setTo("xxxxx@qq.com");
sm.setFrom("xxx@qq.com");
// sm.setFrom("xxx@qq.com");
sm.setText("test text");
sm.setSubject("test subject");
MailSender.send(sm);
}
@Test
void contextLoads2() throws MessagingException {
//复杂邮件
MimeMessage m= MailSender.createMimeMessage();
//组装,true代表支持多文件
MimeMessageHelper helper=new MimeMessageHelper(m,true);
// MimeMailMessage sm=new MimeMailMessage(m);
helper.setTo("xxxx@qq.com");
helper.setFrom("xxx@qq.com");
// helper.setFrom("xxx@qq.com");
//true 代表开启html,p标签会被识别
helper.setText("<p style='color:red'>test text2</p>",true);
helper.setSubject("test subject2");
helper.addAttachment("1.png",new File("D:\\Desktop\\Springboot\\SpringBoot-10\\src\\main\\resources\\static\\1.png"));
MailSender.send(m);
}
}
定时
- 添加@EnableScheduling开启定时功能
@EnableScheduling
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
- 在方法上 添加@Scheduled,即可被识别为定时任务
@Service
public class SchedulingService {
//秒 分 时 日 月 星期
//每天的21:44:31执行一次
@Scheduled(cron = "30 44 21 * * ?")
public void hello(){
System.out.println("hello");
}
}