博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot 特性以及代码模板实例
阅读量:5819 次
发布时间:2019-06-18

本文共 2797 字,大约阅读时间需要 9 分钟。

  1. SpringBoot工程
  2. 参数解析
  3. HTTP Method
  4. Request / Response / Session
  5. Error/重定向
  6. Logger
  7. IoC
  8. AOP/Aspect
 
1:SpringBoot工程
 
框架学习,首先接触看官方文档:(先看做什么,官方的文档细节先忽略,用到去查找)
start.spring.io
 
//controller演示
public class IndexController {
@RequestMapping(path = {
"/","/index"})
@ResponseBody
public String Index( ) {
return " name ";
}
}
 
2:参数解析
//controller携带参数的演示,路径里面的参数可以解析到函数里面
@RequestMapping(value = "/profile/{groupId}/{userId}")
@ResponseBody
public String profile(@PathVariable("groupId") String groupId,
@PathVariable("userId") int userId,
@RequestParam(value = "type", defaultValue = "1") int type,
@RequestParam(value = "key", defaultValue = "nowcoder") String key) {
return String.format("{%s},{%d},{%d},{%s}", groupId, userId, type, key);
}
 
//设置 type =
//设置 key =
//controller携带参数,并且携带@requestparam
@RequestMapping(value = "/profile/{groupId}/{userId}")
@ResponseBody
public String profile(@PathVariable("groupId") String groupId,
@PathVariable("userId") int userId,
@RequestParam(value = "type", defaultValue = "1") int type,
@RequestParam(value = "key", defaultValue = "nowcoder") String key) {
return String.format("{%s},{%d},{%d},{%s}", groupId, userId, type, key);
}
 
 
 
3:HTTP Method
HTTP Method(代码演示)
GET 获取接口信息
HEAD 紧急查看接口HTTP的头
POST 提交数据到服务器
PUT 支持幂等性的POST //执行两次是一样的结果;
 
DELETE 删除服务器上的资源
OPITIONS 查看支持的方法
可以设置get post
Fidder web debugger工具
 
4:Request / Response / Session

 

 
request HttpServletResponse
参数解析 response.addCookie(new
Cookie(key, value));
response.addHeader(key, value);
cookie读取
http请求字段
文件上传
HttpServletRequest
request.getHeaderNames();
request.getMethod()
request.getPathInfo()
request.getQueryString()
response
页面内容返回
cookie下发
http字段设置,headers
 
 
5:Error/重定向
 
//重定向
//301:永久转移
//302:临时转移
 
//异常的统一处理
@RequestMapping(path = {
"/admin"}, method = {
RequestMethod.GET})
@ResponseBody
public String admin(@RequestParam("key") String key) {
if ("admin".equals( key )) {
return "hello admin";
}
throw new IllegalArgumentException( "参数不对" );
}
 
@ExceptionHandler()
@ResponseBody
public String error(Exception e) {
return "出现了错误error:" + e.getMessage();
}
6:IoC 控制反转:无需关注对象的初始化(享元模式)
servicecs包下面:通过标记@Services来设置对象,
controller包下面:通过@Autowired,直接引入对象无需初始化。不需要new Services中的对象;
 
 
7:AOP/Aspect 面向切面
@Aspect
@Component
public class LogAspect {
private static final Logger logger = LoggerFactory.getLogger(LogAspect.class);
 
@Before("execution(* com.nowcoder.controller.*Controller.*(..))")
public void beforeMethod(JoinPoint joinPoint) {
StringBuilder sb = new StringBuilder();
for (Object arg : joinPoint.getArgs()) {
sb.append("arg:" + arg.toString() + "|");
}//切点打印参数
logger.info("before method:" + sb.toString());
}
 
@After("execution(* com.nowcoder.controller.IndexController.*(..))")
public void afterMethod() {
logger.info("after method" + new Date());
}
}
 
 

转载于:https://www.cnblogs.com/liguo-wang/p/9402804.html

你可能感兴趣的文章
rpm的常用用法
查看>>
php启动,重启,关闭命令
查看>>
Oracle 11g rac 生产环境部署详录
查看>>
让windowsxp系统不用路由器自动实现开机自动拨号
查看>>
Fedora 28 主题更换实践
查看>>
Win2008 R2 VDI动手实验系列之三:远程桌面会话主机配置
查看>>
MacOS 通过Terminal更改DNS
查看>>
第一次迭代开发心得
查看>>
jdbc,链接调用数据库的方法——例题
查看>>
C# 基础:ref和out的区别
查看>>
Python 脚本学习笔记(四) 定制业务质量报表
查看>>
CentOS\Scientific Linux\RHEL网络配置
查看>>
bzoj 3993: [SDOI2015]星际战争
查看>>
linux学习-开机权限修改、修改主机名、shell介绍
查看>>
Error: Connection activation failed: Device not managed by NetworkManager解决方法
查看>>
bzoj 1497: [NOI2006]最大获利
查看>>
bzoj 1818: [Cqoi2010]内部白点
查看>>
PHP Security Guide
查看>>
我的友情链接
查看>>
Windows下bat脚本判断端口是否可用
查看>>