springBoot
端口号设置
在application.properties里面写:server.port=8080
每个设置的端口号只能debug(运行)一次,没有关闭进行再次运行会出现端口号被占用,无法使用
项目例子:
发邮件
使用mail框架和spring web框架
设置qq邮件服务器:进入qq邮箱,设置–账户–开启pop3、smtp服务;查看邮箱授权码–生成邮箱授权码
代码:
创建项目:
①在https://start.spring.io创建springboot01_mail–添加mail和web依赖
②eclipse中导入刚刚生成的springboot01_mail项目
③配置服务器–设置application.properties,设置username=邮箱;password=授权码
④创建controller包,设置收件人、标题、正文
⑤浏览器中测试,以debug方式启动,进入浏览器地址,在进行邮箱的查看
⑥发送异常信息;先转换成字符串,然后字符串发送到邮箱。
package com.tedu.springboot02_mail.controller;
import java.io.PipedWriter;
import java.io.PrintWriter;
import java.io.StringWriter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//controller
//MVC view(jsp)-->controller(servlet)-->model(service+dao)
//controller包是MVC里面的controller
//controller就是servlet,controller不用注册,不用写xml格式
//框架是标准,
@RestController
//注解
public class MailController {
//连接mysql,要connection,一起需要对象时,用new或者调用一个方法得到对象
@Autowired//由框架给JavaMailSender赋值,不用new
JavaMailSender javaMailSender;
//发邮件的方法
private void sendMail(String title,String text) {
//创建一个邮件,对象,发送人,收件人,标题,正文,发送
SimpleMailMessage mailMessage=new SimpleMailMessage();
mailMessage.setTo("1@qq.com");
mailMessage.setFrom("1@qq.com");
mailMessage.setSubject(title);
mailMessage.setText(text);
javaMailSender.send(mailMessage);
}
//发送文本
//requestmapping
@RequestMapping("/send1")
public String send1() {
//找到application,以debug方式启动,邮件debug as-->java spplication
//控制台显示:tomcat started on port 8080
//在send里面输入hosthost:8080/send1
//send1()执行,F8
//进qq邮箱,查看邮件
sendMail("你好", "要开心哦~");
return "邮件发送成功";
}
//把异常信息通过邮件的形式发送出去
@RequestMapping("/sendE")
public String sendE() {
try {
String string =null;
string.charAt(0);
}catch (Exception e) {
//e.printStackTrace();//部署在服务器上之后,程序员看不到异常信息
// TODO: handle exception
//把异常信息转成字符串
String messageString =e.getMessage();//信息很少,解释不全
StringWriter stringWriter=new StringWriter();
PrintWriter prWriter=new PrintWriter(stringWriter);
e.printStackTrace(prWriter);
String detailMessage=stringWriter.toString();//详细异常信息
//把字符串发送到程序员邮箱
sendMail("异常信息",detailMessage);
}
return "异常信息发送成功";
}
}
发短信
前面和发邮箱一下的操作
网站注册,在https://www.yuntongxun.com–注册账号
身份认证,添加测试号码,查看模板,关闭鉴权ip,查看帮助文档–首页–文档帮助–短信快速入门–SDK参考
创建项目:
添加web和mail依赖
package com.tedu.springboot03_sms.controller;
import java.util.HashMap;
import java.util.Set;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.cloopen.rest.sdk.BodyType;
import com.cloopen.rest.sdk.CCPRestSmsSDK;
@RestController
public class SMSController {
//发送骚扰短信可用 ~ ~ ~ ~
@RequestMapping("/test")
public String test() {
return "test";
}
@RequestMapping("/sendSMS")
public String send() {
//生产环境请求地址:app.cloopen.com
String serverIp = "app.cloopen.com";
//请求端口
String serverPort = "8883";
//共有7处地方需要修改
//修改1 :管理-->控制台首页中能查到accountSId
String accountSId = "8aaf07087577b8e084b";
//修改2 :管理-->控制台首页中能查到accountToken
String accountToken = "9cd6a0094cbaf73e916dc9";
//修改3 :管理-->应用管理-->应用列表-->应用01-->应用管理,查看appId
String appId = "8aaf070875774c6d01758852";
CCPRestSmsSDK sdk = new CCPRestSmsSDK();
sdk.init(serverIp, serverPort);
sdk.setAccount(accountSId, accountToken);
sdk.setAppId(appId);
sdk.setBodyType(BodyType.Type_JSON);
//修改4 :修改接收短信的手机号,手机号要在后台添加进去
String to = "151";
//修改5 :templateId改成1
String templateId= "1";
//修改6 :
String[] datas = {"6688","3"};
String subAppend="1234"; //可选 扩展码,四位数字 0~9999
//修改7 :修改reqId为新的
String reqId="fadfafasadsac"; //可选 第三方自定义消息id,最大支持32位英文数字,同账号下同一自然天内不允许重复
//HashMap<String, Object> result = sdk.sendTemplateSMS(to,templateId,datas);
HashMap<String, Object> result = sdk.sendTemplateSMS(to,templateId,datas,subAppend,reqId);
if("000000".equals(result.get("statusCode"))){
//正常返回输出data包体信息(map)
HashMap<String,Object> data = (HashMap<String, Object>) result.get("data");
Set<String> keySet = data.keySet();
for(String key:keySet){
Object object = data.get(key);
System.out.println(key +" = "+object);
}
}else{
//异常返回输出错误码和错误信息
System.out.println("错误码=" + result.get("statusCode") +" 错误信息= "+result.get("statusMsg"));
}
return "发送成功";
}
}
SpringMVC
框架:代替servlet,框架由模块组成
由对象转换成json模块,现在使用的是jackjson模块
Mybatis的连接池使用的是C3P0
作用:控制层框架,springweb,实现url映射,接收参数,返回数据等
注解:
@Target:用于指定注解加在哪里
@Retention:用于指定项目注解什么时候有效