SpringBoot入门详细分析

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

上次已经说过了,我们搭建 Spring Boot 项目,可以使用 Spring 为我们提供的初始化网站,那个可能不太方便,今天呢,我们就来说说如何使用 IDEA 来初始化我们的 Spring Boot 项目并分析一下这个 demo 。

这里说一句,能够初始化 Spring Boot 的 IDEA 是有版本要求的,最低版本是 14.1。

下面就是操作的步骤,全是图片,请各位做好警戒。

1、选择 File - New - Project - Spring Initializr

图片

2、 可以修改一下包名、打包方式、Java 版本等信息。

图片

3、选择 Web,其它的现在还不了解。

图片

4、 配置一下项目路径

图片

finish 之后就会看到新建的项目有 pom.xml 文件,main 入口还有一个空的 application.properties 文件。待会我们一个一个的说,先把项目跑起来再说。

在跑起来之前,我们添加一个类用来测试看效果。如下所示,添加一个 Example 文件。

图片

5 启动项目

好了,现在就说说如何启动项目,第一种方式,使用 Maven 命令打包,然后执行 jar 包。

图片

打好的 Jar 包在 target 中,在 Terminal 中进入目录使用 java -jar 命令执行即可。当然,你也可以在 DOS 中执行这个 Jar 包。

图片

第二种方式,使用插件命令直接执行。我们也可以直接在 Terminal 中输入 mvn spring boot:run 一样的效果(可以在 pom.xml 中看到引用的插件)。

图片

第三种方式,右击 run 即可。

图片

好了,上面说了这么多,每一种方式都是可行的,访问 localhost:8080 即可看到 Hello World!

OK ,下面就分析一波组成 demo 的各个部分。

pom.xml 文件

我们之前就说过 Spring Boot 的一个优点就是依赖管理变的简单,具体看看都提供了什么。

   <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
复制代码

首先 pom 文件中提供了父级依赖的概念,这个依赖是 Spring Boot 项目的标识,spring-boot-starter-parent 是一个特殊的 starter,它用来提供 Maven 默认依赖,而且有了它,我们也不需要为不同的依赖添加版本信息。

当然我们可以重写某个依赖的版本,但是不建议这样做,可能就会和其它 jar 包不兼容了。假如在自己公司维护的有一套依赖关系,我们也可以不用父级依赖,也可以只使用其中的一部分依赖,借助于关键字 import 实现。但是,实际中应该是默认的居多。

pom 中还给我们定义了很多的 “starter” 每一个 starter 就像一个包一样,这其中包含的是一个模块的依赖,举例看看 spring-boot-starter-web 这个起步依赖内部就依赖了其它的依赖,这样我们 pom 文件就省心简洁多了。

图片

另外 pom 文件中还包含插件,这里 pom 文件中只能看到一个 maven 插件,其实还有一些插件已经放在父级依赖中了。

启动类,Demo2Application.java ,这里是程序的入口,我们刚刚也可以执行这个类,但是执行之后就结束了,因为这里面没有映射的路径信息,我们也可以把 Example 中的方法放在这个启动类中并添加相应的注解,也是可行的。

总结

最后,这个 demo 中还涉及到几个注解,挨个说一下。

@SpringBootApplication 作用有三点

1、启动 Spring Boot 的自动配置机制,作用等同于 @EnableAutoConfiguration 。

2、扫描包及其子包下的组件,作用等同于 @ComponentScan 。

3、允许在上下文中注册额外的 Bean 或导入额外的配置类,等同于 @Configuration 。

所以,@SpringBootApplication 以一抵三,非常重要的,最后,还涉及到一个注解 @RestController,这个就是 @Controller 和 @ResponseBody 的合体。

OK,到此我们的 Spring Boot 入门 demo 就算讲解完毕。是不是感觉注解老多,其实 Spring Boot 新创的注解不算多,好多都是从 Spring MVC 那里拿过来的,不要怂,就是干!