Springboot搭建

目前springboot已经发布3.0版本,需要将jdk升级到17及以上版本才可使用。

如需继续使用jdk8以及springboot3.0以下版本,将Server URl改为 https://start.aliyun.com/ 

一、IDEA创建Springboot

如果已有打开的idea项目,选择文件 -> 关闭项目 -> New Project

更改maven配置(file -> settings),选择本地maven下载速度快

二、Springboot内容简介

Springboot由启动类启动,无需配置tomcat,SSM需要tomcat启动。

Springboot是内嵌web容器,框架内部配置了tomcat 无需像SSM一样打成war包运行,只需要打为jar包就行。

三、pom.xml文件

pom文件的作用:jar包管理工具,管理项目中需要的jar包、以及jar包的版本号。

SpringBoot帮我们都整理好了这些版本号。

  • spring-boot-dependencies:核心依赖在父工程里面

  • 我们在写或者引入一些SpringBoot依赖的时候,不需要指定版本

  • 这里版本号需要改到3.0以下

启动器

 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter</artifactId>
</dependency>
  • 启动器:说白了就是SpringBoot启动的场景

  • 比如Spring-boot-srarter-web,他会帮助我们自动导入web环境所有的依赖

  • SpringBoot会将所有的功能场景,都变成一个个的启动器

  • 我们需要使用的功能,只需要找到他们的启动器便可以进行使用

ssm是前后端一体的,springboot是前后端分离的。

springboot专门为微服务而生。SpringCloud就是Springboot加上一堆注解。

微服务就是一堆Springboot程序,构成若干集群,把这些集群放在一起就构成了微服务。

web启动器

<!--加载web-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

@RestController和@Controller有什么区别

加@Controller 方法内return的是html页面,相当于一个重定向; 而@RestController返回的是json。

:下边controller层,@RestController注解下返回的是“Hello world”字符串,当注解环卫@Controller则返回Hello world.html这个页面

测试

controller层

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String getHello(){
        return "Hello world";
    }
}

配置文件

server.port=8080

访问地址:http://localhost:8080/hello

四、部署

右侧maven选择clean 清除target文件;

点击package;

找到信息中Building jar 后边的路径,复制在文件管理中打开;
将打好的jar包放进单独项目文件夹;
在目录搜索框输入cmd;
输入java - jar +文件名  (例如:java -jar bootdemo-0.0.1-SNAPSHOT.jar)
在服务器部署:
finalshell连接服务器;
建立项目文件夹,将jar包传进来;
进入jar包所在位置,输入java - jar +文件名
访问:复制当前ip地址在浏览器打开(例如192.168.112.2:8080/hello)

服务器 使用脚本部署:

#作者:zc
#拷贝日期2023.3.13
#!/usr/bin/env bash

packageName="xxl-sso-server-1.1.1-SNAPSHOT.jar"
programName="xxl-sso-server-1.1.1-SNAPSHOT"


#检测状态
function status() {
  echo "---------------------------------------检测状态---------------------------------------"
  pid=$(ps -ef | grep -n ${packageName} | grep -v grep | awk '{print $2}')
  if [ ${pid} ]; then
    echo "${programName}正在运行,进程ID:${pid}"
  else
    echo "${programName}未运行!"
  fi
}

#停止程序
function stop() {
  echo "---------------------------------------停止程序---------------------------------------"
  #打印出当前的进程,grep -v grep 去掉grep进程
  pid=$(ps -ef | grep -n ${packageName} | grep -v grep | awk '{print $2}')
  #查询进程个数:wc -l 返回行数
  count=$(ps -ef | grep -n ${packageName} | grep -v grep | wc -l)
  echo "${programName}进程ID:$pid,进程个数:$count"
  #关闭进程
  if (($count > 0)); then
    kill -9 $pid
  else
    echo "${programName}未运行!"
    exit 0
  fi
  #打印关掉的进程ID
  echo "关闭进程:$pid"
  count=$(ps -ef | grep -n ${packageName} | grep -v grep | wc -l)
  sec=5
  sum=12
  #开始一个循环
  while (($sum > 0)); do
    if (($count > 0)); then
      #若进程还未关闭,则脚本sleep几秒
      sleep $sec
      count=$(ps -ef | grep -n ${packageName} | grep -v grep | wc -l)
    else
      #若进程已经关闭,则跳出循环
      echo "${programName}已经关闭!"
      break
    fi
    sum=$(($sum - 1))
  done
  #超时不能停止,强制杀掉进程
  if (($count > 0)); then
    kill -9 $pid
    echo "${programName}被强制关闭!"
    sleep 1
  fi
}

