一、SpringBoot-HelloWorld
1.1 配置pom.xml
要想使用SpringBoot开发,要标签导入父工程spring-boot-starter-parent
;
要进行web开发,要引入web开发场景启动器的依赖spring-boot-starter-web
。
<!--使用SpringBoot开发-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
<!--web开发相关依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
1.2 编写一个主方法
在这个类上标一个注解:@SpringBootApplication
,
来告诉SpringBoot,这是一个SpringBoot应用。
我们把标注了@SpringBootApplication的类,叫做主程序类,这个相当于是我们所有启动的入口。
@SpringBootApplication
public class MainApplication {
}
然后在主类的main方法中把这个跑起来,run的参数传入主类MainApplication.class和main方法的args,就可以了。
/**
* 主程序类
* @SpringBootApplication:这是一个SPringBoot应用
*/
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class,args);
}
}
1.3 编写业务
在MainApplication
同级目录下创建MVC那一套目录即可。
-
创建一个controller目录,新建一个HelloController.java
在类上标注一个@Controller注解
@Controller public class HelloController { }
然后编写一个方法,处理我们的“输出字符串Hello”的请求:
@Controller public class HelloController { public String handle01(){ } }
接下来我们写SpringMVC的@RequestMapping注解,映射请求。映射哪个请求呢,我们希望浏览器中发送"/hello"请求,然后我们处理,处理完了以后,给我们浏览器返回一串话。
@Controller public class HelloController { @RequestMapping("/hello") public String handle01(){ return "Hello, Spring Boot 2!"; } }
由于返回的这段话,要以字符串的方式写给浏览器,所以我们给这个方法上,会加一个注解,@ResponseBody
@Controller public class HelloController { @ResponseBody @RequestMapping("/hello") public String handle01(){ return "Hello, Spring Boot 2!"; } }
由于我们未来可能会处理非常多的请求,都要返回字符串,所以我把这个@ResponseBody写在类上,代表我们这个类的每一个方法返回的数据,都是直接以字符串写给浏览器的,而不是跳转到某一个页面。
@ResponseBody @Controller public class HelloController { @RequestMapping("/hello") public String handle01(){ return "Hello, Spring Boot 2!"; } }
但是这两个注解,有一点太麻烦了,我们的SpringBoot有一个新注解,叫@RestController。这个注解,点进去看一下源码,实际上就是@ResponseBody和@Controller的合体。
@RestController public class HelloController { @RequestMapping("/hello") public String handle01(){ return "Hello, Spring Boot 2!"; } }
1.4 运行
怎么运行这个程序,只需要在主类里面运行main方法即可。不需要配tomcat等等一些其他的东西。
运行,输出了很多日志。其中倒数第二行表示了Tomcat已经在8080端口启动了。
我们不妨来访问一下localhost:8080/hello:
这样,就简化了我们的开发。我们省略了很多以前的配置,包括我们连Tomcat都不用装,只要运行main方法就可以了。
1.5 简化配置
怎么简化配置呢。比如,我们以前想要改Tomcat端口号,我们还得打开Tomcat配置文件等等一大堆东西。SpringBoot它是来整合其他所有东西的一个总框架,所以说SpringBoot将我们未来所有的配置都可以抽取在一个配置文件里面,这个文件名字叫application.properties
(在src->main->resources目录下)。
在这个配置文件里面,我们可以修改Tomcat的一些设置,包括SpringMVC的一些配置。什么都可以改。
所以说,SpringBoot给我们提供了一个统一的配置文件,所有的配置都可以在这更改。我们不更改的配置,SpringBoot都会有一个默认的。(具体能够写哪些配置,参照官方文档)
server.port=8888
之前我们的WEB项目都是在pom.xml中设置打包为war包,然后部署到Tomcat服务器。SpringBoot说,我们可以创建一个可执行的jar包,只要引入了SpringBoot给我们提供的插件,我们可以把这个项目直接打成一个jar包,这个jar包里面自带了我们整套的运行环境。这个jar包我们一般称为“fat jars”,因为包含了整套运行环境,所以我们直接就可以运行。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
由于把项目直接打成了一个可执行的jar包,于是运行maven中的package:
可以看到项目target目录下生成了一个项目的jar包:
open in explorer,在文件夹中找到该目录
调出cmd:
输入以下命令:
可以运行,就像在IDEA中直接运行main方法那样,而且可以看到,Tomcat已经在8888端口启动起来了。
此时打开浏览器,访问localhost:8888/hello,和刚才的效果是一样的。
所以说,SpringBoot,也简化了我们的部署。
所以说SpringBoot很强大,从我们的开发,到配置,到部署,都给我们做了简化。以后用SpringBoot开发应用,再也不用操心那么多的事情了。
1.6 总结
回顾一下整个流程。
1、创建一个简单的项目,例如maven工程
2、引入依赖
-
我们要用到SpringBoot的功能,就必须引入SpringBoot的这个父项目
<!--使用SpringBoot开发--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> </parent>
-
我们想要开发WEB,就必须引入WEB场景
<!--web开发相关依赖--> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
3、创建主程序
在编写业务逻辑之前,我们需要有一个主程序,来引导我们这个SpringBoot的启动
主程序核心在于,我们要告诉SpringBoot,这是一个SpringBoot应用:@SpringBootApplication
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class,args);
}
}
4、编写业务
以前我们怎么编写业务,就怎么编写业务,无需任何过多的配置
@RestController
public class HelloController {
@RequestMapping("/hello")
public String handle01(){
return "Hello, Spring Boot 2!";
}
}
5、测试
直接运行main方法即可
6、简化配置
只需新建一个application.properties
,之后我们所有的配置都可以写在这里面。
7、简化部署
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
把项目打成jar包,直接在目标服务器执行即可。
java -jar 文件名.jar