首页 > 其他分享 >30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <1> 5分钟快速创建一个springboot web项目

30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <1> 5分钟快速创建一个springboot web项目

时间:2025-01-17 09:00:01浏览次数:3  
标签:http springboot snapshots 分钟 maven springframework org public 轻量级

快速导航

<1> 5分钟快速创建一个springboot web项目
<2> 5分钟集成好最新版本的开源swagger ui,并使用ui操作调用接口
<3> 5分钟集成好druid并使用druid自带监控工具监控sql请求
<4> 5分钟集成好mybatisplus并使用mybatisplus generator自动生成代码
<5> 5分钟集成好caffeine并使用注解操作缓存
<6> 5分钟集成好前端页面

demo项目代码下载

目录

我们开发项目的第一步就是要搭建一个适合业务系统技术栈的脚手架,那么今天就来介绍如何快速搭建一个适合我们的万能轻量级的脚手架,包含前后端的开发,服务监控,接口管理等等。技术栈采用用Springboot 3.4.1 + druid + spring task + mybatis + mybatis generator + swagger(新版swaggerUI) + mysql + SpringbootAdmin + vue2 + element.

一、整体技术架构图

在这里插入图片描述

二、准备工作

1. 插件和软件准备

1. idea <开发工具>
2. idea 插件 - maven dependency helper
3. idea 插件 - database <非社区版自带> || navcat for mysql || workbench
4. idea 插件 - vuejs <高版本自带>
5. jdk 17 +
6. chrome
7. maven <可自己安装或使用idea自带maven工具>

2.通过官方工具快速创建脚手架

2.1 快速创建项目工具

2.1.1 打开 https://start.spring.io/ 网站

在这里插入图片描述
项目的基础信息填写就不多说了(groupId/artifatId/name),打包方式选jar,java版本选17。需要额外的安装包的话,就自己在右侧添加即可,选择完成之后,点击GENERATE生成项目。

在这里插入图片描述

---.mvn       maven wrapper
---src        程序目录
.gitignore    git 忽略文件
mvnw          maven wrapper执行器
pom.xml       maven配置
2.1.2 使用idea 打开此目录

打开setting -> maven -> user setting file

在这里插入图片描述

配置maven, 将下面代码保存为setting-alibaba.xml 然后idea maven配置设置为此文件。

<?xml version="1.0" encoding="UTF-8"?>
 
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at
    http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.power by GEEK CUI
-->
 
<!--
 | This is the configuration file for Maven. It can be specified at two levels:
 |
 |  1. User Level. This settings.xml file provides configuration for a single user, 
 |                 and is normally provided in ${user.home}/.m2/settings.xml.
 |
 |                 NOTE: This location can be overridden with the CLI option:
 |
 |                 -s /path/to/user/settings.xml
 |
 |  2. Global Level. This settings.xml file provides configuration for all Maven
 |                 users on a machine (assuming they're all using the same Maven
 |                 installation). It's normally provided in 
 |                 ${maven.home}/conf/settings.xml.
 |
 |                 NOTE: This location can be overridden with the CLI option:
 |
 |                 -gs /path/to/global/settings.xml
 |
 | The sections in this sample file are intended to give you a running start at
 | getting the most out of your Maven installation. Where appropriate, the default
 | values (values used when the setting is not specified) are provided.
 |
 |-->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
    <localRepository>D:\Repositories\Maven</localRepository>
  <!-- interactiveMode
   | This will determine whether maven prompts you when it needs input. If set to false,
   | maven will use a sensible default value, perhaps based on some other setting, for
   | the parameter in question.
   |
   | Default: true
  <interactiveMode>true</interactiveMode>
  -->
 
  <!-- offline
   | Determines whether maven should attempt to connect to the network when executing a build.
   | This will have an effect on artifact downloads, artifact deployment, and others.
   |
   | Default: false
  <offline>false</offline>
  -->
 
  <!-- pluginGroups
   | This is a list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e.
   | when invoking a command line like "mvn prefix:goal". Maven will automatically add the group identifiers
   | "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not already contained in the list.
   |-->
  <pluginGroups>
    <!-- pluginGroup
     | Specifies a further group identifier to use for plugin lookup.
    <pluginGroup>com.your.plugins</pluginGroup>
    -->
    <pluginGroup>org.mortbay.jetty</pluginGroup>
  </pluginGroups>
 
  <!-- proxies
   | This is a list of proxies which can be used on this machine to connect to the network.
   | Unless otherwise specified (by system property or command-line switch), the first proxy
   | specification in this list marked as active will be used.
   |-->
  <proxies>
    <!-- proxy
     | Specification for one proxy, to be used in connecting to the network.
     |
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>proxyuser</username>
      <password>proxypass</password>
      <host>proxy.host.net</host>
      <port>80</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
    -->
  </proxies>
 
  <!-- servers
   | This is a list of authentication profiles, keyed by the server-id used within the system.
   | Authentication profiles can be used whenever maven must make a connection to a remote server.
   |-->
  <servers>
    <!-- server
     | Specifies the authentication information to use when connecting to a particular server, identified by
     | a unique name within the system (referred to by the 'id' attribute below).
     | 
     | NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are 
     |       used together.
     |
    <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>
    -->
 
    <!-- Another sample, using keys to authenticate.
    <server>
      <id>siteServer</id>
      <privateKey>/path/to/private/key</privateKey>
      <passphrase>optional; leave empty if not used.</passphrase>
    </server>
    -->
    <server>
        <id>releases</id>
        <username>ali</username>
        <password>ali</password>
      </server>
      <server>
        <id>Snapshots</id>
        <username>ali</username>
        <password>ali</password>
      </server>
  </servers>
 
  <!-- mirrors
   | This is a list of mirrors to be used in downloading artifacts from remote repositories.
   | 
   | It works like this: a POM may declare a repository to use in resolving certain artifacts.
   | However, this repository may have problems with heavy traffic at times, so people have mirrored
   | it to several places.
   |
   | That repository definition will have a unique id, so we can create a mirror reference for that
   | repository, to be used as an alternate download site. The mirror site will be the preferred 
   | server for that repository.
   |-->
  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
<mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf> 
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
    <mirror>
      <!--This is used to direct the public snapshots repo in the 
          profile below over to a different nexus group -->
      <id>nexus-public-snapshots</id>
      <mirrorOf>public-snapshots</mirrorOf> 
      <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
    </mirror>
  </mirrors>
 
  <!-- profiles
   | This is a list of profiles which can be activated in a variety of ways, and which can modify
   | the build process. Profiles provided in the settings.xml are intended to provide local machine-
   | specific paths and repository locations which allow the build to work in the local environment.
   |
   | For example, if you have an integration testing plugin - like cactus - that needs to know where
   | your Tomcat instance is installed, you can provide a variable here such that the variable is 
   | dereferenced during the build process to configure the cactus plugin.
   |
   | As noted above, profiles can be activated in a variety of ways. One way - the activeProfiles
   | section of this document (settings.xml) - will be discussed later. Another way essentially
   | relies on the detection of a system property, either matching a particular value for the property,
   | or merely testing its existence. Profiles can also be activated by JDK version prefix, where a 
   | value of '1.4' might activate a profile when the build is executed on a JDK version of '1.4.2_07'.
   | Finally, the list of active profiles can be specified directly from the command line.
   |
   | NOTE: For profiles defined in the settings.xml, you are restricted to specifying only artifact
   |       repositories, plugin repositories, and free-form properties to be used as configuration
   |       variables for plugins in the POM.
   |
   |-->
  <profiles> 
    <profile>
      <id>development</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>
          <snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
        </repository>
      </repositories>
     <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>
          <snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
    <profile>
      <!--this profile will allow snapshots to be searched when activated-->
      <id>public-snapshots</id>
      <repositories>
        <repository>
          <id>public-snapshots</id>
          <url>http://public-snapshots</url>
          <releases><enabled>false</enabled></releases>
          <snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
        </repository>
      </repositories>
     <pluginRepositories>
        <pluginRepository>
          <id>public-snapshots</id>
          <url>http://public-snapshots</url>
          <releases><enabled>false</enabled></releases>
          <snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
 
   <activeProfiles>
    <activeProfile>development</activeProfile>
    <activeProfile>public-snapshots</activeProfile>
   </activeProfiles>
</settings>

刷新maven引入依赖包…

2.2 补齐依赖

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

2.3 启动服务

这个是后没有配置MySQL连接,服务是起不来的,所以要加个注解先忽略DB的autoconfig。

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer;

@SpringBootApplication(
		exclude = {
				DataSourceAutoConfiguration.class
		}
)
public class DemoApplication {

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

}

启动成功!!!

在这里插入图片描述

三、写第一个接口