#启动程序
function start() {
  echo "---------------------------------------启动程序---------------------------------------"
  pid=$(ps -ef | grep -n ${packageName} | grep -v grep | awk '{print $2}')
  if [ ${pid} ]; then
    echo "${programName}正在运行,请先停止程序!"
  else
    #启动进程
    sudo nohup java  -jar  -server -Xms1024M -Xmx1024M -Xmn256M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M -XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:+CMSClassUnloadingEnabled -XX:+ParallelRefProcEnabled -XX:+CMSScavengeBeforeRemark -XX:ErrorFile=/opt/app/message/jvm/hs_err_pid%p.log -Xloggc:/opt/app/message/jvm/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintClassHistogramBeforeFullGC -XX:+PrintClassHistogramAfterFullGC -XX:+PrintHeapAtGC -XX:HeapDumpPath=/opt/app/message/jvm -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:-OmitStackTraceInFastThrow ${packageName} --spring.profiles.active=test > start.log 2>&1 &
    pid=$(ps -ef | grep -n ${packageName} | grep -v grep | awk '{print $2}')
    if [ ${pid} ]; then
      echo "${programName}已经启动,进程ID为:$pid"
    else
      #等待5秒
      sleep 5
      pid=$(ps -ef | grep -n ${packageName} | grep -v grep | awk '{print $2}')
      if [ !${pid} ]; then
        echo "${programName}启动失败!"
      fi
    fi
  fi
}

#启动时带参数,根据参数执行
if [ ${#} -ge 1 ]; then
  case ${1} in
  "start")
    start
    ;;
  "restart")
    stop
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  *)
    echo "${1}无任何操作"
    ;;
  esac
else
  echo "
    start:启动
    stop:停止
    restart:重启
    status:检查状态
    示例命令如:./phoenix_server start
    "
fi

五、更改banner(启动图标,非必须)

可以在网上搜索:springboot banner

Spring Boot banner在线生成工具,制作下载英文banner.txt,修改替换banner.txt文字实现自定义,个性化启动banner-bootschool.net

根据该网站,弄好banner.txt文档,然后将其放在项目当中,启动项目就可以出现相应的画面!!!

当然banner当中的内容你可以自己去设定!

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
SpringBoot是一个开源的整合了Spring框架和其他相关技术的快速开发框架。它采用约定大于配置的思想,简化了Spring应用的开发过程,从而使开发者更加快速、高效地开发Web应用程序。在本篇文章中,我们将介绍如何使用SpringBoot搭建一个简单的Web应用程序。 第一步:安装并配置开发环境 首先,我们需要在本地安装JDK、Maven和IDE。安装JDK后,我们需要在操作系统的环境变量中添加JAVA_HOME和PATH。安装Maven后,我们需要在IDE中配置Maven仓库和镜像源。最后,我们需要在IDE中安装SpringBoot插件,以便能够创建SpringBoot应用程序。 第二步:创建SpringBoot项目 在IDE中选择新建一个Maven项目,并选择SpringBoot,然后选择适当的依赖项,例如Web、JPA、Thymeleaf等。创建成功后,我们可以看到项目的目录结构和默认文件。 第三步:运行SpringBoot应用程序 在IDE中右键点击项目,在菜单中选择“Run As”>“Spring Boot App”,即可启动应用程序。在浏览器中输入“http://localhost:8080”,可以看到应用程序的首页。此时,我们已经创建了一个简单的SpringBoot应用程序。 第四步:编写应用程序 在application.properties文件中,配置一些应用程序的设置,例如数据库等。在Java代码中编写控制器、服务、数据访问对象等。在Web文件夹中编写页面模板。最后,我们需要在IDE中重新运行应用程序并测试其功能。 综上所述,SpringBoot是一个快速开发的框架,可以使开发Web应用程序更加简单、高效。通过按照上面4个步骤,我们可以轻松地搭建出一个简单的SpringBoot应用程序。对于想要快速开发Web应用程序的开发者来说,SpringBoot是一个非常好的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值