使用Maven构建项目
- 通过
SPRING INITIALIZR
工具产生基础项目 - 解压项目包,并用IDE以
Maven
项目导入,以IntelliJ IDEA 14
为例:- 菜单中选择
File
–>New
–>Project from Existing Sources...
- 选择解压后的项目文件夹,点击
OK
- 点击
Import project from external model
并选择Maven
,点击Next
到底为止。 - 若你的环境有多个版本的JDK,注意到选择
Java SDK
的时候请选择Java 7
以上的版本
- 菜单中选择
项目结构解析
项目结构通过上面步骤完成了基础项目的创建,如上图所示,Spring Boot的基础结构共三个文件(具体路径根据用户生成项目时填写的Group所有差异):
-
src/main/java
下的程序入口:Chapter1Application
-
src/main/resources
下的配置文件:application.properties
-
src/test/
下的测试入口:Chapter1ApplicationTests
生成的Chapter1Application
和Chapter1ApplicationTests
类都可以直接运行来启动当前创建的项目,由于目前该项目未配合任何数据访问或Web模块,程序会在加载完Spring之后结束运行。
引入Web模块
当前的pom.xml
内容如下,仅引入了两个模块:
-
spring-boot-starter
:核心模块,包括自动配置支持、日志和YAML -
spring-boot-starter-test
:测试模块,包括JUnit、Hamcrest、Mockito
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
引入Web模块,需添加spring-boot-starter-web
模块:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
编写HelloWorld服务
- 创建
package
命名为com.didispace.web
(根据实际情况修改) - 创建
HelloController
类,内容如下
@RestController
public class HelloController {
@RequestMapping("/hello")
public String index() {
return "Hello World";
}
}
- 启动主程序,打开浏览器访问
http://localhost:8080/hello
,可以看到页面输出Hello World
错误处理
参照SpringBoot-Learning快速入门
https://link.zhihu.com/?target=http%3A//blog.didispace.com/spring-initializr-in-intellij/
创建demo项目。
-
编译报错,错误信息如下所示:
因为IDE是新的,开始是Maven配置问题,这样设置一下就可以跑Maven了:File -> Setting -> Build,Excution,Deployment -> Build Tools -> Maven -> 修改Maven home directory、User setting file为你本机的Maven -> 点击ok,IDE上依然一片红。SpringbootApplication.java里直接告诉你:Error:(3, 32) java: 程序包org.springframework.boot不存在。
-
idea安装2019.1后踩的坑
-
Maven 警告 expected START_TAG or END_TAG not TEXT
原因
在Maven警告提示区域存在空格等不规范字符,在网上复制到项目中时经常出现类似问题。pop.xml文件,setting.xml文件极易出现此类问题。解决
将空格删除,规范一下格式就好了。示例
比如我的Maven远程仓库代码复制的百度上的,导致总是弹出该警告。我用Sublime Text打开setting.xml文件删除空格保存就好了。
编译成功
解决了以上问题,终于编译成功。Hello World
启动主程序,打开浏览器访问http://localhost:8080/hello
,可以看到页面输出Hello World