Spring Boot介绍--快速入门--约定优于配置

简介: Spring Boot介绍--快速入门--约定优于配置

SpringBoot 基本介绍


官方文档


官网: https://spring.io/projects/spring-boot

学习文档: https://docs.spring.io/spring-boot/docs/current/reference/html/

离线文档: spring-boot-reference.pdf

在线API: https://docs.spring.io/spring-boot/docs/current/api/


Spring Boot 是什么?


第一句话: Spring Boot 可以轻松创建独立的、生产级的基于Spring 的应用程序

第二句话: Spring Boot 直接嵌入Tomcat、Jetty 或Undertow ,可以"直接运行" Spring Boot 应用程序


SpringBoot 快速入门


需求/图解说明


构建一个SpringBoot 项目,浏览器发送/hello 请求[http://localhost:8080/hello],响应 Hello,SpringBoot

3911e0918b8773412e96803b66df7e50.png

987bd36c76e90da5e7fda1bcb9256a3e.png


完成步骤


  1. 确认开发环境是jdk 8 或以上,maven 在3.5+

f14a554b5e8886b213ebb37a6ae5e42a.png

868f9f438c8785e03d54b852b0fe635b.png


  1. 创建maven 项目

25ed44a2dd4f63ff9dd47b28ce56324d.png

3b23d6986cdbe736c0ce936c9ed912b1.png


6342ac78638231d66eeb214596275bee.png


  1. 在quickstart\pom.xml 引入SpringBoot 父工程和web 项目场景启动器
    导入之后要记得刷新maven,可以点开maven查看他导入的相关依赖有哪些
<?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.nlc</groupId>
    <artifactId>quickstart</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--导入springboot父工程-规定写法-->
    <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>


  1. 创建quickstart\src\main\java\com\nlc\springboot\MainApp.javaSpringBoot 应用主程序
// @SpringBootApplication 表示这是一个springboot 应用
@SpringBootApplication
public class MainApp {
    public static void main(String[] args) {
        //启动SpringBoot 应用程序
        SpringApplication.run(MainApp.class, args);
    }
}


  1. 创建quickstart\src\main\java\com\nlc\springboot\controller\HelloController.java 控制器
@Controller
public class HiController {
    //返回hi,springboot
    @RequestMapping("/hi")
    @ResponseBody
    public String hi() {
        System.out.println("website-" + website);
        return "hi~, SpringBoot";
    }
}


  1. 运行MainApp.java 完成测试, 浏览器http://localhost:8080/hi


快速入门小结


  1. SpringBoot 比较传统的SSM 开发, 简化整合步骤, 提高开发效率。
  2. 简化了Maven 项目的pom.xml 依赖导入, 可以说是一键导入, 如图.

image.png

  1. 引入一个spring-boot-starter-web, 到底做了什么?SpringBoot依靠maven依赖的传递性把jar包引入。查看类图

image.png

  1. 内置Tomcat , 把Tomcat 当作一个主键直接引入,简化服务器的配置
  2. 当然SpringBoot 还有很多优势,后面会逐步深入讲解


Spring SpringMVC SpringBoot 的关系


总结


梳理关系

他们的关系大概是: Spring Boot > Spring > Spring MVC

Spring MVC 只是Spring 处理WEB 层请求的一个模块/组件, Spring MVC 的基石是Servlet

Spring 的核心是IOC 和AOP, IOC 提供了依赖注入的容器, AOP 解决了面向切面编程

Spring Boot 是为了简化开发, 推出的封神框架(约定优于配置[COC],简化了Spring 项目的配置流程), SpringBoot 包含很多组件/框架,Spring 就是最核心的内容之一,也包含Spring MVC

Spring 家族,有众多衍生框架和组件例如boot、security、jpa 等, 他们的基础都是Spring


如何理解-约定优于配置


1、约定优于配置(Convention over Configuration/COC),又称按约定编程,是一种软件设计规范, 本质上是对系统、类库或框架中一些东西假定一个大众化合理的默认值(缺省值)。

2、例如在模型中存在一个名为User 的类,那么对应到数据库会存在一个名为user 的表,只有在偏离这个约定时才需要做相关的配置(例如你想将表名命名为t_user 等非user 时才需要写关于这个名字的配置)

3、简单来说就是假如你所期待的配置与约定的配置一致,那么就可以不做任何配置,约定不符合期待时, 才需要对约定进行替换配置

4、约定优于配置理念【解读:为什么要搞一个约定优于配置】

约定其实就是一种规范,遵循了规范,那么就存在通用性,存在通用性,那么事情就会变得相对简单,程序员之间的沟通成本会降低,工作效率会提升,合作也会变得更加简单。


生活中,这样的情况,大量存在…就比如周一到周五上班,周末休息,不用周六特意打电话给上级请假,因为理论上这是一个约定俗成的事情,周六周日就是休息时间。


5、约定优于配置不是说约定的优先级高,意思是如果你没有配置,就以约定的为准;配置了,就按照配置的来 。Convention over Configuration只是翻译过来是约定优于配置,它是从规范性、通用性以及提升工作效率这方面来理解的。


6、可以这么理解,如果大家遵守了约定,开发效率就会提升。如果自己需要配置就直接配置,以配置的为准。


Configuration只是翻译过来是约定优于配置,它是从规范性、通用性以及提升工作效率这方面来理解的。


6、可以这么理解,如果大家遵守了约定,开发效率就会提升。如果自己需要配置就直接配置,以配置的为准。

相关文章
|
3月前
|
Java 关系型数据库 MySQL
Spring Boot自动配置:魔法背后的秘密
Spring Boot 自动配置揭秘:只需简单配置即可启动项目,背后依赖“约定大于配置”与条件化装配。核心在于 `@EnableAutoConfiguration` 注解与 `@Conditional` 系列条件判断,通过 `spring.factories` 或 `AutoConfiguration.imports` 加载配置类,实现按需自动装配 Bean。
|
3月前
|
人工智能 Java 开发者
【Spring】原理解析:Spring Boot 自动配置
Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
|
2月前
|
前端开发 Java 应用服务中间件
《深入理解Spring》 Spring Boot——约定优于配置的革命者
Spring Boot基于“约定优于配置”理念,通过自动配置、起步依赖、嵌入式容器和Actuator四大特性,简化Spring应用的开发与部署,提升效率,降低门槛,成为现代Java开发的事实标准。
|
2月前
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
293 3
|
3月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
552 5
|
SQL 关系型数据库 MySQL
SpringBoot自定义配置注入的方式:自定义配置文件注入,从mysql读取配置进行注入
SpringBoot自定义配置注入的方式:自定义配置文件注入,从mysql读取配置进行注入
551 0
|
Java 数据库连接 Maven
SpringBoot【付诸实践 01】SpringBoot自定义starter保姆级教程(说明+源码+配置+测试)
SpringBoot【付诸实践 01】SpringBoot自定义starter保姆级教程(说明+源码+配置+测试)
211 1
|
Java 数据库连接 Spring
面试题:springboot的自定义配置有哪些
面试题:springboot的自定义配置有哪些
166 0
springboot WebMvcConfigurer详解自定义配置请求静态资源
springboot WebMvcConfigurer详解自定义配置请求静态资源
382 0
|
Java
springboot中自定义配置
springboot中自定义配置
85 0