方式一:Spring Initializr
这是Spring官方提供的在线搭建SpringBoot项目的工具。
1.1.访问网站https://start.spring.io/
页面主要分为以下几个选项:项目类型、编程语言、Spring Boot版本号、项目描述信息、项目依赖;这里我们在依赖项先添加Spring Web依赖。
熟悉Maven项目的同学应该对这些配置不陌生,是的,搭建一个SpringBoot项目与搭建一个maven项目几乎没有什么差别。
这里可以按照图中配置,然后点击Generate
按钮生成并下载项目。
1.2.导入项目
解压下载的项目压缩包,使用IDEA 以maven项目形式导入,加载依赖后,项目结构如下:
其中,Demo1Application
为项目启动类。
1.3.启动项目
方式一:IDE启动
由于Spring Boot内置了Tomcat服务器,我们可以直接点击启动类类名左边的三角符号或右击该类以运行项目。项目启动后如下图:
IDEA下方日志会出现服务器加载的端口号(此处为8080),在浏览器中访问对应端口号可以访问项目。因为我们还没有配置访问地址,所以此处显示的是错误信息。
刚开始只知道IDE启动即可,后续启动方式可当阅读拓展
方式二:终端启动
打开终端,在pom.xml同级目录中,输入mvn spring-boot:run
即可运行.
方式三 jar包启动
- 打包项目,终端指令为:
mvn install
,生成target文件夹及项目对应的jar包 - 运行jar包,为了保证后台运行,可使用
hohup
指令:nohup java -jar demo1-0.0.1-SNAPSHOT.jar &
- 停止项目,可根据提供的PID号来杀死进程
在服务器中我们可以使用脚本来快捷启动或停止项目,脚本如下:
#!/bin/bash
#启动脚本 start.sh
nohup java -jar $1 &
启动方式:
sh start.sh demo1-0.0.1-SNAPSHOT.jar
#!/bin/bash
#停止脚本 stop.sh
PID=$(ps -ef | grep $1 | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo The target application has been existed!
else
echo kill target $PID
kill $PID
fi
停止方式:
sh stop.sh demo1-0.0.1-SNAPSHOT.jar
> ps -ef | grep demo1-0.0.1-SNAPSHOT.jar #查询所有与目标文件相关的进程,包括grep自身
501 18405 1 0 9:53下午 ttys000 0:11.82 /usr/bin/java -jar demo1-0.0.1-SNAPSHOT.jar
501 18783 17707 0 9:58下午 ttys001 0:00.01 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn demo1-0.0.1-SNAPSHOT.jar
> ps -ef | grep demo1-0.0.1-SNAPSHOT.jar | grep -v grep #过滤查询进程中grep的进程
501 18405 1 0 9:53下午 ttys000 0:11.93 /usr/bin/java -jar demo1-0.0.1-SNAPSHOT.jar
> ps -ef | grep demo1-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{ print $2 }' # 提取输入的第二列,即进程的PID
18405
1.4.添加简单访问路径
在启动类同级目录下创建三个名为controller
、service
、dao
的文件夹用于视图
、服务
、数据控制
。在controller文件夹创建一个IndexController.java的文件.
重新启动服务,浏览器访问http://localhost:8080/index/home 即可看到效果。
1.5项目结构
SpringBoot项目简单结构如下:
├── demo1
│ ├── pom.xml # 依赖管理
│ ├── src
│ │ ├── main
│ │ │ ├── java # 核心代码
│ │ │ │ └── online
│ │ │ │ └── yuluo
│ │ │ │ └── demo1
│ │ │ │ ├── Demo1Application.java
│ │ │ │ ├── controller
│ │ │ │ ├── dao
│ │ │ │ └── service
│ │ │ └── resources #项目资源文件
│ │ │ ├── application.properties #项目配置文件 可用application.yml代替
│ │ │ ├── static #静态资源文件
│ │ │ └── templates #模板文件,可存放邮件、SMS等模板
│ │ └── test #测试
│ │ └── java
│ │ └── online
│ │ └── yuluo
│ │ └── demo1
│ │ └── Demo1ApplicationTests.java
│ └── target #打包目标生成文件
3.2本文涉及注解
@SpringBootApplication
:SpringBoot入口文件专用,等价于以下三个注解:@SpringBootConfiguration
:应用了Spring中的@Configuration
注解,与@Bean
搭配可取代XML文件,将对象注册为Bean@EnableAutoConfiguration
:自动配置Spring上下文,将所有符合条件的@Configuration
配置加载到IOC容器中@ComponentScan
:自动扫描所有@Component
注解,将其注册为Bean
@RestController
:等价于以下两个注解:@Controller
:@Component
的子注解@ResponseBody
:将返回的Java对象信息转换为Json数据返回
@RequestMapping
:将HTTP请求映射到REST控制器上,可以配置请求路径及请求方式,后面会见到很多用法