创建web/TestController
在这里插入图片描述
写以下代码:

package com.example.demo.web;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/test")
public class TestController {

    @GetMapping("")
    public String test(){
        return "test";
    }

}

重启后访问地址 http://localhost:8080

在这里插入图片描述

总结

  1. 使用springboot官方工具创建项目之后,并不能直接启动,里边的一些包可能会需要配置过后才能启动。
  2. 引用了mysql相关包之后,springboot会对数据库进行autoconfig,这个时候如果想启动项目就必须先把DB自动配置排除关闭掉。

标签:http,springboot,snapshots,分钟,maven,springframework,org,public,轻量级
From: https://blog.csdn.net/yh4494/article/details/145132863

相关文章

  • 【三江学院毕业论文】露营爱好者APP(基于SpringBoot+UniApp)的设计与实现
    注:仅展示部分文档内容和系统截图,需要完整的视频、代码、文章和安装调试环境请私信up主。摘 要随着计算机行业的不断发展,计算机的应用也在不断随着其发展速度进行着更新。而现今对于一个网络应用非常广泛的社会,商品采购管理对计算机管理商品采购要求更加紧密,更加完善,特别......
  • 【夸克网盘福利】如何领取1TB免费空间?小白三分钟学会!
    【夸克网盘福利】如何领取1TB免费空间?小白三分钟学会!Hello大家好!我是你们的网盘省钱达人,今天给大家带来一个超实用的小技巧——如何用夸克网盘免费领取1TB的存储空间!没错,不用花一分钱,就能获得超大容量,随便存视频、照片、大文件,彻底告别“存储焦虑”。教程全程亲测有效,小白也能三......
  • springboot毕设 公共场所安保信息管理系统 程序+论文
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加速,公共场所如购物中心、交通枢纽、学校及医院等日益成为人流密集区,其安全管理工作面临着前所未有的挑战。近年来,恐怖袭击、盗窃、......
  • springboot毕设 个人博客系统开 程序+论文
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,个人博客作为一种重要的网络应用形式,已成为人们分享个人见解、记录生活点滴、展示个人才华的重要平台。从早期的博客网站到......
  • 十分钟写作Day4 1.16
    前言本来昨天和赵北,南皓文和樊绍峰一起去看北京男篮德比,但又因昨天是命题作文,没有记录下我当时的感慨,便在今天的随笔里说说我的看法。正文与其说是感慨,不如说这是从不同角度观察这场比赛。由于赵北已经在他的随笔里介绍了比赛的全过程,因此我在这里也不过多的赘述比赛本身。而......
  • 基SpringBoot+Vue3的游乐园管理系统
    文章目录详细视频演示项目介绍技术介绍功能介绍核心代码系统效果图详细视频演示文章底部名片,获取项目的完整演示视频,免费解答技术疑问项目介绍  游乐园作为娱乐休闲的重要场所,其管理效率和服务质量直接影响到游客的满意度和游乐园的声誉。传统的游乐园管理方式......
  • 计算机毕业设计Springboot运动健康APP 基于Spring Boot框架的健身与健康管理移动应用
    计算机毕业设计Springboot运动健康APPu8mr9vrk(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着科技的飞速发展和人们对健康生活方式的追求,运动健康APP应运而生,成为现代生活中不可或缺的健康管理工具。这类APP不仅能够帮助用户记......
  • 计算机毕业设计Springboot云聚合支付平台 基于SpringBoot的云聚合支付解决方案 Spring
    计算机毕业设计Springboot云聚合支付平台6noy0741(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着电子商务和移动互联网的飞速发展,支付方式和支付渠道日益多样化,用户对支付体验的要求也越来越高。商户为了满足不同用户的需求,需......
  • 计算机毕业设计Springboot校园点餐系统 基于Spring Boot的高校在线订餐平台开发 Sprin
    计算机毕业设计Springboot校园点餐系统670075a9(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着校园生活的日益数字化,传统的食堂点餐方式已逐渐无法满足师生的快节奏生活需求。为了提升用餐体验,减少排队时间,同时为校园餐饮服务......
  • 计算机毕业设计Springboot某城市的地铁综合服务管理系统的设计与实现 基于Springboot
    计算机毕业设计Springboot某城市的地铁综合服务管理系统的设计与实现p40cv6o0(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着城市化的快速发展,地铁已成为城市公共交通的重要组成部分,其运营效率和服务质量直接影响着市民的出行......