SpringBoot非正式实践--1.构建一个简单的springboot工程
前言
最近开始接触springboot,第一是当前的主流,第二是新工作项目中用到了。以前很少有记录的习惯,或许这就是我到现在还是个烂泥的原因吧。暴风哭泣。刚开始写一些东西,不专业也好,啰嗦也好,一笔带过也好,都是一种记录吧,当然能帮助到更多人更好,要是有人能提出不同的见解一起学习也好啊。
环境:
jdk1.8
idea
maven 3.5.0
springboot 2.0.5.RELEASE
首先说说我对springboot的理解:
1.本质上还是spring的项目
2.简化了spring的一些复杂的配置,并且统一版本,让开发人员能快速构建一个项目。
3.内置tomcat容器。
关于第二点想说真的很多,以前构建一个ssm项目,要配application一大堆bean,还有application-mvc。反正挺难的,有时候就是想做个测试,想到要创建一堆东西就放弃了,现在有了springboot 确实方便了不少。好啦 废话不少说 开始和大家一起创建一个最简单的springboot 项目。
看过一些博文,入门的讲springboot的创建都是根据官网或者ide初始化的一个springboot项目,然鹅,今天我带大家自己构造springboot项目
1.首先创建一个maven工程
2.pom文件打开,添加一个pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.0.5.RELEASE</version>
</dependency>
3.创建application类,随便建一个普通类,加入main函数,在类上面加注解@SpringBootApplication表明他是一个启动类,main函数中调用SpringApplication.run(Class,String[])方法。最后启动这个类
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args){
SpringApplication.run(DemoApplication.class,args);
}
}
现在启动可以看到如下结果
就代表启动成功了。
有人问啦,这么简单吗? 没错,构建一个最简单的springboot程序就是这么简单,一个依赖,一个启动类,就行了。但是呢,由于springboot内置了很多starter的依赖,例如web,jdbc等等,这些都是和当前spring-boot-starter类一个版本的,因为要实现统一的版本管理,防止jar冲突嘛,这也是springboot便捷之处,那要怎么实现这个统一的版本管理呢?
在传统的maven项目中,我们怎么做的?
我们现在properties中定一个version,如:
<springboot.version>2.0.5.RELEASE</springboot.version>
然后再到dependency中引用他们
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${springboot.version}</version>
</dependency>
这样固然能实现,但是由于springboot写了很多starter,所以继续这样用的话可能每个dependency下都要多一行
然后spring-boot-starter-parent又继承了spring-boot-dependencies,并定义了一些插件的规范,如java编译版本 等等。
所以 我们只要继承spring-boot-starter-parent就行了 后续许许多多依赖就不用写版本啦,因为只要在parent中被预定义了的maven会根据groupId和artifactId自己去里面找版本啦。完整的pom文件如下
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>

浙公网安备 33010602011771号