韩老师Java
⬅️ 上一篇: mabatis机制实现
🎉 欢迎来到 springboot系列一: springboot初步入门 🎉
在本篇文章中,我们将带您初步了解和入门 Spring Boot。Spring Boot 是一个简化 Spring 应用开发的框架,帮助开发者快速构建生产级别的 Spring 应用程序。
🔧 本篇需要用到的项目: quickstart项目
官方文档
官网文档: https://spring.io/projects/spring-boot
学习文档: https://docs.spring.io/spring-boot/docs/current/reference/html/
离线文档: https://docs.spring.io/spring-boot/docs/3.1.5/reference/pdf/spring-boot-reference.pdf
在线API: https://docs.spring.io/spring-boot/docs/current/api/
springboot是什么?
第一句话: SpringBoot可以轻松创建独立的, 生产级的基于Spring的应用程序.
第二句话: SpringBoot直接嵌入Tomcat, Jetty或Undertow, 可以 “直接运行” SpringBoot应用程序
springboot快速入门
需求/图解说明
构建一个SpringBoot项目, 浏览器发送hello请求[http://localhost:8080/hello], 响应 Hello SpringBoot
完成步骤
1.确认开发环境是jdk 8或以上, maven在3.5+
2.创建maven项目
3.在pom.xml引入SpringBoot父工程和web项目场景启动器
父工程概念
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zzw</groupId>
<artifactId>quickStart</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!--导入springboot父工程-规定写法[在mybatis中讲过]-->
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.5.3</version>
</parent>
<!--导入web项目场景启动器: 会自动导入和web开发相关的所有依赖[库/jar]
后面还会说明spring-boot-starter-web 到底引入哪些相关依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
4.创建com.zzw.springboot.MainApp.java
SpringBoot引用主程序
/**
* @SpringBootApplication: 表示这是一个springboot引用/项目
*/
@SpringBootApplication
public class MainApp {
public static void main(String[] args) {
//启动springboot应用程序/项目
SpringApplication.run(MainApp.class, args);
}
}
5.创建com.zzw.springboot.controller.HelloController.java
控制器
@Controller
public class HelloController {
//写一个方法, 返回hello,springboot
@RequestMapping(value = "/hello")
@ResponseBody
public String hello() {
return "hello~, springboot";
}
}
6.运行MainApp.java, 完成测试, 浏览器访问 http://localhost:8080/hello
快速入门小结
1.SprintBoot比较传统的SSM开发, 简化整合步骤, 提高开发效率.
2.简化了Maven项目的pom.xml依赖导入, 可以说是一键导入
3.引入一个spring-boot-start-web, 到底发生了什么? 一图胜千言
4.内置Tomcat, 简化服务器的配置
5.当然SpringBoot还有很多优势, 后面逐步讲解.
Spring SpringMVC SpringBoot的关系
梳理关系
Spring SpringMVC SprintBoot的关系
1.它们大概的关系是: Spring Boot > Spring > Spring MVC
拓展: Spring MVC -> Servlet -> Java Web -> java基础
2.SpringMVC只是Spring处理WEB层请求的一个模块/组件, Spring MVC的基石是Servlet
3.Spring的核心是IOC和AOP, IOC提供了依赖注入的 容器, AOP解决了面向切面编程
4.Spring Boot是为了简化开发, 推出的 封神框架( 约定优于配置[COC], 简化了Spring项目的配置流程), SpringBoot包含很多组件/框架, Spring就是最核心的内容之一, 也包含Spring MVC
5.Spring家族, 有众多衍生框架和组件例如 boot, security, jpa等, 它们的基础都是Spring
如何理解 -约定优于配置
1.约定优于配置(Convention over Configuration/COC), 又称按约定编程, 是一种软件设计规范, 本质上是对系统, 类库或框架中一些东西假定一个大众合理的默认值[缺省值]
2.例如在模型中存在一个名为User的类, 那么对应到数据库会存在一个名为user的表, 只有在偏离这个约定时才需要做相关的配置 (例如你想将表名命名为t_user等非user时才需要写关于这个名字的配置)
3.简单来说就是假如你所期待的配置与约定的配置一致, 那么就可以不做任何配置, 约定不符合期待时, 才需要对约定进行替换配置
4.约定优于配置理念[解读: 为什么要搞一个约定优于配置]
约定其实就是一种规范, 遵循了规范, 那么就存在通用性, 存在通用性, 那么事情就会变得相对简单, 程序员之间的沟通成本会降低, 工作效率会提升, 合作也会变得更加简单.
🔜 下一篇预告: springboot系列二: sprintboot依赖管理
📚 目录导航 📚
- springboot系列一: springboot初步入门
- springboot系列二: sprintboot依赖管理
- springboot系列三: sprintboot自动配置
- springboot系列四: sprintboot容器功能
- springboot系列五: springboot底层机制实现 上
- springboot系列六: springboot底层机制实现 下
- springboot系列七: Lombok注解,Spring Initializr,yaml语法
…
💬 读者互动 💬
在初步入门 Spring Boot 的过程中,您有哪些新的发现或疑问?欢迎在评论区留言,让我们一起讨论吧!😊