这里写目录标题
- 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
代码语言:javascript复制dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。 相对于dependencyManagement,所有生命在dependencies里的依赖都会自动引入,并默认被所有的子项目继承。
<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项目还是和官方的依赖写法存在差异。
可能高版本的还不能用,但是可以满足需求,没什么问题。
创建这样的项目就这么点,后面可能还是会出现依赖的折磨。习惯就好。