spring boot(2):快速入门
一、代码实现
-
创建maven工程
使用eclipse创建一个maven工程,该工程为简单的web工程即可
-
添加spring boot的起步依赖
pom.xml配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- spring boot的起步依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> </parent> <groupId>com.test</groupId> <artifactId>spring-boot</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web web组件 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.2.6.RELEASE</version> </dependency> </dependencies> </project>
-
编写spring boot引导类
SpringBootApplication.java
package com.test; import org.springframework.boot.SpringApplication; //使用注解标注该类为springboot的入口类(这里我的eclipse不知道怎么只能使用全类名注解,导包用的无效,你们可以导包用) @org.springframework.boot.autoconfigure.SpringBootApplication public class SpringBootApplication { public static void main(String[] args) { //启动spring boot SpringApplication.run(SpringBootApplication.class); } }
现在就可以运行一下试试了,出现下面的spring就成功啦!
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.2.6.RELEASE)
-
编写Controller
这里编写controller不需要额外的操作,直接像spring mvc一样使用即可
package com.test.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class QuickController { @RequestMapping("/quick") @ResponseBody public String quick() { return "hello SpingBoot"; } }
-
测试
在浏览器中输入http:localhost:8080/quick就可以访问到我们编写的页面了。
ps:细心的朋友会发现在启动springboot的时候,在控制台会输出端口号和项目地址哦
二、入门解析
1、parent标签中导入的spring-boot-starter-parent的坐标,他是所有spring boot工程,必须使用的标签。
2、项目导入依赖,不再向正常的maven工程一样以jar包为单位,而是以功能为单位。
例如本例中的该标签就是引入一个web开发的功能,他并不是具体的引入某个jar包,而是引入了,web开发中用到的一系列jar包
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web
web组件
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
3、spring boot的入口函数,必须在类上添加**@SpringBootApplication**注解,让spring boot程序知道该类是个引导启动的入口。
4、run方法 表示运行SpringBoot的引导类,而run中的参数就是表示springBoot引导类的字节码对象。
public class SpringBootApplication{
public static void mian(String[]args){
SpringApplication.run(SpringBootApplication.class);
}
}
三、spring boot热部署
**热部署:**热部署就可以简单的理解为修改源码之后,需要重启应用程序,就可以看到修改后的效果。
下面摘抄自百度百科的解释
所谓热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。
对于Java应用程序来说,热部署就是在运行时更新Java类文件。在基于Java的应用服务器实现热部署的过程中,类装入器扮演着重要的角色。大多数基于Java的应用服务器,包括EJB服务器和Servlet容器,都支持热部署。类装入器不能重新装入一个已经装入的类,但只要使用一个新的类装入器实例,就可以将类再次装入一个正在运行的应用程序。
spring boot 热部署的实现方式
在pom.xml中引入依赖
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
现在在coltroller中更改代码就可以看到效果了。
但是,使用idea和eclipse的朋友可能会发现,热部署失败了,无论怎么改,不重新启动就不会改变。无法实现热部署的效果。
这是因为我们的开发工具中,默认并不会自动编译。(这个就靠你们自行上网查找了。ps:并不是我懒得写哈,而是我用eclipse也没成功,找到解决办法,我会更新的哈-_-)