SpringBoot 一(入门篇)

1、spring能干什么?

​ 在学SpringBoot之前我们肯定已经学过了spring、SpringMvc、Mybatis等框架了。使用整合这三个框架的方式去开发我们的代码比我们直接使用原生的Servlet去做Web开发更方便,在体验到SSM框架带来的好处的同时,我们也在为使用SSM框架开发之前要写一大堆的配置文件而苦恼,毕竟将这些东西都整合在一起不容易。也就是说我们做Spring Web项目开发之前要做的步骤包括但不限于以下步骤:

  • 配置web.xml去加载Spring、SpringMvc等
  • 配置数据库连接、配置数据源
  • 读取配置文件

要是一不小心配错了其中的某个步骤,或者打错了某个东西,相信经验丰富的人都有过奇妙的体验。Spring这个大熔炉能容纳的东西可不仅仅是这些,还有很多其他的框架,包括但不限于web开发、数据访问、安全控制、分布式、消息服务、移动开发、批处理等方面的框架。但仅仅是整合SSM要写的配置文件就足以让人发狂,若是再加上其他框架,那才真正是配置地狱了。

​ 为了解决每次进行应用开发之前都要自己手动写配置文件,也为在程序员整合其他框架的时候不再重复那些固定的配置步骤,浪费时间,为了提高程序员的开发效率,SpringBoot出现了。以前要手动写一大堆配置文件才能启动的项目,现在SpringBoot完全自动的帮我们配置好了,我们只需要创建一个SpringBoot项目,就可以启动了,若果是Web应用的话再写一个请求方法,就能够直接访问该请求了。

在这里插入图片描述

​ 如上图所示,都是spring生态中的技术,比如Microservices(微服务开发),我们实际开发中随便一个web应用因为功能模块众多,它随时可能成长为一个大型应用;故我们不能将其功能模块都写在一个项目中,我们应该将其中的功能模块拆分为一个一个微小的功能模块,每一个小模块就被成为一个微服务。

Reactive响应式开发、Cloud分布式云开发、serverless无服务开发、EventDriven事件驱动、Batch批处理等。spring的生态圈不仅仅局限于图中所示模块,还有很多很多。 要程序员每次开发应用的时候都自己写一遍,显然是不太理智的。但SpringBoot开发除了不用自己手动书写配置文件之外,还有以下优点:
● Create stand-alone Spring applications
○ 创建独立Spring应用
● Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
○ 内嵌web服务器
● Provide opinionated ‘starter’ dependencies to simplify your build configuration
○ 自动starter依赖,简化构建配置
● Automatically configure Spring and 3rd party libraries whenever possible
○ 自动配置Spring以及第三方功能
● Provide production-ready features such as metrics, health checks, and externalized configuration
○ 提供生产级别的监控、健康检查及外部化配置
● Absolutely no code generation and no requirement for XML configuration
○ 无代码生成、无需编写XML配置文件

2、如何快速创建一个SpringBoot项目

2.1、系统要求

● Java 8及以上
● Maven 3.3以上
● idea 2019.1.2以上

maven设置

先设置一下maven的setting.xml配置文件,让其使用阿里云的镜像,以及设置jdk为1.8版本

<mirrors>
      <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
      </mirror>
  </mirrors>
 
  <profiles>
         <profile>
              <id>jdk-1.8</id>
              <activation>
                <activeByDefault>true</activeByDefault>
                <jdk>1.8</jdk>
              </activation>
              <properties>
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>1.8</maven.compiler.target>
                <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
              </properties>
         </profile>
  </profiles>

2.2、编写入门案例HelloWorld

需求:浏览发送/hello请求,响应 Hello。
创建工程
在这里插入图片描述
next
在这里插入图片描述
在这里插入图片描述
finish之后等待SpringBoot项目导入,导入完之后
在这里插入图片描述
在编写具体的请求方法之前,我们看看这个项目的pom文件
在这里插入图片描述

最后,我们来写一个类似SpringMvc的请求方法。
注意,这个请求方法一定要跟自动生成的带有main方法的MdyApplication类同一个目录或者在它的子目录下。

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

//@ResponseBody
//@Controller
@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String handle(){
        //将这段字符串返回给浏览器
        return "hello handsome boy , you are learn springboot 2 ! ";
    }
}

启动项目
在这里插入图片描述
出现如下表示启动成功
在这里插入图片描述
在浏览器访问hello请求

在这里插入图片描述
访问成功!!!整个过程不用写任何配置文件,连pom文件都是自动生成并帮我们引入Web-stater场景启动器。当然如果我们想要对项目的某项配置进行修改,比如修改项目启动的端口号。我们也可以在resources目录自动生成的application.properties文件(没有就自己创建,名字要一样)进行修改,要修改端口号的话,只需要在该文件中加上如下内容:

server.port=8888

然后重新启动项目,访问hello请求

这个统一的配置文件application.properties,就算我们不去设置,里面的配置也会有相应的默认值。而这个配置文件到底能写什么配置,我们可以去官方文档看看

https://docs.spring.io/spring-boot/docs/2.4.12/reference/html/appendix-application-properties.html#common-application-properties

在这里插入图片描述

以前我们 在SSM部署项目的时候,都是将其打包成war文件,然后再部署到tomcat中去。
而springboot的做法是创建一个可执行的jar包,这个jar包自带了项目的整个运行环境。

我们只需要在springboot的pom文件中加入:

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

然后进行maven打包
在这里插入图片描述
打包完成后,我们去系统目录下的target目录,发现其中有一个jar包。

然后将我们的maven项目的主程序类停止,打开命令端口进入该jar包所在目录,然后用java的命令运行该jar包
在这里插入图片描述
部署成功后,直接发起请求
在这里插入图片描述
注意,我们的idea中是没有启动项目的

至此我们的入门案例结束了!!!
还有springboot本质上没有新的东西,底层都是spring、springmvc等框架,所以我们同样可以在springboot中使用我们曾经学过的spring、springmvc等开发方法

猜你喜欢

转载自blog.csdn.net/glass__sky/article/details/121152568