1SpringBoot入门 · SpringCloud微服务实战 · 看云

导航

Spring Cloud 是基于Spring Boot搭建的,本篇对SpringBoot 做一个基本的介绍和使用

本节代码地址


1.Spring Boot 简介

  • Spring Boot使您可以轻松地创建独立的、生产级的、基于Spring的应用程序,使用构建工具引入需要的依赖包,项目即可运行,大多数Spring应用程序只需要很少的Spring配置。
  • Spring Boot 的配置方式和之前的Spring 是有区别的,Spring Boot 不需要写xml的配置,采用Java配置方式就是使用Java类来替代Spring原先的xml文件
  • Spring Boot 支持Maven 和 Gradle 这两款构建工具。Gradle使用Groovy语言进行构建。与Maven、Ant等构建工具有良好的兼容性。因大部分对Maven比较熟悉,本书已Maven作为项目的构建工具

2.新建项目

新建项目可以基于自己的工具idea、ecplsie新建,也可以基于Spring提供的https://start.spring.io/进行构建。

浏览器输入网址https://start.spring.io/
c1fc43104cf701c8580f478634dcab26_MD5.webp

比如我依赖了Lombok(可不用写getter setter)
26f6bb8f8b2d2674985b4042381a0b01_MD5.webp

点击generator即可下载
6eb02f5a597905163d124ece1cda5526_MD5.webp

导入到开发工具即可,缺点是只有目前最新的Spring Boot 版本
64cbc5067c6eba5e2b09b4a0689e92b4_MD5.webp

2.2使用idea构建

点击File->new->project选择Maven
4971a8aa893a42e16d0b76d1e0099169_MD5.webp

点击Next,输入项目信息
6b34d0023e7e9378da4ae20a9d374814_MD5.webp

点击Next
61e0f4602df36e713298f6b8a16da051_MD5.webp

点击Finish,选择This Window 或 **New Window **均可
634074e3b9b64344c5fa9e8af47646c0_MD5.webp

为了方便大家课后阅读源码,我将Spring Boot 的示例项目健在fw-spring-cloud这个聚合工程里面

2.4 Spring Boo项目配置

新建项目中,在src/mian/java 放置的是Java文件,src/main/resources放置的是项目的资源文件,src/test 则放置的是测试相关的Java文件和资源文件。

2.4.1 pom 文件配置

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
       <artifactId>fw-sping-cloud</artifactId>
       <groupId>com.yisu.cloud</groupId>
       <version>1.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>

   <artifactId>fw-cloud-springboot</artifactId>
   <dependencies>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-web</artifactId>
       </dependency>
   </dependencies>
</project>

配置完成之后,会自动帮我们项目置为可启动服务,启动代码如下:

@SpringBootApplication
public class FwBootApplication {
    public static void main(String[] args) {
        SpringApplication.run(FwBootApplication.class, args);
    }
}

项目中必须添加 @SpringBootApplication注解,声明了这是一个启动类,并且@SpringBootApplication已经为我们集成了很多注解

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication

点击右键启动
af3f762b0ca42f01d0e9f1cdfef3ce96_MD5.png

默认没有配置文件的情况下,启动的端口是8080
0f9050672141a328c52d93c72d066483_MD5.png

现在我们修改配置,端修改口,在src/main/resources 下添加application.yml 文件或 application.properties文件
以下是application.yml的形式,格式化后比较清晰

server:
  port: 8773

application.properties形式如下

server.port= 8773

我个人喜欢yml的配置文件,在配置文件比较多的时候比较清晰。

2.4.2新建接口


@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello(String name){
        return "hello:"+name;
    }
}

这是一个简单的RESTFUL形式的接口,@RestController可以是返回的数据默认是JSON形式的,@RestController中主要将内容转成JSON的是@ResponseBody

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody

如果使用的是@Controller就需要手动在需要返回JSON的接口上加上@ResponBody,如果不加,返回就是对应的View(页面试图)

另外说明一下@GetMapping等注解

  • 如果设置的是@RequestMapping注解,默认支持get、post、put、delete请求
  • @GetMapping只支持get请求
  • @PostMapping 只支持post请求 可用来增删改查的接口设计
  • @PutMapping 常用来作为RESTFUL的新增请求接口
  • @DeleteMapping 常用来作为RESTFUL的删除请求接口
    重新启动项目测一下接口,postman 输入接口
    9864017bb9f979d88ced5cb5d7f4db60_MD5.png

具体关于RESTFUL请求的例子可以参见
Git:https://github.com/xuyisu/restful-api-demo
Gitee:https://gitee.com/gitxys/restful-api-demo

2.6总结

本节主要讲解了Spring Boot 项目的搭建、配置、及请求案例。读者读完此节后对Spring Boot的功能大致了解即可。