当前位置: 首页 > news >正文

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

文章目录

  • SpringBoot 基本介绍
    • 官方文档
    • Spring Boot 是什么?
    • SpringBoot 快速入门
      • 需求/图解说明
      • 完成步骤
      • 快速入门小结
    • Spring SpringMVC SpringBoot 的关系
      • 总结
        • 梳理关系
        • 如何理解-约定优于配置

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

image-20230802165134884

image-20230802164317683

完成步骤

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

image-20230802164425378

image-20230802164457850

  1. 创建maven 项目

image-20230802164724370

image-20230802165009984

image-20230802165257569

  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")@ResponseBodypublic 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-20230802170639585

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

image-20230802171101480

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

Spring SpringMVC SpringBoot 的关系

总结

梳理关系

  1. 他们的关系大概是: Spring Boot > Spring > Spring MVC
  2. Spring MVC 只是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、约定优于配置理念【解读:为什么要搞一个约定优于配置】
约定其实就是一种规范,遵循了规范,那么就存在通用性,存在通用性,那么事情就会变得相对简单,程序员之间的沟通成本会降低,工作效率会提升,合作也会变得更加简单。

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

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

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

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

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

http://www.lryc.cn/news/115615.html

相关文章:

  • Scons编译lib库
  • React源码解析18(1)------ React.createElement 和 jsx
  • 系列3-常见的高可用MySQL解决方案
  • C#登录后携带cookie爬取数据
  • 自动驾驶国家新一代人工智能开放创新平台产业化应用
  • Maven分模块-继承-聚合-私服的高级用法
  • Spring 是如何解决循环依赖问题的?
  • Spring-2-深入理解Spring 注解依赖注入(DI):简化Java应用程序开发
  • java 强密码验证策略工具类
  • CI/CD—K8S 基本理解与部署
  • 2023网络安全常用工具汇总(附学习资料+工具安装包)
  • OpenStack监控工具
  • 讲解密码学综合应用
  • Flamingo
  • Leetcode-每日一题【剑指 Offer 12. 矩阵中的路径】
  • 安全渗透知识总结二
  • 【线程】wait()+notifyAll()实现多个线程交替遍历,输出ABCABC
  • MyBatis 缓存机制复习及项目中的应用经历
  • 匈牙利算法详解
  • script的三种加载模式
  • mongo 中两张表联合查询
  • 【Linux】多路转接 -- epoll
  • 学会RabbitMQ的延迟队列,提高消息处理效率
  • ChatGPT会取代搜索引擎吗?BingChat、GoogleBard与ChatGPT区别
  • 多个QLabel中文字左右对其问题研究
  • 链式二叉树统计结点个数的方法和bug
  • C语言-报错集锦-03-malloc(): memory corruption: 0x0000000001496d90 ***
  • 现代C++中的从头开始深度学习:【5/8】卷积
  • 以太网帧格式与吞吐量计算
  • vue中install方法