【SpringBoot教程】快速入门+3分钟打造RestAPI

作者简介:大家好,我是撸代码的羊驼,前阿里巴巴架构师,现某互联网公司CTO

联系v:sulny_ann,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬

序言:SpringBoot 是在Spring基础上实现了自动配置的基础框架,快速帮助Spring整合各种第三方框架,让项目配置化繁为简,大幅提高开发效率。

一、SpringBoot 五大特性

  • 1.座靠Spring (颠覆传统)

  • 2.内嵌Tomcat(无需外部署)

  • 3.提供各种Starter (开箱即用 +简化依赖 )

  • 4.提供自动配置 ( 妈妈再也不用担我写错配置了)

  • 5.告别XML (实现约定大于配置 )

二、SpringBoot 快速入门

1.搭建开发环境

  • JDK版本:Oracle JDK 1.8+

  • 构建工具:Apache Maven 3.3.0+ (bin.zip)

  • 开发工具:IntelliJ IDEA 2017.2.6  / Eclipse 4.2+

2.创建第一个工程

使用官方推荐的 Spring Initializr 工具来构建第一个SpringBoot工程,按步骤选择Web依赖和填写信息之后,创建工程成功,如下图:

你可能会好奇:
为什么没有web.xml?
为什么没有applicationContext.xml?
为什么没有webapp目录?

为什么多了HelloWorldApplication?
为什么多了application.properties?

先别急,咱们先从简单的搭建流程入手,答案在最后进行揭晓。

3.POM依赖管理

打开工程的POM文件,查看继承信息和相关依赖。

  • spring-boot-starter-parent 作为父工程,提供SpringBoot和Spring的相关依赖定义。

  • spring-boot-starter-web  引入Web和WebMvc的相关依赖。

    <!-- 继承SpringBoot父工程 -->    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.5.6.RELEASE</version>        <relativePath/>    </parent>
    <!--PS:spring-boot-starter-xxx 开箱即用 无需指明版本 (默认从父类继承版本号) -->    <dependencies>        <!-- 添加WEB支持 -->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <!-- 添加Test支持 -->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>    </dependencies>
 

4.编写RestAPI 输出HelloWorld

Spring Initializr已经默认帮我们创建了启动类,这里我们只需添加@Controller 和编写相关RestAPI即可。

@SpringBootApplication@Controller  public class SpringbootHelloworldApplication {        @GetMapping("/")      @ResponseBody    public String index() {        return "Hello World!";    }
    public static void main(String[] args) {        SpringApplication.run(SpringbootHelloworldApplication.class, args); //启动项目    }
 

5. 启动项目

在上面的启动类中,右键选择Run SpringbootHelloworldApplication ,查看控制台如下:

在浏览器访问:http://locahost:8080  ,返回结果如图:

6.单元测试

@RunWith(SpringRunner.class)@SpringBootTest@AutoConfigureMockMvc //开启MockMvcpublic class SpringbootHelloworldApplicationTests {
    @Autowired    private MockMvc mockMvc; //注入MockMvc
    @Test    public void testHelloController() throws Exception {
         mockMvc.perform(get("/")) //请求方式+地址                .andDo(print()) //打印效果                .andExpect(status().isOk()) //预期状态                .andExpect(content().string(containsString("Hello World")));    }
}
 

三、快速答疑

为什么没有XML?

回答:回顾传统Spring项目,我们需要先后配置web/spring/mvc等XML配置文件。而SpringBoot则不需要XML,只需借助注解和启动类就能启动项目。这背后得益于SpringBoot自动配置的构建原理,例如我们在POM文件引入了Web依赖,则项目在启动的时候检测到ClassPath存在Web依赖,就会自动执行WEB环境初始化,轻松完成SpringMVC初始化。

为什么没有webapp目录?

回答:SpringBoot使用Resources目录放置静态文件和动态资源。比如static目录可以直接读取CSS/JS/IMG等静态资源,而templates目录可以直接读取动态模板,例如Thymeleaf 和 FreeMarker 等。不过值得注意的是,如果工程项使用War类型进行打包,则必须创建webapp目录

application.properties / application.yml 是什么?

回答:这是SpringBoot项目的核心配置文件

HelloWorldApplication  是什么?

回答:作为项目的启动类,添加Main方法作为启动入口,并添加@SpringBootApplication 便携式启动注解。

@SpringBootApplication 主要包含三大组件:

  • @EnableAutoConfiguration 开启自动配置.

  • @ComponentScan 开启组件扫描   例如@Controller,@Service等.

  • @Configuration 标记配置类   例如制定方法为上下文提供Bean.

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值