❤️❤️❤️Spring专栏更新中,各位大佬觉得写得不错,支持一下,感谢了!❤️❤️❤️ Spring + Spring MVC + MyBatis专栏
前面我们讲完了Spring的相关知识,现在来学习SpringBoot,本篇代码较少,全是干货。
Spring 的诞生是为了简化 Java 程序的开发的,而Spring Boot 的诞⽣是为了简化Spring程序开发的。
Spring Boot是一个轻量级的框架,它能够帮助开发者快速构建基于Spring框架的应用程序。相比于传统的Spring框架,在使用Spring Boot时,我们不需要进行大量的配置和集成,而是可以通过简单的注释和代码来实现自动化配置和集成。所以对于这个颠覆式的改变,我们把它叫做Spring Boot,但其最核心的还是Spring。
Spring Boot有以下几个优点:
Idea 社区版(其他版本也同样适用),要先安装 Spring Boot Helper 插件才能创建 Spring Boot 项目,如下图所示:
安装好之后,它的名字就变成了 Spring Initializr and Assistant,如下图所示:
这个插件在 idea 社区版 2022.1.x 之前都免费,idea 2022.2.x 之后开始收费了,所以说版本太高也不一定是好事,有可能要花钱。 如果你的是破解版,是不需要安装这个插件的。 虽然我的是破解版,但我也会将社区版的细节都说到,下面开始创建项目。
小知识: 发布 Spring Boot 2要求的最低 JDK 8.。2022.12 发布了 Spring Boot 3基于 Spring 6要求的最低 JDK 版本 17.
Lombok:
Lombok是一个通过注解以达到减少代码的Java库。在Spring框架中,Lombok可以用来减少Java类中的冗长的getter、setter方法、构造函数等代码的编写,从而提高开发效率。
Lombok提供了很多实用的注解,包括 @Data、@Getter、@Setter、@NoArgsConstructor、@AllArgsConstructor 等等,这些注解可以自动生成对应的方法,使得Java类的编写更加简洁明了。例如,使用@Data注解可以自动生成getter、setter方法、equals方法、hashCode方法和toString方法。
除此之外,Lombok还提供了许多其他有用的注解,如@Builder可以帮助我们快速构建复杂的Java对象,@Slf4j可以自动生成日志记录器等等。总之,Lombok可以帮助我们更加便捷地编写Java代码,提高开发效率,减少代码量。
需要注意的是,由于Lombok会修改Java字节码,因此在使用Lombok时需要安装相应的插件或者添加相关的依赖,以确保在运行时能够正确地加载生成的代码。
到Spring日志文件的时候我会详细讲解,现在先简单了解,知道Lombok有什么用即可
添加其他依赖,也是类似的,但是现在就只需添加这三个,如果你添加了多余的依赖,因为Spring Boot有自动装配的机制,可能会导致你的项目启动不起来。 千万注意选择2.x的Spring Boot版本
点击 Finish 就完成 Spring Boot 的项目创建了,在pom.xml就可以看见我们添加的依赖。
第⼀次打开 Spring Boot 项目需要加载很久,因为当前 Spring Boot 框架并没有在自己的本地仓库(上面四个依赖在你本地都没有,需要下载)。 为了加速 Spring Boot 项⽬的下载,在打开项目之前,请先确认自己的 Maven 已经配置为国内源:
国内 Settings.xml 的配置信息如下:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0http://maven.apache.org/xsd/settings-1.0.0.xsd">
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<profiles>
</profiles>
</settings>
初始化:
如果你创建之后的.java文件是橙色的,说明这个项目你创建好了,但是没有初始化好。
下面来手动初始化:
选择Maven:
这样操作之后,idea才会使用Maven的形式来加载整个项目。加载之后:
这样就初始化完成了。
Spring Boot 项目有两个主要的目录:
上面这些划线的文件可以直接删除:
按住Ctrl多选,右键点击删除就行。删除之后:
SpringBootdemoApplication(启动类)
package com.example.springbootdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication//SpringBoot项目的入口 启动注解
public class SpringBootdemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootdemoApplication.class, args);
}
}
在 SpringBootdemoApplication同文件夹下 创建一个TestController类
package com.example.springbootdemo;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@Controller//当前类为控制器
@ResponseBody//返回的是数据,而非页面
/*@RestController*/ //复合注解 = @Controller+@ResponseBody
public class TestController {
//请求映射 url 路由注册
@RequestMapping("hi")
public String sayHi(String s){
//为空为null 默认值处理
//if (s==null||s.equals("")){} 正常写法
if(!StringUtils.hasLength(s)){ //Spring中更简单的写法 判断是否有长度
s="张三";
}
return "你好"+s;
}
}
运行启动类的main方法,记得是运行启动类,运行之后:
控制台信息:
随便去一个浏览器访问 localhost:8080/路由id 访问
也可以通过 127.0.0.1:8080/路由id 访问
上面是s为空,默认值,也可以自己传值:
我们尝试将 TestController 移动到其他包下,比如以下方式:
运行我们的项目,发现程序报错了,如下图所示:
这说明 Spring Boot 项目没有将对象注入到容器中。
正确路径:
这时候 Spring Boot 项目才能正常的将 bean 注入到容器中。
小结:约定大于配置🍓
以上情况反应了 Spring Boot 项目的另⼀个特点: 约定⼤于配置。
对比 Spring 的项目我们也可以看到这⼀特点,比如在 Spring 中也是要配置 Bean 的扫描路径的,而 Spring Boot 则不需要,Spring 配置如下:
三、网页版创建Spring Boot项目(第二套方案)🍭 不使用 Idea 也可以创建 Spring Boot 项⽬,我们可以使用 Spring 官方提供的网页版来创建 Spring Boot 项目。还在但你实在创建不了的时候,可以通过网页去创建Spring Boot项目。 网页版创建项目先访问:start.spring.io ,如下图所示:
添加依赖
点击下载,会下载一个压缩包
下载之后,解压缩(为了方便,我就直接放在桌面)
可以看到,这里和我们idea里面创建的是一样的,一样的,可以把下面这些用不到的文件删除(当然也可以不删)
删完之后复制路径(路径里面不要出现中文)
然后通过idea去打开,可能还需要初始化一会,可以看到下面,项目初始化完成
启动项目,发现它没有自动关闭,就是创建完成了
可以将这个网页版放在自己电脑中,别去删除它,以防哪天突然创建不了,以备不时之需。