SpringBoot01基础入门

什么是SpringBoot?

 我们现在的SSM框架对于现在主流的开发,架构起来还是太麻烦,简单来说SpringBoot可以让我们的spring生态架构变得更加简单。

springboot的优点与缺点

优点:

(1)之前我们的程序需要写一大堆的spring配置文件,用了springboot之后就简化多了

(2)之前我们的水果后台管理系统需要用tomcat进行web部署启动,使用springboot之后会内置             web启动器,非常方便

(3)之前我们的ssm框架需要一大堆的jar包,还要版本能够适配,现在只需要导入一个starter就           可以建立起一个web应用的场景,会帮我们自动配置好各种jar包

(4)现在我们使用mysql和redis省去了大量的配置步骤,要写数据库连接什么的

(5)运维人员可以实时监控程序的数据指标

(6)没有xml文件,可以进行完全注解开发

缺点:

现在编程架构的大背景

微服务

 分布式

分布式可能出现的问题


 如何解决这些问题

 使用springboot快速搭建微服务模块,使用springcloud进行分布式部署

SpringBoot的HelloWorld

搭建环境

配置maven的环境,本地仓库,默认jdk,阿里云镜像

 现在我们创建一个maven项目,但是如何让我们的程序使用springboot2呢?

 在pom文件里加入标签,告诉idea,我们这次的项目需要使用springboot。

如何告诉idea我们现在开发的是一个web应用呢?——还是导入依赖

 maven会自动导入web开发相应的环境与包,非常的方便。

 书写代码

新建一个主程序类

主程序类:告诉项目这是一个springboot应用,只要写完了其他代码,执行主程序类,整个web项目就会自动跑起来,不用再像之前还要配置tomcat这种东西。

SpringApplication.run(主程序类的类名.class,参数args)——这个是主程序类的固定写法

 

 直接书写springMVC的controller层

package com.LALALA.boot.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

//@ResponseBody

//1.声明这是controller层,spring里的一个基础注解
//@Controller

//4.现在我们上面有两个注解,可不可以想办法整合一下?——可以
@RestController
public class HelloController {
    //书写一个方法用来返回网页的/hello请求


    //3.这个方法最后返回的是字符串,所以要加这个请求,但是这个类中可能不止这一个方法返回字符串,所以加在这个类上面比较好
    //@ResponseBody

    //2.这个请求是映射前端最后面加的是什么,如果加的是/hello,就执行这个方法
    @RequestMapping("/hello")
    public String handle01(){
        return "Hello SpringBoot2 !";
    }
}

运行程序

直接启动主类程序就可以啦,不用再配置tomcat什么的啦,方便好用

启动后控制台告诉我们tomcat已经在8080端口部署了

 访问

成功访问

对配置的抽取

虽然现在程序可以运行,但是以前我们可以在tomcat里面改端口号或者其他配置,现在好像没法改。

但是,springboot对配置进行了抽取,我们只需要建立一个配置文件用来存放以后所以无论是tomcat,MVC.........所有的配置。

 更改访问端口号为8888

 测试成功

 除了配置tomcat,还可以配置其他的东西

新的打包形式

之前我们的项目要打成war包放在tomcat上运行,但是现在可以直接打成jar包,在命令行窗口就可以启动,只需要在pom里添加标签

而且这个jar包里自带了所有的运行环境!

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

 
SpringBoot的特性

依赖管理

(1) 父项目做依赖管理

什么是父项目?

我们之前在pom文件里写的这个标签

我们的这个maven项目里已经用<parent>注明了我们继承了2.3.4版本的springboot项目,所以我们下面的其他所有依赖都不需要加版本编号了

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
    </parent>

这个父项目里面配置了许许多多的依赖,这样子项目只要继承了这个父项目,我们的项目以后就不用自己写其他的版本号什么的了。

譬如下面的我们引入spring的web启动器,就没有加版本号

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

</dependencies>

但是我们导入的jar包的版本都是谁来控制的呢?

