XuLizhao 's Notes

时光,漫步


  • 首页

  • 技术

  • 文档

  • 关于

  • 搜索
close

Spring实战

时间: 2019-10-28   |   分类: tech     |   阅读: 716 字 ~2分钟

Spring5 学习记录。

SpringBoot刚出来时用过一点,从Spring Boot2回看,发现这个生态真是进步巨大。

起步

项目初始化

Initializr

  • https://start.spring.io/
  • curl
  • Spring Boot cli
  • Spring Tool Suite
  • IntelliJ IDEA
  • VS Code + 插件

依赖管理

名字包含starter的依赖并不包含实际的代码库,只是为了方便项目依赖版本管理。

运行

  • java -jar xxx.jar
  • mvn spring-boot:run
  • Spring Dashboard

学习笔记

Spring Boot带来的好处:

  • starter dependencies

  • autoconfiguration

  • Actuator运行时信息监控

  • 灵活的环境配置

  • 增强的测试支持

  • 尽量使用Spring Boot,必要时显示声明Java样式的配置。

  • components或叫做beans支持在Spring application context显式定义为Java或XML(旧格式)

  • Component Scanning:用于自动发现并为Spring application context创建bean

常用注解:

  • @Controller
  • @Component
  • @Service
  • @Repository

Model模型

MVC.

@ModelAttribute

View模板

不推荐使用后端模板引擎,建议前后端分离。

开发环境禁用缓存:

# application.properties
spring.freemarker.cache=false
spring.thymeleaf.cache=false

FreeMarker

Mustache

Thymeleaf

这个项目代码上次更新还是一年前(2018年10月),还是远离这个模板的好。

@{…} 操作符代表一个context-relative路径

JSP

官方强烈不推荐JSP,因为它的依赖实现通常是容器做的(Tomcat,Jetty等),且默认只识别WEB-INF文件夹。

这意味着只支持war包的形式,使用将非常受限。

Controller

路由

  • @RequestMapping 用于类
  • @GetMapping等用于handler方法
  • 返回的通常是视图的逻辑名
@Configuration
public class WebConfig implements WebMvcConfigurer {

  @Override
  public void addViewControllers(ViewControllerRegistry registry) {
    registry.addViewController("/").setViewName("home");
  }

}

数据类

Validation

字段验证:

  • @NotNull
  • @Size
  • @NotBlank
  • @Digits
  • @Pattern 正则

Hibernate内置:

  • @CreditCardNumber

添加在数据类前:

  • @Valid

测试

pom.xml依赖于spring-boot-starter-test。

注: 2.0.9依赖于JUnit4, 但2.2.x分支已切换到JUnit5.

  • @SpringBootTest
  • @WebMvcTest

辅助工具

  • spring-boot-devtools
    • 自动重启(类修改)
    • ~/.spring-boot-devtools.properties 全局设置

扩展阅读

  • spring.io/guides
  • Build a Simple CRUD App with Spring Boot and Vue.js
  • spring boot demo
  • 本文作者: xulizhao
  • 本文链接: https://xulizhao.com/blog/spring-in-action/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
#java#
DDD/领域驱动设计
matplotlib绘图库
  • 文章目录
  • 站点概览

xulz

时光,漫步

158 日志
3 分类
37 标签
  • 起步
    • 项目初始化
    • 依赖管理
    • 运行
  • 学习笔记
    • Model模型
    • View模板
    • Controller
    • 路由
    • 数据类
  • 测试
  • 辅助工具
  • 扩展阅读
© 2017 - 2020 XuLizhao 's Notes
Powered by - Hugo/ NexT
津ICP备17010344号-1
0%