spring core的方式来写代码还是比较繁琐的,而spring boot就是帮助程序员使用spring开发的一个脚手架(boot),它是一个用于构建Java应用程序的开源框架,旨在简化开发流程并提高生产效率。它的主要优点有:
-
快速启动和开发:Spring Boot提供了一系列的起始依赖和自动配置,使得你可以迅速搭建项目结构和基本配置,从而加快开发速度。你可以专注于业务逻辑,而不必花费太多时间在繁琐的配置上。
-
微服务架构支持:Spring Boot在微服务架构中得到广泛应用。它支持构建独立的、轻量级的微服务,每个微服务可以有自己的Spring Boot应用,这样可以更好地实现服务拆分和部署。
-
自动配置:Spring Boot基于约定大于配置的原则,提供了许多默认的自动配置选项,可以减少手动配置的工作量。这样,你可以避免常见的配置错误,专注于核心业务逻辑。
-
内嵌式Web容器:Spring Boot默认内嵌了多种Web容器(如Tomcat、Jetty等),使得你可以轻松地创建可独立运行的Web应用,而不需要额外安装或配置外部容器。
-
强大的生态系统:Spring Boot建立在Spring Framework的基础上,继承了Spring的优秀生态系统。你可以轻松地集成其他Spring项目(如Spring Data、Spring Security等),从而实现全面的功能。
1.Spring Boot项目创建(使用IDEA)
1.1如果使用的是社区版还需要安装一个下图中的插件:
开始创建项目之前先看一下自己的Maven国内源是否配置。(具体可以看我前面的博客)
国内 Settings.xml 的配置信息如下:
<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.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<!-- 中央仓库1 -->
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<!-- 中央仓库2 -->
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
</mirrors>
</settings>
1.2 创建Spring Boot项目
点击 Finish 就完成 Spring Boot 的项⽬创建了。第⼀次打开 Spring Boot 项⽬需要加载很久,因为当前 Spring Boot 框架并没有在⾃⼰的本地仓库。如果一直加载失败那就是国内源没有配置好,可以再次检查一下。
2.Spring Boot项目创建(网页版)
然后点击GENERATE就会下载一个本地的包,解压后:
会发现和自己在IDEA创建的目录是一致的,然后直接用IDEA打开就好了。
3.目录介绍和运行
点击启动类的 main ⽅法就可以运⾏ Spring Boot 项⽬了,或者点击右上角的运行,启动成功如下图所示:
输出Hello World
package com.example.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/user")
public class UserController {@RequestMapping("/sayhi")public String sayHi(){return "Hi,Spring Boot.";}
}
4.约定大于配置
如果我们将controller包放在和启动类所在的包同级的情况下:
启动项目后,会发现程序报错了
这说明 Spring Boot 项⽬没有将对象注⼊到容器中。
那为什么一开始的时候将controller和启动类放在同一级就可以呢?因为springboot约定大于配置:
-
约定大于配置:Spring Boot遵循约定大于配置的原则,它预设了一系列的默认配置,包括组件扫描路径。这意味着你不需要手动配置扫描路径,因为Spring Boot已经默认为你设置了合适的扫描路径。
-
自动配置:Spring Boot自动根据类路径上的依赖来进行配置,包括组件扫描。它会自动扫描项目中的各种组件(比如控制器、服务、存储库等),然后将它们实例化并添加到Spring应用上下文中。
-
约定位置:Spring Boot提倡使用一些约定的位置来组织代码,例如将主应用程序类放在根包下,这样它可以自动扫描该包及其子包下的组件。这种约定可以避免显式配置扫描路径。