SpringBoot学习笔记一:简单项目搭建

这是SpringBoot学习系列的第一个笔记。希望这是一个美好的开端,也希望后续本人能够完成整个SpringBoot框架的学习。这是初学者的学习笔记,操作过程尽量简单详细,大神请轻喷(狗头保命)。话不多说,下面记录以Spring Initializr来创建SpringBoot项目。

方式一:Spring Initializr

这是Spring官方提供的在线搭建SpringBoot项目的工具。

1.1.访问网站https://start.spring.io/

如下图所示:

SpringBoot学习笔记一:简单项目搭建_第1张图片
start.spring.io

)

页面主要分为以下几个选项:项目类型、编程语言、Spring Boot版本号、项目描述信息、项目依赖;这里我们在依赖项先添加Spring Web依赖。

熟悉Maven项目的同学应该对这些配置不陌生,是的,搭建一个SpringBoot项目与搭建一个maven项目没有什么差别。

这里可以按照图中配置,然后点击Generate按钮生成并下载项目。

1.2.导入项目

解压下载的项目压缩包,使用IDEA 以maven项目形式导入,加载依赖后,项目结构如下:

SpringBoot学习笔记一:简单项目搭建_第2张图片
初始化项目结构

其中,Demo1Application为项目启动类。

1.3.启动项目

方式一:IDE启动

由于Spring Boot内置了Tomcat服务器,我们可以直接点击启动类类名左边的三角符号或右击该类以运行项目。项目启动后如下图:

SpringBoot学习笔记一:简单项目搭建_第3张图片
别慌,404正常

IDEA下方日志会出现服务器加载的端口号(此处为8080),在浏览器中访问对应端口号可以访问项目。因为我们还没有配置访问地址,所以此处显示的是错误信息。

刚开始只知道IDE启动即可,后续启动方式可当阅读拓展

方式二:终端启动

打开终端,在pom.xml同级目录中,输入mvn spring-boot:run即可运行,运行结果如下:

SpringBoot学习笔记一:简单项目搭建_第4张图片
终端启动

方式三 jar包启动

  1. 打包项目,终端指令为:mvn install,生成target文件夹及项目对应的jar包

  2. 运行jar包,为了保证后台运行,可使用hohup指令:nohup java -jar demo1-0.0.1-SNAPSHOT.jar &

  3. 停止项目,可根据提供的PID号来杀死进程


    SpringBoot学习笔记一:简单项目搭建_第5张图片
    终端操作
  4. 在服务器中我们可以使用脚本来快捷启动或停止项目,脚本如下:

    #!/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.添加简单访问路径

在启动类同级目录下创建三个名为controllerservicedao的文件夹用于视图服务数据控制。在controller文件夹创建一个IndexController.java的文件,代码及结构如下图:

SpringBoot学习笔记一:简单项目搭建_第6张图片
结构图

重新启动服务,浏览器访问http://localhost:8080/index/home 即可看到效果。

项目结构及注解简析

3.1项目结构

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本文涉及注解

  1. @SpringBootApplication:SpringBoot入口文件专用,等价于以下三个注解:
    1. @SpringBootConfiguration:应用了Spring中的@Configuration注解,与@Bean搭配可取代XML文件,将对象注册为Bean
    2. @EnableAutoConfiguration:自动配置Spring上下文,将所有符合条件的@Configuration配置加载到IOC容器中
    3. @ComponentScan:自动扫描所有@Component注解,将其注册为Bean
  2. @RestController:等价于以下两个注解:
    1. @Controller@Component的子注解
    2. @ResponseBody:将返回的Java对象信息转换为Json数据返回
  3. @RequestMapping:将HTTP请求映射到REST控制器上,可以配置请求路径及请求方式,后面会见到很多用法,后续展开

源码访问:Github 55440cc

你可能感兴趣的:(SpringBoot学习笔记一:简单项目搭建)