文章目录
1.SpringBoot简介
SpringBoot是一项整合Spring生态圈所有的一套框架,通过SpringBoot可以快速搭建web项目,微服务项目,分布式项目等,并且SpringBoot解决了在Spring整合过程中大量的配置信息,俗称配置地狱
。这样我们开发一个应用变动简单了起来.
但是也带来新的问题,如果对SpringMVC,SpringFrameWork不熟悉的话,我们无法快速的定位问题,这也是框架一层层封装后必然会导致的结果吧。
2.如何学习SpringBoot
我们学习新技术,通过文档进行学习是一个效率很高的一种学习方法。在Spring官网中,当然也提供了供我们学习的文档。
以下就是对各个文档的中文翻译
我们需要哪个方面,就可以看文档进行学习。
3.Hello,Spring-boot
3.1 环境设置
个人学习使用的是Spring-boot 2.3.4RELEASE
版本。
jdk - 1.8
Maven - 3.3+
3.2 搭建Maven工程
首先创建一个Maven工程。
根据官网配置,在Pom文件中引入一个父工程。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
如果我们需要搭建一个web工程,在pom文件添加web依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
从导包的结果来看,尽管我们只引入了一个依赖,却引入了非常多的包
3.3 创建SpringBoot启动类
//SpringBootApplication表示这是一个SpringBoot程序
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class, args);
}
}
自己编写一个SpringBoot启动类,加上@SpringBootApplication
注解,表示了此类就是Springboot的启动类。再在main方法
中调用SpringApplicatio
n的静态run方法
,这样一个SpringBoot的启动类就完成了。
3.4 创建SpringBoot业务代码
//@Controller
//@ResponseBody
//RestController相当于Controller+ResponseBody
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "hello spring boot";
}
}
定义一个HelloController
类来处理请求,我们可以添加Controller
注解,让Spring进行扫描到,再定义一个hello
方法,添加@RequestMapping("/hello")
注解,表示该方法处理/hello
请求,在这里,我们只想回应一个字符串,就可以在hello
方法上加@RequestBody
注解。那我们又想HelloController
整个类都是返回字符串数据,我们可以这样
但是每次这么写不是很麻烦吗?Boot就帮我们做了简化,使用@RestController
注解就可以只用一个注解,完成两个注解所要做的事。
3.6 启动Spring—Boot
运行MainApplication
中的Main方法,一个web服务就搭建好了。
通过浏览器进行访问
成功!
4.补充
4.1 包扫描
在boot中,默认的包扫描就是我们启动SpringBoot的类的包下目录。如
HelloController
就是MainApplication
包下的类
如果非要将业务代码和MainApplication
分开,那么我们就需要指定包扫描路径。在@SpringBootApplication
注解中有一个变量,通过该变量就可以显示的指定包扫描路径。
@AliasFor(annotation = ComponentScan.class, attribute = "basePackages")
String[] scanBasePackages() default {};
4.2 配置文件
不是说boot不需要配置了吗?怎么还需要配置文件?
答案是:肯定是需要的呀,比如你服务的端口,sql的地址密码等。这些都是需要进行配置的,但是boot也是将我们配置的流程简化了,我们只需要在resources
下创建一个名为application.properties
的配置文件,我们就可以对boot内置的许多东西进行设置了。如设置tomcat的端口号,将其改为8000.
我们就可以通过8000端口进行服务请求了。
那么这个配置文件中都能配置哪些东西呢?我们可以参考一下 官方文档。
4.3 简化部署
在web学习阶段,web项目需要打包成war
包,然后再部署到tomcat服务器上,boot帮我们做了简化,直接将包打包成jar
包,内置该服务需要的内容,我们就可以直接在命令行进行启动了。
Spring官方提供了一个插件,提供了打包的功能。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
然后我们可以将这个项目打个包试一试。
可以看到 jar 包已经生成了。
在命令行进行运行 java -jar helloBoot-1.0-SNAPSHOT.jar
启动成功。