0. Fundamental
  a. @SpringBootApplication //启动类
  b. pom.xml //Maven基本依赖

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

1. application.yml (application-dev.yml, application-prod.yml)

    spring:
profiles:
active: prod //设置激活的profile名字 server:
port: 8080
content-path: /demo student:
name: Peter
age: 19
message: My name is ${student.name}, age is ${student.age} spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/demo
username: root
password: 123465
jpa:
hibernate:
dll-auto: update
show-sql: true

2. 注入设置值
  a. 直接使用单个值:@Value("${student.name}")
  b. 注入配置类:
  @Component
  @ConfigurationProperties(prefix = "student") //一系列配置属性的前缀

3. Controller
  a. @Controller: 处理http请求,返回模板文件名 (旧方式)
  b. @RestController:处理请求,返回json
  @RequestMapping: 配置URL映射
  @GetMapping, @PutMapping, @PostMapping, @DeleteMapping
  @PathVariable //e.g. /hello/{id}
  @RequsetParam //e.g. ?name=Peter

4. Spring-Data-Jpa
  a. @Entity;
  b. @Id (添加annotation @GeneratedValue 来产生自动增长的id值);
  c. Interface class Repository (findOne,findAll,findByXXX,save);
  d. @Service;
  e. @Transactional;

5. Validation
  a. @Min(value=18, message="Less than minimum value."), 最小值,添加到@Entity的property上。
  b. @Valid, BindingResult bindingResult, 绑定验证结果到变量中,如果bindingResult.hasErrors()非空,则获取错误信息:bindingResult.getFieldError()。

6. AOP
  a. 添加依赖 spring-boot-starter-aop;
  b. @Aspect, @Component;
  c. @Pointcut, @Before, @After;
  d. 参数注入:JointPoint,@AfterReturning(returning = "object", pointcut = "log()");

7. 统一异常处理
  a. @ControllerAdvice, @ExceptionHandler;
  b. Self-defined exception, to extend RuntimeException;
  c. Self-defined Enum, to list out all the exception cases;

8. 单元测试
  a. @RunWith(SpringRunner.class), @SpringBootTest(classes = Application.class), @ActiveProfiles("test");

  b. @AutoConfigureMockMvc =>
  @Autowired
  MockMvc mvc;
  mvc.perform(MockMvcRequestBuilders.get("/api")).andExpect(MockMvcResultMatchers.status.isOk());

SpringBoot 精简笔记的更多相关文章

  1. SpringBoot学习笔记

    SpringBoot个人感觉比SpringMVC还要好用的一个框架,很多注解配置可以非常灵活的在代码中运用起来: springBoot学习笔记: .一.aop: 新建一个类HttpAspect,类上添 ...

  2. Springboot学习笔记(六)-配置化注入

    前言 前面写过一个Springboot学习笔记(一)-线程池的简化及使用,发现有个缺陷,打个比方,我这个线程池写在一个公用服务中,各项参数都定死了,现在有两个服务要调用它,一个服务的线程数通常很多,而 ...

  3. SpringBoot学习笔记(14):使用SpringBootAdmin管理监控你的应用

    SpringBoot学习笔记(14):使用SpringBootAdmin管理监控你的应用 Spring Boot Admin是一个管理和监控Spring Boot应用程序的应用程序.本文参考文档: 官 ...

  4. JavaScript 精简笔记

    JavaScript 精简笔记,摘自 廖雪峰的官方网站. [From] https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51 ...

  5. SpringBoot学习笔记(3):静态资源处理

    SpringBoot学习笔记(3):静态资源处理 在web开发中,静态资源的访问是必不可少的,如:Html.图片.js.css 等资源的访问. Spring Boot 对静态资源访问提供了很好的支持, ...

  6. SpringBoot学习笔记(2):引入Spring Security

    SpringBoot学习笔记(2):用Spring Security来保护你的应用 快速开始 本指南将引导您完成使用受Spring Security保护的资源创建简单Web应用程序的过程. 参考资料: ...

  7. SpringBoot学习笔记(7):Druid使用心得

    SpringBoot学习笔记(7):Druid使用心得 快速开始 添加依赖 <dependency> <groupId>com.alibaba</groupId> ...

  8. SpringBoot学习笔记(4):与前端交互的日期格式

    SpringBoot学习笔记(4):与前端交互的日期格式 后端模型Date字段解析String 我们从前端传回来表单的数据,当涉及时间.日期等值时,后端的模型需将其转换为对应的Date类型等. 我们可 ...

  9. SpringBoot学习笔记(4):添加自定义的过滤器

    SpringBoot:学习笔记(4)——添加自定义的过滤器 引入自定义过滤器 SpringBoot提供的前端控制器无法满足我们产品的需求时,我们需要添加自定义的过滤器. SpringBoot添加过滤器 ...

随机推荐

  1. golang学习

    1. 学习资源列表 https://github.com/golang/go/wiki 2. 最快的入门方法 直接通过代码学习 https://tour.go-zh.org 3. go指南 https ...

  2. readfile()

    readfile()将一个文件写入到输出缓存参数1:文件名

  3. eclipse——Maven插件创建java工程

    目录结构如下 注意默认JDK为1.5 更改默认JDK  方式一 右键工程 选中JRE1.5 Remove 双击JRE System Library 点击Finish 更改完成 方式二 配置maven ...

  4. CodeBlocks调试功能(转)

    转自:迂者-贺利坚 http://blog.csdn.net/sxhelijian/article/details/15026159 示例代码: #include <iostream> u ...

  5. 3.python 发送邮件之smtplib模块

    SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到目的地址的邮件传输规则. python中对SMTP进行了简单的封装,可以发送纯文本邮件, ...

  6. (转)Asp.Net生命周期系列一

    原文地址:http://www.cnblogs.com/skm-blog/archive/2013/07/07/3176713.html Asp.Net生命周期对于初级甚至中级程序员来说,一直都是一个 ...

  7. java中为什么要使用代理

    引入代理: 我们为什么要引入java的代理,除了当前类能够提供的功能外,我们还需要补充一些其他功能. 最容易想到的情况就是权限过滤,我有一个类做某项业务,但是由于安全原因只有某些用户才可以调用这个类, ...

  8. db2中临时表在存储过程中的使用

    DROP PROCEDURE ADMINISTRATOR.SP_TEST (INTEGER, CHARACTER ()); CREATE PROCEDURE administrator.sp_test ...

  9. Android ViewPager + Fragment的布局

    ViewPager And Fragment 1.之前有篇博客是讲ViewPager的用法的:http://www.cnblogs.com/liangstudyhome/p/3773156.html ...

  10. ulua

    unity窗口 lua -> Gen LuaWrap + Binder 生成Wrap文件 此类脚本是对Unity中常用的组件进行二次包装 Lua运行后 会把Wrap文件加载到Lua运行环境中 使 ...