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

在人生的道路上,不管是潇洒走一回,或者是千山独行,皆须是自己想走的路,虽然,有的人并不是很快就能找到自己的方向和道路,不过,只要坚持到底,我相信,就一定可以找到自己的路,只要找到路,就不必怕路途遥远了。

导读:本篇文章讲解 SpringBoot-02-springBoot介绍及程序创建,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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 提供了大量的默认自动配置,来简化项目的开发,开发人员也通过配置文件修改默认配置。

  • Spring和SprigBoot的区别

项目周期:SpringBoot比Spring创建项目快。
简化配置:SpringBoot尽可能自动配置而Spring配置需要手动配置。
集成构建:SpringBoot提供了常用模块启动器少量配可以集成构建;而Spring集成流程繁琐。
部署方式:SpringBoot支持jar部署和war包部署,而Spring仅支持war包部署
web容器:SpringBoot内嵌入web容器,而Spring需要额外的依赖

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文件介绍:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.0</version>
        <relativePath/> <!-- lookup parent from repository --><!--远程在线的-->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>springbootdemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springbootdemo</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>12</java.version>
    </properties>
    <dependencies>
    <!--一个个starter启动器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!--springboot的所有依赖都以spring-boot-starter开头-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--web依赖,tomcat、dispachServlet、.xml不用手动配置了-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    <!--打包插件-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
  • 如上所示,主要有四个部分:
  • 项目元数据信息:创建时候输入的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";
    }
}
  • 然后启动程序入口类
//本身为一个spring组件
//程序主入口
@SpringBootApplication
public class SpringbootdemoApplication {
    //SpringApplication
    public static void main(String[] args) {
        SpringApplication.run(SpringbootdemoApplication.class, args);
    }

}
  • 之后在控制台会打印启动消息
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

  • 从中找出可以请求的地址,来请求接口测试

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/123869.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!