• SpringBoot-02-springBoot介绍及程序创建


    2.SpringBoot

    2.1 spring

    • Spring框架是由于软件开发复杂性而创建的,轻量级的控制反转(IOC)和面向切面编程的容器。

    • 简化开发的几种策略:

      • 基于bean的轻量级和最小侵入性编程;
      • 通过IOC,依赖注入(DI)和面向接口实现松耦合
      • 基于切面(AOP)和惯例进行声明式编程
      • 通过切面和模版减少样式代码
    • 随着Spring不断的发展,涉及的领域越来越多,项目整合开发需要配合各种各样的文件,逐渐使用复杂化,违背了最初的理念,甚至人称配置地狱。Spring Boot正是在这样的一个背景下被抽象出来的开发框架,目的为了让大家更容易的使用Spring、更容易的集成各种常用的中间件。

    2.2 springBoot

    • Spring Boot(官网:https://spring.io/):基于Spring开发,Spirng Boot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。
    • Spring Boot具有Spring一切优秀特性,Spring能做的事,Spring Boot都可以做,而且使用更加简单,功能更加丰富,性能更加稳定而健壮
    • SpringBoot以约定大于配置的核心思想,默认帮我们进行了很多设置,多数Spring Boot应用只需要很少的Spring配置。同时它集成了大量常用的第三方库配置(例如Redis、MongoDB、Jpa、RabbitMQ、Quartz等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用,简单来说就是Spring Boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven:整合了所有的jar包,spring boot整合了所有的框架。

    例如 spring-boot-starter-redis、spring-boot-starter-data-mongodb 和 spring-boot-starter-data-elasticsearch 等。这些依赖模块为 Spring Boot 应用提供了大量的自动配置

    • Spring Boot的主要优点:
    • 为所有Spring开发者更快的搭建和开发

    • 独立运行的 Spring 项目,Spring Boot 可以以 jar 包的形式独立运行,Spring Boot 项目只需通过命令“ java –jar xx.jar” 即可运行。

    • 开箱即用,提供各种默认配置来简化项目配置

    • 内嵌式servlet容器简化Web项目,Spring Boot 使用嵌入式的Servlet容器(例如 Tomcat、Jetty 或者 Undertow 等),应用无需打成 WAR 包 。

    • 没有冗余代码生成和XML配置的要求,不需要任何xml配置即可实现 Spring 的所有配置。

    • 自带应用监控

    • 提供starter简化Maven配置,提供了一系列的“starter”项目对象模型(POMS)来简化 Maven 配置

    • Spring Boot 提供了大量的默认自动配置,来简化项目的开发,开发人员也通过配置文件修改默认配置。

    2.3 第一个springboot程序

    • 官方:提供了一个快速生成的网站!DEA集成了这个网站
    2.3.1 方式1:
    • 可以在官网填写信息后直接下载zip文件后,导入idea开发(https://start.spring.io/)

    在这里插入图片描述

    必须将web依赖勾选上,否则没有内嵌tomcat

    • 解压项目包,并用编译器以Maven项目导入,以IntelliJ IDEA为例导入这个Maven.项目,一路下一步即可,直到项目导入完毕。如果是第一次使用,可能速度会比较慢,需要耐心等待一切就绪
    2.3.2 方式2:
    • 直接使用idea创建一个springboot项目(一般开发直接在IDEA中创建,IDEA创建也是通过官网创建的)

    在这里插入图片描述

    • 热部署依赖

    在这里插入图片描述

    • 在程序入口类SpringbootdemoApplication同级建业务包,才会被扫描到

    • pom.xml文件介绍:

    
    
        4.0.0
        
            org.springframework.boot
            spring-boot-starter-parent
            2.7.0
             
        
        com.example
        springbootdemo
        0.0.1-SNAPSHOT
        springbootdemo
        Demo project for Spring Boot
        
            12
        
        
        
            
                org.springframework.boot
                spring-boot-starter
            
            
            
                org.springframework.boot
                spring-boot-starter-mail
            
            
                org.springframework.boot
                spring-boot-starter-test
                test
            
            
            
                org.springframework.boot
                spring-boot-starter-web
            
        
        
        
            
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                
            
        
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 如上所示,主要有四个部分:
    • 项目元数据信息:创建时候输入的Project Metadata部分,也就是Maven项目的基本元素,包括:groupld、artifactld、version、name、description等
    • parent:继承spring-boot-starter-parent的依赖管理,控制版本与打包等内容
    • dependencies:项目具体依赖,这里包含了spring-boot-starter-web用于实现HTTP接口(该依赖中包含了Spring MVC),官网对它的描述是:使用Spring MVC构建Web(包括RESTful)应用程序的入门者,使用Tomcat作为默认嵌入式容器。spring-boot-starter-test用于编写单元测试的依赖包。更多功能模块的使用我们将在后面逐步展开。
    • build:构建配置部分。默认使用了spring-boot-maven-plugin,配合spring-boot-starter-parent就可以把Spring Boot应用打包成JAR来直接运行。
    • 在启动类同级目录下创建controller包,并新建一个HelloController
    //自动装配
    @RestController
    public class HelloController {
    
        @RequestMapping("/hello")
        public String hello(){
            return "hello";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 然后启动程序入口类
    //本身为一个spring组件
    //程序主入口
    @SpringBootApplication
    public class SpringbootdemoApplication {
        //SpringApplication
        public static void main(String[] args) {
            SpringApplication.run(SpringbootdemoApplication.class, args);
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 之后在控制台会打印启动消息
    2022-07-27 23:12:55.533  INFO 5624 --- [           main] c.e.s.SpringbootdemoApplication          : No active profile set, falling back to 1 default profile: "default"
    2022-07-27 23:12:56.112  INFO 5624 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
    2022-07-27 23:12:56.119  INFO 5624 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
    2022-07-27 23:12:56.119  INFO 5624 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.63]
    2022-07-27 23:12:56.198  INFO 5624 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
    2022-07-27 23:12:56.198  INFO 5624 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 640 ms
    2022-07-27 23:12:56.419  INFO 5624 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
    2022-07-27 23:12:56.426  INFO 5624 --- [           main] c.e.s.SpringbootdemoApplication          : Started SpringbootdemoApplication in 1.128 seconds (JVM running for 1.66)
    2022-07-27 23:13:04.799  INFO 5624 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
    2022-07-27 23:13:04.799  INFO 5624 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
    2022-07-27 23:13:04.800  INFO 5624 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 从中找出可以请求的地址,来请求接口测试

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EY6oBBPE-1660477789697)(../typora-user-images/image-20220727233849385.png)]

    • 修改端口:在application.properties文件中添加:
    #更改项目端口号
    server.port=8081
    
    • 1
    • 2
    • banner.txt文件会将spring的启动图标替换为自定义的。在线生成网站:https://www.bootschool.net/ascii-art,只需要将在线生成的banner.txt放到类路径下resources目录下,项目启动的时候自动会将启动图标替换为banner.txt文件中的

    下一篇:SpringBoot-03-Springboot自动装配原理

  • 相关阅读:
    【Python】模块与包的组织
    让机器人飞入寻常百姓家丨青源Workshop「人形机器人」观点集锦
    03 最小CMake项目
    如何选择靠谱的全景平台?VR全景加盟从哪方面对比?
    好用的方法记录
    京东二面:Sychronized的锁升级过程是怎样的
    Discuz淘宝客网站模板/迪恩淘宝客购物风格商业版模板
    Redis的分布式锁
    Debian及Centos怎么下载软件包及依赖包
    安防综合管理系统EasyCVR平台GA/T1400视图库:基于XML的消息体格式
  • 原文地址:https://blog.csdn.net/weixin_42045639/article/details/126335416