java从入门到精通三十(SpringBoot工程的创建)

2022-07-17 12:31:36 浏览数 (1)

这里写目录标题

  • SpringBoot的引入
  • idea创建SpringBoot项目工程
  • 在官网构建SpringBoot项目

SpringBoot的引入

SpringBoot 必然也是Spring家族一员,相比Spring框架,SpringBoot进一步做出了开发的简化。

在Spring框架2.5之前,我们的配置是需要用到xml进行配置的,xml配置是一件很麻烦的事情,在2.5之后虽然引入了注解的方式,但是其实还是有比较多的开发的损耗。

特别直观的感受就是项目的依赖管理,我们市场需要关注依赖,特别是依赖版本相关的冲突,不同的版本之间常常不出现不匹配的情况,所以啊,如果项目依赖需求巨大的话,对依赖的管理也是一件非常耗时和头疼的事情。

SpringBoot对Spring框架做出了进一步的优化,除了减少必要的配置等等,不说别的,SpringBoot在依赖管理这方面更加方便。

你看Spring框架内置MVC框架,我们通常写web程序的时候会用到它。MVC指的是模型model(javabean)、视图view(jsp/img)、控制器Controller(Action/servlet)。

我们开发一个SpringfMVC的web项目,下面这两个依赖是必要的

然后还有一些配置

这些基本的都是固定的配置,SpringBoot对做一个整体的整合,我们如果用SpringBoot的话,是不需要再这样去写了。

idea创建SpringBoot项目工程

你可以在你的当前项目下创建工程,或者单独创建一个项目也是没有问题的。

这里我换了一下Server URL,因为我的之前的哪个连不上了。都尝试了,没啥用,索性就把url换了。阿里的也可以,只是不如官网的好。

创建的是一个web项目

ok创建完毕

其他的目录先不用管,我们主要先看src下面和pom里面。

resource下面有这样的两个目录和一个文件。

先说static目录,它是用来保存静态文件的目录, 比如HTML, JS, CSS, 图片等, 是不需要服务器进行数据绑定的页面。 什么意思呢?也就是说你在这下面写一个页面a.html,那么访问的时候直接localhost/a.html 就可以访问到这个界面。 但是templates是不可以直接访问的,需要经过Controller控制。 application.properties 是默认的配置,有端口的相关配置。 默认的话也就是这些

代码语言:javascript复制
# 应用名称
spring.application.name=springboot
# 应用服务 WEB 访问端口
server.port=8080

test目录这里啊可以进行一个测试,整合juint后就可以做单元测试,就说这么多。

下面我们来看pom文件

我们一层一层看,下面这些是pom文件最上面的一些内容,包含项目的版本,以及对我们创建该项目时候的一些信息描述,也包含spring的版本的号。默认自己就不要再去碰它了。

然后我们主要再去看一些依赖在dependecies这里

我们创建项目的时候勾选web就会生成这个依赖。web项目的开发需要这个依赖。

代码语言:javascript复制
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

下面这个依赖是单元测试,如果你不需要你可以把它删掉,但是最好加上,单元测试会用到。

下面有一个 exclusion ,代表依赖排除。

代码语言:javascript复制
       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

到这里,你看这个dependencyManagement

dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。 相对于dependencyManagement,所有生命在dependencies里的依赖都会自动引入,并默认被所有的子项目继承。

代码语言:javascript复制
<type>pom</type>和<scope>import</scope>标签

下面这些是生成的插件是maven需要的,可以不用管。

这是为了解决maven 单继承的问题,使用这种方式,子模块不仅可以继承parent标签中的模块,也可以继承dependencyManagement中的其它模块

我们这里用的是阿里云的构建的springboot。

介绍完这些我们写一个Controller。我们先写这样一个类。

代码语言:javascript复制
package com.jgdabc.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/books")
public class BookController {
    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id)
    {
        System.out.println("id is" id);
        return "Hello,Spring boot";
    }
}

主要测试一下这个项目结构是否正确,能不能运行访问。先启动启动类

按照默认配置文件,项目启动在8080端口。

我们测试的只是一个路径传参的,我们用postman去测试

这样就测试成功了,项目的构建没有问题,当然着这只是我们的一次简单尝试。

但是呢,springboot项目可不是只能在idea里面构建

在官网构建SpringBoot项目

到这里链接: link

进去后拉到最下面,点击

你看这个界面很舒服。下面有个java的版本自己选择

右上角这里可以学者选择依赖。我们必然先要一个javaweb

搜索点击就可以

然后很快就生成了,然后你打开这个包。

然后将这个导入idea,但是要求你的idea可以连接到 start.spring.io,我试了好多遍都不行,后来换到阿里了。我导入后会出现问题,网上说是网络的问题。 只是因为idea这边接不上,因为之前还可以。从阿里云导入创建的springboot项目还是和官方的依赖写法存在差异。

可能高版本的还不能用,但是可以满足需求,没什么问题。

创建这样的项目就这么点,后面可能还是会出现依赖的折磨。习惯就好。

0 人点赞