springboot超详细教程_SpringBoot项⽬搭建步骤(超详细)在 Spring Tools 4 for Eclipse 中依次选择 File->New->Maven Project,然后在出现的界⾯中按图 1 所⽰增加相关信息。
图 1 创建 maven 项⽬
完了上述操作之后,在 l 中添加 Spring Boot 的依赖,代码如下所⽰。
org.springframework.boot
spring-boot-starter-parent
2.0.6.RELEASE
org.springframework.boot
spring-boot-starter-web
编写启动类,代码如下所⽰。
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
启动类使⽤了 @SpringBootApplication 注解,这个注解表⽰该类是⼀个 Spring Boot 应⽤。直接运⾏ App 类即可启动,启动成功后在控制台输出信息,默认端⼝是 8080,如图 2 所⽰。
图 2 Spring Boot启动成功
可以看到,我们只在 l 中引⼊了⼀个 Web 的 Starter,然后创建⼀个普通的 Java 类,⼀个 Main ⽅法就可以启动⼀个 Web 项⽬。
与之前的使⽤⽅式相⽐,这种⽅式简单很多。以前需要配置各种 Spring 相关的包,还需要配置 l ⽂件,还需要将项⽬放⼊Tomcat 中去执⾏,搭建项⽬的过程还特别容易出错,会出现各种 jar 包冲突。有了 Spring Boot 后这些问题都解决了。
我们之所以能够通过⼀个 Main ⽅法启动⼀个 Web 服务,是因为 Sprig Boot 中内嵌了 Tomcat,然后通过内嵌的 Tomcat 来提供服务。当然,我们也可以使⽤别的容器来替换 Tomcat,⽐如 Undertow 或 Jetty。
Spring Tools 4 for Eclipse 还为我们提供了更加便捷的项⽬创建⽅式,在 File->New 选项中有 Spring Starter Project,可以直接选择Spring Boot 的版本以及需要依赖的第三⽅包,直接⽣成 Spring Boot 项⽬,不⽤再去⼿动配置 Maven 依赖。
编写第⼀个 REST 接⼝
本节将创建⼀个控制器,编写第⼀个 REST 接⼝,访问地址使⽤ /hello,代码如下所⽰。
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "hello";
}
}
@RestController 是 @Controller 和 @ResponseBody 的组合注解,可以直接返回 Json 格式数据。
图 3 运⾏结果
读取配置⽂件
在以前的项⽬中我们主要在 XML ⽂件中进⾏框架配置,业务的相关配置会放在属性⽂件中,然后通过⼀个属性读取的⼯具类来读取配置信息。
在 Spring Boot 中我们不再需要使⽤这种⽅式去读取数据了。Spring Boot 中的配置通常放在 application.properties 中,读取配置信息⾮常⽅便,总共分为 3 种⽅式。
1)Environment
可以通过 Environment 的 getProperty ⽅法来获取想要的配置信息,代码如下所⽰。
@RestController
public class HelloController {
// 注⼊对象
@Autowired
private Environment env;
@GetMapping("/hello")
public String hello() {
// 读取配置
String port = Property("server.port");
return port;
}
}
2)@Value
springboot框架的作用可以注⼊具体的配置信息,代码如下所⽰。
@RestController
public class HelloController {
// 注⼊配置
@Value("${server.port}")
private String port;
@GetMapping("/hello")
public String hello() {
return port;
}
}
3)⾃定义配置类
prefix 定义配置的前缀,代码如下所⽰。
@ConfigurationProperties(prefix = "net.biancheng")
@Component
public class MyConfig {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
读取配置的⽅法代码如下所⽰。
@RestController
public class HelloController {
@Autowired
private MyConfig myConfig;
@GetMapping("/hello")
public String hello() {
Name();
}
}
定义配置 application.properties 的⽅法如下:
net.biancheng.name=zhangsan
profiles 多环境配置
在平时的开发中,项⽬会被部署到测试环境、⽣产环境,但是每个环境的数据库地址等配置信息都是不⼀样的。通过 profile 来激活不同环境下的配置⽂件就能解决配置信息不⼀样的问题。在 Spring Boot 中可以通过 spring.profiles.active=dev 来激活不同环境下的配置。
可以定义多个配置⽂件,每个配置⽂件对应⼀个环境,格式为 application-环境.properties,如表 1 所⽰。
表 1 profile 多环境配置
application.properties
通⽤配置,不区分环境
application-dev.properties
开发环境
application-test.properties
测试环境
application-prod.properties
⽣产环境
在开发环境中,可以通过修改 application.properties 中的 spring.profiles.active 的值来激活对应环境的配置,在部署的时候可以通过java–jar xxx.jar--spring.profiles.active=dev 来指定使⽤对应的配置。
热部署
开发过程中经常会改动代码,此时若想看下效果,就不得不停掉项⽬然后重启。
对于 Spring Boot 项⽬来说,启动时间是⾮常快的,在微服务的架构下,每个服务只关注⾃⼰的业务,代码量也⾮常⼩,这个启动时间是可以容忍的。
对于那些臃肿的单体⽼项⽬,启动时间简直是浪费⽣命。虽然 Spring Boot 启动很快,但是我们还是要⾃⼰去重启。能不能做到有改动,它就会悄⽆声息地⾃⼰把改动的地⽅重新加载⼀遍?答案是肯定的,通过 spring-boot-devtools 就可以实现。
只需要添加 spring-boot-devtools 的依赖即可实现热部署功能,代码如下所⽰。
org.springframework.boot
spring-boot-devtools
actuator 监控
Spring Boot 提供了⼀个⽤于监控和管理⾃⾝应⽤信息的模块,它就是 spring-boot-starter-actuator。该模块使⽤起来⾮常简单,只需要加⼊依赖即可,代码如下所⽰。
org.springframework.boot
spring-boot-starter-actuator
启动项⽬我们会发现在控制台输出的内容中增加了图 4 所⽰的信息。
图 4 所⽰的这些信息是 Actuator 模块提供的端点信息,具体如表 2 所⽰,通过访问这些端点我们可以得到很多监控信息。
⽐如,我们访问 /actuator/health 可以得到下⾯的信息:
{
"status": "UP"
}
图 4 Spring Boot启动控制台输出
表 2 Actuator端点信息
Http⽅法
路径
描述
Http默认暴露
GET
/actuator/conflgprops
查看配置属性,包含默认配置
false
GET
/actuator/beans
查看bean及其关系列表false
GET
/actuator/heapdump 打印线程栈
false
GET
/actuator/env
查看所有环境变量
false
GET
/actuator/env/ {name}查看具体变量值
true
GET
/actuator/health
查看应⽤健康指标
true
GET
/actuator/info
查看应⽤信息
false
GET
/actuator/mappings
查看所有 URL 映射false
GET
/actuator/metrics
查看应⽤基本指标
false
GET
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论