详解SpringBoot工程的三种搭建方式

SpringBoot的主要目的是简化配置文件,通过少量配置即可运行Java程序,其强大的自动配置功能帮助开发者轻松实现配置装配,通过引入SpringBoot的 starter 就能实现想要的功能,不需要额外的配置。

目前SpringBoot工程有三种搭建方式:

  • 通过Spring Initializr创建
  • 通过IDEA创建工程
  • 手动创建工程

官方生成工具

Spring团队提供一个非常方便的网页用于生成SpringBoot工程,打开浏览器进入Spring Initializr:

工程生成参数列表:

  • Project: 工程类型(支持Maven和Gradle构建工具)
  • Language:工程主要语言根据需要可选择Java、Kotlin、Groovy
  • SpringBoot:SpringBoot版本
  • ProjectMatedata:有 GroupArtifact 等配置
  • Dependencies:工程依赖

参数设置完成后点击 Generate 下载工程,完成后使用 IDEA 导入工程,打开工程同步即可运行。

IDEA创建工程

较新的 IDEA 版本都内置创建SpringBoot工程插件,其创建原理也是使用的Spring Initializr来创建工程,创建流程下如:

  • 打开 IDEA 开发工具
  • 选择 file -> new -> project 菜单
  • 在新的对话框中选择 Spring Initializr
  • 点击 Next 即可创建SpringBoot工程

最后添加 main 方法启动应用程序:

@SpringBootApplication
@Slf4j
public class SpringEnvApplication {

  public static void main(String[] args) {

    ConfigurableApplicationContext context = SpringApplication.run(SpringEnvApplication.class, args);
  }

}

手动创建SpringBoot工程

除了以上两种方式外,还可以通过手动创建的方式创建SpringBoot工程,通过 IDEA 创建一个空的 Maven 工程,然后指定SpringBoot的依赖就,基本流程如下:

  • 打开 IDEA 开发工具
  • 选择 file -> new -> project 菜单
  • 在新的对话框中选择 Mavenn
  • 点击 Next 根据提示完成项目创建

工程创建完成后,打开 pom.xml 文件,设置 pom.xml 的parent配置:

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

添加SpringBoot Maven 打包插件:

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

添加 main 方法启动应用程序:

@SpringBootApplication
@Slf4j
public class SpringEnvApplication {

  public static void main(String[] args) {

    ConfigurableApplicationContext context = SpringApplication.run(SpringEnvApplication.class, args);
  }

}

完整 pom.xml 文件:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.0.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.csbaic.arch</groupId>
  <artifactId>spring-env</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>spring-env</name>

  <properties>
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>

设置parent和插件后,就可以使用SpringBoot创建应用程序了。

时间: 2019-11-14

IDEA下从零开始搭建SpringBoot工程的方法步骤

SpringBoot的具体介绍可以参看其他网上介绍,这里就不多说了,就这几天的学习,个人理解,简而言之: (1)它是Spring的升级版,Spring容器能做到的事情,它都能做到,而且更简便,从配置形式上来说,SpringBoot完全抛弃了繁琐的XML文件配置方式,而是替代性地用注解方式来实现,虽然本质来说,是差不多的(类似包扫描,注解扫描,类加载之类). (2)SpringBoot集成的插件更多,从而使用很多服务,都只是引入一个依赖,几个注解和Java类就可以用了,具体的参考相关手册. (3)

SpringBoot集成gRPC微服务工程搭建实践的方法

前言 本文将使用Maven.gRPC.Protocol buffers.Docker.Envoy等工具构建一个简单微服务工程,笔者所使用的示例工程是以前写的一个Java后端工程,因为最近都在 学习微服务相关的知识,所以利用起来慢慢的把这个工程做成微服务化应用.在实践过程踩过很多坑,主要是经验不足对微服务还是停留在萌新阶段,通过本文 记录创建微服务工程碰到一些问题,此次实践主要是解决以下问题: 如何解决.统一服务工程依赖管理 SpringBoot集成gRPC 管理Protocol buffers文

springboot集成普罗米修斯(Prometheus)的方法

Prometheus 是一套开源的系统监控报警框架.它由工作在 SoundCloud 的 员工创建,并在 2015 年正式发布的开源项目.2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,非常的受欢迎. 简介 Prometheus 具有以下特点: 一个多维数据模型,其中包含通过度量标准名称和键/值对标识的时间序列数据 PromQL,一种灵活的查询语言,可利用此维度 不依赖分布式存储: 单服务器节点是自治的 时间序列收集通过HTTP上

SpringBoot集成Beetl后统一处理页面异常的方法

背景 SpringBoot集成Beetl后如果页面出现异常会将出现异常之前的页面输出到客户端,但是由于页面不完整会导致用户看到的页面错乱或者空白,如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> 在控制台可以看到 >

Docker实践之搭建wordpress的方法

WordPress是一个非常著名的PHP编写的博客平台,发展到目前为止已经形成了一个庞大的网站平台系统.在WP上有规模庞大的插件和主题,可以帮助我们快速建立一个博客甚至网站. 在Windows上可以非常方便的安装WordPress,因为IIS上集成了WordPress的一键安装包.而在Linux上安装WordPress就比较复杂了,我们需要配置PHP环境.Apache或者Nginx服务器.MySQL数据库以及各种权限和访问问题.所以在Linux上最好的办法就是使用Docker来安装WordPre

浅谈SpringBoot集成Quartz动态定时任务

SpringBoot自带schedule 沿用的springboot少xml配置的优良传统,本身支持表达式等多种定时任务 注意在程序启动的时候加上@EnableScheduling @Scheduled(cron="0/5 * * * * ?") public void job(){ System.out.println("每五秒执行一次"); } 为什么要使用Quartz 多任务情况下,quartz更容易管理,可以实现动态配置 执行时间表达式: 表达式示例: 集成

SpringBoot集成Zipkin实现分布式全链路监控

Zipkin 简介 Zipkin is a distributed tracing system. It helps gather timing data needed to troubleshoot latency problems in service architectures. Features include both the collection and lookup of this data. If you have a trace ID in a log file, you ca

apollo与springboot集成实现动态刷新配置的教程详解

分布式apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性. 本文主要介绍如何使用apollo与springboot实现动态刷新配置,如果之前不了解apollo可以查看如下文档 https://github.com/ctripcorp/apollo 学习了解一下apollo,再来查看本文 正文 apollo与spring实现动态刷新配置本文主要演示2种刷新,一种

springboot集成CAS实现单点登录的示例代码

最近新参与的项目用到了cas单点登录,我还不会,这怎么能容忍!空了学习并搭建了一个spring-boot 集成CAS 的demo.实现了单点登录与登出. 单点登录英文全称是:Single Sign On,简称SSO. 含义:在多个相互信任的系统中,只要登录一个系统其他系统均可访问. CAS 是一种使用广泛的单点登录实现,分为客户端CAS Client和服务端 CAS Service,客户端就是我们的系统,服务端是认证中心,由CAS提供,我们需要稍作修改,启动起来就可以用.~~~~ 效果演示 ht

SpringBoot集成Druid监控页面最小化配置操作

在项目中使用阿里的druid连接池,pom文件配置: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>com.alibaba</groupId&g

SpringBoot 集成 activiti的示例代码

SpringBoot 集成 activiti  基础环境搭建 添加依赖 <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-basic</artifactId> <version>6.0.0</version> </dependency> 添加配置文件 server: tomcat: uri-