欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

三 搭建第一个springboot项目

程序员文章站 2022-04-19 22:43:31
...

官方文档

1 创建springboot项目常用方法:

  • start.spring.io 创建
  • 在IDE创建,比如idea:file-new-project-Spring initializr 按要求填信息,下一步下一步完成。

本质上这两种方法是一样的,都是帮你快速生成了基础代码和目录结构而已

2 关键代码如下

  • pom文件:
<?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>

    <groupId>com.example</groupId>
    <artifactId>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
    </parent>

    <!-- Additional lines to be added here... -->

</project>

说明:以spring-boot-starter-parent为父依赖,它指定了资源/配置文件默认路径、用Management指定了常见插件和依赖的版本,这些包版本是经过测试不会冲突的,我们使用这些依赖的时候,尽量使用默认版本。

  • 为了能启动,我们需要引入
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

说明:spring-boot-starter-web 引入之后,会引入jackson、tomcat、springmvc等依赖。

  • 启动类
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*;

@RestController
@EnableAutoConfiguration
public class Example {

    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

    public static void main(String[] args) {
        SpringApplication.run(Example.class, args);
    }

}

说明:springboot用启动类的main方法启动,@RestController标记这是一个springmvc的controller, @EnableAutoConfiguration 表示启用自动配置,它会根据你引入的jar包list去“猜”你需要的配置,这是springboot的亮点之一。 具体注解说明会在后续讲解。

3 启动

在IDE运行main方法,或者在项目根目录运行 mvn spring-boot:run,就可以启动这个项目。会看到如下打印:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v2.1.3.RELEASE)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.222 seconds (JVM running for 6.514)

这个时候访问 localhost:8080,可以得到:

Hello World!

4 特别建议

  • 强烈推荐使用 spring-boot-starter-parent。
  • 尽量不要去特殊指定spring 框架的版本,每一个springboot的版本几乎都对应一个spring framework的基础版本。spring相关的东西,比如AOP,都不要去指定版本,spring-boot-starter-parent会给您安排一个最适合的版本。

5 赠送一个linux下springboot项目的脚本

#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改,建议用绝对路径,那么脚本和jar包就不用放到一个目录
APP_NAME=xxl-code-generator-admin-0.0.1-SNAPSHOT.jar
LOG_DIR=/home/exter/xxl-generator/log/xxl-code-generator-admin.log
#使用说明,用来提示输入参数
usage() {
    echo "Usage: sh 执行脚本.sh [start|stop|restart|status|taillog]"
    exit 1
}

#检查程序是否在运行
is_exist(){
  pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
  #如果不存在返回1,存在返回0     
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}

#启动方法
start(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is already running. pid=${pid} ."
  else
    nohup java -jar $APP_NAME > /dev/null 2>&1 &
  fi
}

#停止方法
stop(){
  is_exist
  if [ $? -eq "0" ]; then
    kill -9 $pid
  else
    echo "${APP_NAME} is not running"
  fi  
}

#输出运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}

#重启
restart(){
  stop
  start
}
#tail 日志
taillog(){
  tail -1000f $LOG_DIR
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  "taillog")
    taillog
    ;;
  *)
    usage
    ;;
esac

下一章 四 打可执行jar包

转载于:https://www.jianshu.com/p/b3346ea14e92