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());
}
}
 
 

Spring Boot 特性以及代码模板实例的更多相关文章

  1. 微服务学习笔记——Spring Boot特性

    1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置 4. 自动配置Spring 5. 提供生产就绪型功能,如指标,健康检查和外部配置 6. 开 ...

  2. Spring Boot特性(转)

    摘要: 1. SpringApplication SpringApplication 类是启动 Spring Boot 应用的入口类,你可以创建一个包含 main() 方法的类,来运行 SpringA ...

  3. 【转】Spring Boot特性

    https://yq.aliyun.com/articles/25530 摘要: 1. SpringApplication SpringApplication 类是启动 Spring Boot 应用的 ...

  4. [转] Spring Boot特性

    [From] http://blog.javachen.com/2015/03/13/some-spring-boot-features.html 1. SpringApplication Sprin ...

  5. Spring boot-(3) Spring Boot特性1

    本节将深入Spring Boot的细节,可以学到你想使用的或定制的Spring Boot的主要特性. 1. SpringApplication SpringApplication类为引导一个Sprin ...

  6. spring boot整合redis多实例

    最近项目中遇到需要连接两个redis实例的情况,于是就在spring boot原先的基础上修改了一点. 首先,添加所需的依赖 <dependency> <groupId>org ...

  7. spring boot + jpa + kotlin入门实例

    spring boot +jpa的文章网络上已经有不少,这里主要补充一下用kotlin来做. kotlin里面的data class来创建entity可以帮助我们减少不少的代码,比如现在这个User的 ...

  8. spring boot + dubbo 服务部署实例

    项目github:https://github.com/nalidou/spring-dubbo 1. 公共组件:dubbo-component 提供了接口定义.实体类等,其他项目可以直接导入jar包 ...

  9. Spring boot-(3) Spring Boot特性2

    1. 外部配置 Spring Boot支持外部配置,以便可以在不同的环境中使用相同的应用程序代码.可以使用properties文件,YAML文件,环境变量或命令行参数进行外部配置.可以使用@Value ...

随机推荐

  1. LockSupport浅析

    最初想有没有必要写这类文章,网上相关的文章很多,有些更为透彻,自己再写一篇不免有重复造轮子的感觉. 但想想写文除了分享知识外也可以帮助自己总结归纳,也稍稍可以提高点自我满足感. 基本的线程阻塞原语,被 ...

  2. 【EF6学习笔记】(十二)EF高级应用场景

    本篇原文链接:Advanced Entity Framework Scenarios 本篇主要讲一些使用Code First建立ASP.NET WEB应用的时候除了基础的方式以外的一些扩展方式方法: ...

  3. linux 命令 — find

    find 基本形式 find base_path base_path可以是任何目录,find会从该目录开始往下寻找 find . -print 列出当前目录下所有的文件和目录,以'\n'作为分隔符 f ...

  4. Tomcat他山之石.可以攻玉(一)Server组件

    Server组件 Server组件作用: 采用观察者模式,又叫源-收听者的设计模式,提供了可以动态添加.删除的监听器,作用是在Server组件的不同生命周期中完成不同的功能.逻辑: Tomcat容器的 ...

  5. 痞子衡嵌入式:ARM Cortex-M内核那些事(1)- 内核架构编年史

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM内核架构历史. 众所周知,ARM公司是一家微处理器行业的知名企业,ARM公司本身并不靠自有的设计来制造或出售CPU,而是将处理器架 ...

  6. vs javascript intellisence失效

    前些天写js的时候发现vs的提示都没了...纳闷但是没去了解原因. 今天实在是受不了了. 网上搜了一下,看到msdn文档上一句话,“通过使用 reference 指令,Visual Studio 能够 ...

  7. OJ:神秘的数组初始化

    描述 填空,使得程序输出指定结果 #include <iostream> using namespace std; int main() { int * a[] = { // 在此处补充你 ...

  8. spark之scala程序开发(本地运行模式):单词出现次数统计

    准备工作: 将运行Scala-Eclipse的机器节点(CloudDeskTop)内存调整至4G,因为需要在该节点上跑本地(local)Spark程序,本地Spark程序会启动Worker进程耗用大量 ...

  9. javascript小实例,编写一个方法,实现从n-m个数中随机选出一个整数

    别怪我是一个闷葫芦,没那么多花哨的语言,废话不多说,先说说小实例的要求: 编写一个方法,实现从n-m个数中随机选出一个整数,要求:传递的参数不足两个或者不是有效数字,返回[0-1]之间的随机数,需要解 ...

  10. [译]如何在.NET Core中使用System.Drawing?

    你大概知道System.Drawing,它是一个执行图形相关任务的流行的API,同时它也不属于.NET Core的一部分.最初是把.NET Core作为云端框架设计的,它不包含非云端相关API.另一方 ...