SpringBoot基础及概念入门
ycshang Lv1

一、SpringBoot产生的背景

1、产生背景

  • 在SpringBoot出现之前,使用Spring需要大量的xml文件配置【配置地狱】,2013年SpringBoot的诞生就实现了免XML配置和提供更佳开发体验的目标

2、使用SpringBoot的便利性

  • 使配置变简单
  • 使开发变简单
  • 使控制变简单
  • 使部署变简单

3、SpringBoot的主要特性

  • 约定大于配置
  • 内嵌Servlet容器,应用jar包执行
  • 快速完成项目搭建、整合第三方类库,方便易用
  • 提供starter POM方便进行包管理

4、Spring Boot、Spring MVC、Spring对比

  • Spring框架最核心的特性就是依赖注入DI(Dependency Injection)和控制反转IOC(Inversion Of Control)
  • Spring MVC 提供一种有好的方式开发web控制程序
  • SpringBoot 自动配置 约定大于配置

5、彩蛋

二、创建HelloWorld及项目结构介绍

  • 在IDEA创建Spring Initializr项目,保证联网
  • 选择Spring Web依赖
  • 修改父功能的packaging类型为pom
  • 在父项目上创建新的module即可
  • 启动主类
1
2
3
4
5
6
@SpringBootApplication
public class HelloWorldApplication{
public static void main(String[] args){
SpringApplication.run(HelloWorldApplication.class,args);
}
}
  • yml和properties格式区别
    • yml文件的层级更加清晰直观,但是书写时需要注意格式缩进对齐
    • yml格式配置文件更有利于表达复杂数据结构的配置
    • properties不如yml直观,在书写时不用特别注意格式的缩进
  • 必备配置
    • Spring——spring核心,beans,context上下文,AOP面向切面
    • Web MVC——SPringle MVC
    • Jackson——JSON数据的序列化与反序列化
    • Validation——Hibernate参数校验及校验API
    • 嵌入式Servlet Container——Tomcat
    • 日志框架Logging——logback,slf4j
  • 继承父项目的好处
    • 统一Java版本配置和其他的一些类库的版本
    • 引入第三方类库不需要加版本号,父项目会做统一管理版本

三、项目文件配置

  • src/main/java:项目Java文件存放位置,初始化主程序入口
  • src/main/resources:存放静态资源
  • src/test:单元测试目录
  • .gitignore:git版本管理排除文件
  • target文件夹:项目代码构建打包结果存放位置
  • pom.xml:maven项目配置文件
  • application.properties(application.yml):存放程序的各种依赖模块配置信息

四、SpringBoot新版本特性

  • 基础环境升级
    • JDK版本最低要求
  • 依赖组件升级
    • Jetty
    • Tomcat
    • Flyway
    • Hibernet
    • Gradle
    • Thymeleaf
  • 默认软件替换
    • 比如:默认数据库替换、redis
  • 新技术的引入
    • 响应式编程
  • 默认技术支持
  • 彩蛋【自定义SpringBoot项目启动图样,下载banner.txt,放入resources根目录】

五、IDEA环境下的加载和热部署

  • 使用JRebel插件
  • devtools实现热加载

六、常用插件

  • codota【代码补全】
  • Auto filling Java call arguments【自动填充参数】
  • GsonFormatPlus【JSON转实体类】
  • Rainbow Brackets【彩虹括号】
  • Maven Helper【解决maven冲突】
  • Crep Console【过滤/修饰日志】
  • Background Image Plus【添加背景图】
  • .gitgnore【git提交忽略文件】
  • Alibaba Cloud Tookit【快速和阿里云连接】
  • Alibaba Java Coding Guidelines【代码规范】
 Comments