2.3.4版本的springboot项目的父项目是什么呢?

是这个,我们再查看它的父项目 

我们发现它的properties标签里配置了许许多多的jar包版本

 它几乎声明了所有开发中所依赖的常用jar包和适配的版本,这就是自动仲裁机制

所以我们在pom添加其他依赖的时候不用声明依赖的版本,不声明版本就是默认使用maven所设定的jar包

如果有一天不想用maven给我们默认的版本怎么办?

直接加version就可以了 

 

(2)场景启动器starter

什么是场景启动器?

就是告诉项目现在我们是在做一个什么类型的项目,比如是web项目,maven就会引入所有相关的依赖

自动配置

 

自动配置一定需要两个东西,第一个引入依赖,第二个配置环境

(1)自动配置Tomcat

在我们引入web的启动场景的时候,tomcat依赖就已经引入了

 (2)自动配置springMVC

众所周知,我们的springMVC一定需要中央控制器,我们写代码打印出所有的bean容器名称看看有没有中央控制器。

package com.LALALA.boot;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {

        //SpringApplication.run默认返回IOC容器
        ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class, args);

        //查看容器中的所有组件
        String[] names = run.getBeanDefinitionNames();

        //打印容器中组件名称
        for (String name : names){
            System.out.println(name);
        }

    }
}

搜索控制台

有中央控制器组件 

此外我们的MVC还有配置防止中文乱码的问题

测试看看不做任何多余配置能不能解决中文乱码

 

 可以正常解决

(3)默认的包结构

之前我们的MVC要自己设定对哪些包进行扫描,现在不用自己配置,我们有默认的方式进行包扫描

以我们现在的结构,如果在LALALA包里建立一个controller就扫描不到了

 测试

 如果放在boot包(与主程序同包),就可以扫描到了

 

 那么如果我们就是很叛逆的想像第一种那样放应该怎么办?

修改主程序类注解就可以

 (4)各种配置的默认值

 如果我们以后想要修改配置

可以在我们的application.properties文件修改

也可以后期提取到容器内的对象进行修改

(5)按需加载自动配置项

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 是一个基于 Spring 框架的开发框架,它简化了 Spring 应用程序的开发和部署。它提供了一种快速开发的方式,可以帮助开发人员更加专注于业务逻辑的实现,而不是过多地关注底层框架的细节。 以下是 Spring Boot 零基础入门的步骤: 1. 安装 Java 开发环境:在开始学习 Spring Boot 之前,需要先安装 Java 开发环境。可以从官网下载 Java SE 开发工具包 (JDK)。 2. 下载并安装 Spring Boot:可以从 Spring 官方网站下载 Spring Boot,并按照官方文档安装。 3. 创建一个 Spring Boot 应用程序:可以使用 Spring Boot CLI 命令行工具创建一个新的 Spring Boot 应用程序。在命令行中输入以下命令即可创建一个新的 Spring Boot 应用程序: ``` spring init --dependencies=web my-spring-boot-app ``` 这个命令会创建一个名为“my-spring-boot-app”的新应用程序,并添加一个“web”依赖。这个依赖包含了 Spring MVC 和 Tomcat 服务器,可以用于创建 Web 应用程序。 4. 编写代码:使用你喜欢的代码编辑器打开创建的 Spring Boot 应用程序,并编写代码。在这里,可以使用 Spring Boot 提供的自动配置功能来简化应用程序的开发。 5. 运行应用程序:在命令行中输入以下命令,即可运行应用程序: ``` cd my-spring-boot-app ./mvnw spring-boot:run ``` 这个命令会启动应用程序,并在浏览器中打开它。 6. 学习 Spring Boot 的核心功能:学习 Spring Boot 的核心功能可以帮助你更好地理解 Spring Boot 的工作原理,以及如何使用它来构建更加复杂的应用程序。可以通过阅读官方文档、参加在线课程或者参考书籍来学习 Spring Boot 的核心功能。 以上是 Spring Boot 零基础入门的步骤,希望对你有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值