News:三分天注定,七分靠打拼,爱拼才会赢!致力打造专业IT博客。如果你对本博客有任何意见或建议请联系作者,邮箱:blog@caokuan.cn

Spring Boot 入门

逝水无痕 458 0 条

我在前一篇文章 《 初识 Spring Boot 》 中写了刚刚接触 Spring Boot 的一些看法,感觉自己所了解的还远远不够。最近在读 《 Spring Boot 实战 》 这本书,书的内容比较通俗易懂,适合入门阅读。下面是一个入门式的开发实例,对 Spring Boot 的使用做了简单的介绍。

springboot.gif

Spring Boot 从无数知名企业的实践中吸取经验,总结并落实到框架中。如果说 Spring Framework 的目标是帮助开发者写出好的系统,那 Spring Boot 的目标就是帮助开发者用更少的代码,更快地写出好的生产系统。

Spring Boot 精要

Spring Boot 将很多魔法带入了 Spring 应用程序的开发之中,其中最重要的是以下四个核心。

自动配置:针对很多 Spring 应用程序常见的应用功能,Spring Boot 能自动提供相关配置。
起步依赖:告诉 Spring Boot 需要什么功能,它就能引入需要的库。
命令行界面:这是 Spring Boot 的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。
Actuator:让你能够深入运行中的 Spring Boot 应用程序,一探究竟。

每一个特性都在通过自己的方式简化Spring应用程序的开发。

开发第一个应用

从官网下载 Spring Tool Suite (STS) 工具,该 eclipse 集成了与 spring 开发相关的插件,对于开发 spring 应用十分方便。

新建 spring boot 项目

在 eclipse 左侧工作区中右键 new --> other

springboot.png

在搜索框中输入 spring 后选择 Spring Starter Project ,点下一步

springboot.png

填写项目的基本信息,比如选择打包方式、Java 版本、maven 信息等,点下一步

springboot.png

选择需要的依赖:这里选择了 Web H2 JPA ,然后点击完成即可。

springboot.png

工程创建好后的样子

springboot.png

下面开始编写 Controller Repository 和 Entity

User 实体

user.png

UserRepository

repository.png

UserController

controller.png

包结构为下图

bao.png

测试代码

在 DemoApplication 类上右键 Debug As --> Spring Boot App

run.png

工程启动成功后,使用 Restlet Client 插件在谷歌浏览器中进行测试。

result.png

在上图中我们可以看到模拟 POST 请求的数据已经顺利插入到了H2数据库中,结果也已经正常返回了。

下面我们通过 GET 请求来查询 id 是 1 的数据

search.png

可以看到数据能够查询出来,结果也是正确的。

看到这里估计就该纳闷了,我就写了几个类,什么配置都没写,怎么就能做数据的增删改查了? 那么下面就来说一说为什么会这样。

分析

下面看一下 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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.10.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

在 POM 文件中引入了 parent 和 3个起步依赖:web、jpa、h2 和 test。起步依赖在 Sprint Boot 中是很重要的部分,有了起步依赖我们就不用担心各种 maven 依赖和兼容问题了。引入了 web 起步依赖,那么我们就可以使用 Spring MVC 的功能了;引入 jpa 起步依赖,就可以使用 Spring Data Jpa 来做持久层框架了;引入了 h2 起步依赖,就有了一个可用的嵌入式数据库了。

下面看一下工程的启动类:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

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

Spring Boot 采用的是约定大于配置的原则,也就是说会有一些默认的配置,这些配置不用我们再显示的指定了。@SpringBootApplication 这个注解会开启 Spring Boot 组件扫描和自动配置,这样在启动工程的时候,会根据我们添加的起步依赖自动进行配置。当然如果默认的配置不满足要求的话,还可以在配置文件中显示指定我们的配置信息,比如默认端口8080可以通过 server.port=8081 来指定访问端口为8081。在配置文件 application.properties 或 application.yml 中可显示配置的项大约有几百项。除了在配置文件中指定我们的配置之外,还可以通过编写配置类来实现自定义配置。

这篇博客仅是对 Spring Boot 的使用做了入门式的介绍,想要深入的理解,还需要自己去探索和思考。Spring Boot 还是微服务架构的基础,学好 Spring Boot 对以后的微服务实践会有很大的帮助。

发表我的评论
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址