简介
对于 Java 程序猿来说, Spring 肯定不是一个特别陌生的框架, 但是在开发过程中, 都会遇到两个让人头大的问题, 1. 整合其他框架时各种配置文件, 让人眼花缭乱. 稍不注意就可能导致项目运行错误甚至无法运行. 2. 各种 jar 包的依赖, 都要自己维护, 有时候焦头烂额调试一个晚上, 可能仅仅是因为 jar 包的版本问题.
看到这种情况, Spring 开源组织的大佬们看不下去了. 于是他们便对 spring 框架的全系列组件进行了内部封装, 让每一个 spring 项目都是以 spring 的子项目的形式来运行,以 约定大于配置 为导向, 极大的简化了配置, 解放开发人员.
SpringBoot主要优点:
- 为所有Spring开发者更快的入门
- 开箱即用,提供各种默认配置来简化项目配置
- 内嵌式容器简化Web项目
- 没有冗余代码生成和XML配置的要求
- 提供一系列大型企业级项目的功能性特性(比如:安全、健康检测、外部化配置、数据库访问、
restful搭建等很多特性
创建项目
系统要求
- Java: 1.8
- SpringBoot: 2.0.0
- Maven: 3.3.9
- IDEA: 2017.2
新建项目
- 打开 IDEA 选择
File-->New-->Project
新建项目1
选择构建方式
- 选择构建方, Spring Initializr, 选择情况如图, 点击 Next
一般情况下, Choose Initializr Service URL 选项直接选择 Default , 当国内网络不好的时候也可以选择 Custom 输入构建 SpringBoot 项目的其他网站. 当然, 你也可以选择科学上网.
提示: 使用 http://start.spring.io 构建, 速度会有所提升.
选择构建方式
填写项目信息
- 填写项目的构建信息, 点击
Next
填写项目信息
Group: 项目组织唯一的标识符, 实际对应JAVA的包的结构
Artifact: 项目的唯一的标识符, 实际对应项目的名称
Type: 项目构建方式,
Maven或GradleLanguage: 项目语言
Packageing: 打包方式
Jar包或War包Java Version:
java版本Version: 项目版本号
Name: 项目名称一般和
Artifact一致Description: 项目介绍
Package: 包结构
选择需要的 jar
-
选择需要的
jar点击next, 此处我们只选择web, 点击next后期需要其他
jar时, 可以在生成的pom.xml文件中修改.
image
选择需要保存的路径
选择需要保存的路径, 点击 Finish
到此为止, 我们的项目创建的工作就完成了, 接下来我们写一个 HelloWorld 并运行起来
编写 HelloWorld 并运行
自动生成的文件
添加完成后, 我们会看到如下的代码结构.
自动生成的目录结构
然后在 HelloWorldApplication 同级目录下创建类 HelloWorldController 代码如下
package net.abcbook.learn.springboot;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author summer
* @date 2018/4/3 下午4:28
* HelloWorld 程序的 Controller
*/
/*
* @RestController相当于
* @Controler+@ResponseBody
* @Controller表示在Spirng中注入一个bean,这个bean的类型是一个控制器
* @ResponseBody表示返回的数据类型是JSON
*/
@RestController
/*
* @RequestMapping用来定义请求的路径,
* 定义在类上,则当前类下所有的映射路径均有这个前缀
* 括号内传递的值是所映射的路径
*/
@RequestMapping("/demo")
public class HelloWorldController {
/**
* @author summer
* @date 2018/4/3 下午4:31
* @return java.lang.String
* @description HelloWorld 接口
*/
/*
* @GetMapping 相当于 @RequestMapping(method = RequestMethod.GET)
* 同理@PostMapping 相当于 @RequestMapping(method = RequestMethod.POST)
* 另外还有 @PutMapping @DeleteMapping
*/
@GetMapping("/hello")
public String HelloWorld(){
return "Hello World";
}
}
右击 HelloWorldApplication 选择启动或点击工具栏中的启动按钮启动.
image
访问路径 http://localhost:8080/demo/hello 就可以看到期待已久的 HelloWorld 了.
代码介绍
生成的目录中我们需要关注的有如下几个
-
main/java下的HelloWorldApplication和HelloWorldController -
main/resource下的application.properties -
src下的pom.xml
HelloWorldApplication
SpringBoot 的主启动类, 后期降到的其他的配置(如定时器的开启) 也会在此类中开启
/**
* @author summer
* @date 2018/4/3 下午4:22
* @description HelloWorld 的启动类
*/
/*
* 注解表明这是 Spring 的主配置文件
*/
@SpringBootApplication
public class HelloWorldApplication {
/**
* @author summer
* @date 2018/4/3 下午4:23
* @param args 启动参数
* @return void
* @description 启动入口
*/
public static void main(String[] args) {
SpringApplication.run(HelloWorldApplication.class, args);
}
}
HelloWorldController
测试的 Controlle 入口
上文已经讲解
application.properties
SpringBoot 项目的默认配置文件, 使用 properties 格式的简单配置就能完成之前用 xml 好几行才能完成的代码.
后期的项目中, 我们会使用
yml格式的文件替换properties文件, 详情请看后期内容
例如我们修改一下端口
#修改端口为 8899
server.port=8899
加上此代码后, 重启一下项目. 再访问路径 http://localhost:8899/demo/hello 又可以看到 HelloWorld 了.
pom.xml
pom.xml 使用过 maven 的童鞋应该对这个文件不陌生. 没错, 他就是 jar 包的管理文件.
<?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>
<!--项目的介绍信息,包括所在组/jar id/版本号等信息-->
<groupId>net.abcbook.learn.springboot</groupId>
<artifactId>hello-world</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<!--项目在maven中的名字和简介信息-->
<name>hello-world</name>
<description>第一个 SpirngBoot 项目</description>
<!--当前项目继承的 SpringBoot 项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!--设置传输的编码和java JDK的版本信息-->
<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>
<!--Web模块相关jar包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--测试模块,包括JUnit、Hamcrest、Mockito-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<!-- maven编译的相关配置 编译插件-->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
项目源码
SpringBoot 教程: https://github.com/lixian13149999/spring-boot-learn
总结
到此为止, 我们的第一个SpringBoot 的 HelloWorld 程序就写完了, 是不是觉得比 SpringMVC 项目搭建起来要便捷很多?
有问题可以在留言区留言, 转发请注明出处, 谢谢









网友评论