首页 > 其他分享 >springboot学习笔记1-基本介绍

springboot学习笔记1-基本介绍

时间:2023-04-02 14:46:03浏览次数:32  
标签:springboot Spring 约定 配置 boot 笔记 学习 spring

springboot基本介绍

官方文档

什么是springboot

  • spring boot可以轻松创建独立的、生产级的基于spring的应用程序

  • spring boot直接嵌入tomcat、jetty、或undertow, 无须打war包,可以直接运行spring boot应用程序

quickstart for springboot demo

需求说明:

quick start

  1. 创建一个空的maven工程, 在pom.xml文件中导入boot父工程和web项目场景启动器
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.3</version>
</parent>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
  1. 声明程序入口
@SpringBootApplication
public class MainApp {
    public static void main(String[] args) {
        SpringApplication.run(MainApp.class, args);
    }

}
  1. 开发一个控制器,用于处理请求
@Controller
public class HelloController {
    @RequestMapping("/hello")
    @ResponseBody
    public String xx() {
        return  "hello springboot application";
    }
}
  1. 运行MainApp.java程序,在浏览器输入http://localhost:8080/hello

  2. 总结

  • SpringBoot 比较传统的 SSM 开发, 简化整合步骤, 提高开发效率
  • 简化了 Maven 项目的 pom.xml 依赖导入, 可以说是一键导入
  • 内置 Tomcat , 简化服务器的配置

spring、springmvc,springboot三者之间关系

  • 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

如何理解 -约定优于配置

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

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

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

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

标签:springboot,Spring,约定,配置,boot,笔记,学习,spring
From: https://www.cnblogs.com/tswinter3/p/17274897.html

相关文章

  • Elasticsearch 学习-Linux单机和集群安装
    Elasticsearch学习-Linux单机和集群安装3.3linux集群安装3.3.1软件下载软件下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-8-03.3.2软件安装1)解压软件将下载的软件解压缩#解压缩tar-zxvfelasticsearch-7.8.0-linux-x86_64.tar......
  • VUE2.0 学习 第一组
    本笔记主要参考菜鸟教程和官方文档编写。 1.对于Vue2.0来说每个vue应用都需要实例化vue来实现。   varvm=newVue({//选项}) 2.首先,DOM是一种api,它可以动态地访问程序和脚本,更新其内容、结构和文档,我认为符合这类功能的都可以叫dom,其次,每一个DOM元素的id(......
  • qmake学习
    在Qt的.pro文件中,有许多变量可以用于配置和管理项目的构建过程以下是Qt中常用的.pro变量及其说明:SOURCES:指定项目源代码文件的名称和路径,以空格分隔HEADERS:指定项目头文件的名称和路径,以空格分隔FORMS:指定QtDesignerUI文件的名称和路径,以空格分隔RESOURCES:指定Qt资源文件的名称......
  • 计网学习笔记五 wireless && mobile networks
    老师把无线网络用一节课一遍过了…感觉没能学透,便课后自己总结,看书,找资料补充,把无线网络大概摸了个七七八八。虽然不算精细,但还能看!内容包括WLAN总概,WiFi—WLAN的实现,802.11规定的帧结构,以及蜂窝网络。强烈推荐一本书:《802.11WirelessNetworks:TheDefinitiveGuide》,2ndEd......
  • SpringBoot的@Async注释的用法并例子
    在SpringBoot中,@Async注解用于将一个方法标记为异步执行的方法。使用该注解的方法将在一个单独的线程中异步执行,而不会阻塞调用线程。这对于处理需要长时间运行的任务或需要异步处理的任务非常有用。下面是一个简单的示例:@ServicepublicclassMyService{@Asyncpu......
  • springboot-监听器
    监听器ApplicationListener可以实现这个接口时传入对应的监听器,用于监听该事件比如:实现ApplicationListener<ContextRefreshedEvent>接口,重写onApplicationEvent方法,将ContextRefreshedEvent对象传进去。如果我们想在加载或刷新应用上下文时,也重新刷新下我们预加载的资源......
  • .net reactor 学习系列(五)---.net reactor针对De4Dot脱壳工具的应对
     De4Dot是一个专门反混淆.net程序的一个工具,支持对于以下工具混淆过的代码的清理:Agile.NET(akaCliSecure)Babel.NETCodeFortCodeVeilCodeWallCryptoObfuscatorDeepSeaObfuscatorDotfuscator.NETReactorEazfuscator.NETGoliath.NETILProtectorMaxtoCodeMPRESSRummageSkater.N......
  • 《程序是怎样跑起来的》读书笔记1——对程序员来说CPU是什么
    一丶什么是程序程序是指令和数组的组合体,如:print("你好世界"),其中print是指令,你好世界是数据。CPU能直接识别和执行的只有机器语言,使用C,java这种高级语言编写的程序需要编译转换后才可以运行。二丶CPU的内部结构CPU即中央处理器,相当于计算机的大脑,内部由许多晶体管构成,负责解......
  • SpringBoot中Mybatis的应用
    创建一个SpringBoot项目,然后如下操作:(1)添加Lombok插件--简化实体类 (2)添加Mybatis框架和MySQL驱动---访问Mysql和使用Mybatis (3)创建pojo包和实体类在项目中创建pojo包,并在其中创建实体类。实体类上可以使用Lombok注解。首次使用时,需要在Ieda中安装该插件。L......
  • 【算法学习】图论模板
    注意!并查集只适用于无向图。DFS特点:当前层可以获得下层状态、向下层不断遍历处理方式:递归模板://dfs注意剪枝voiddfs(intu){if(u>n){输出路径return;}for(inti=0;i<n;i++)//遍历点{if(条件)......