初级 - 如何搭建一个Java Web项目 - 记录

2023-11-16

序言

Intellij IDEA 一般可以通过两种方式创建 Spring Boot 项目:
使用 Maven 创建
使用 Spring Initializr 创建

Tips:

标题选项后的 感叹号 的是重点配置

一、使用 Spring Initializr 创建创建一个Java 项目基本框架的方法

在这里插入图片描述

在这里插入图片描述

1. 新建项目时,安装依赖理解

这里笔者选择的是 2.x 版本的 Spring Boot,不勾选 Download pre-built

1. 取消download pre-built shared indexes自动下载

Developer Tools 选项

1. Spring Boot Devtools 依赖详解

2. Lombok

3. spring-boot-configuration-processor 是干啥用的

4. SpringBoot学习:spring-boot-configuration-processor

Spring Boot Devtools 比较好理解,帮助开发者在开发环境可以更好的开发项目,修改代码后可以实时更新服务器的为修改代码后的新状态

Lombok 依赖指的是,可以省略实体类的 getset 等方法,只需要一个 @Data 注释,就可以使用实体类内的每一个 getset 方法,可以减少开发者的出错率,因为有时候开发者可能会忘记去添加 getset方法,导致代码标红。

这里的 Developer Tools 选项,笔者只选择 Spring Boot DevToolsLombok 两个依赖 ,Spring Configuration Processor 依赖暂时没怎么用到。

在这里插入图片描述

Web 选项

这里最最重要的是 Spring Web 依赖,起到一个路由收发的作用,一个 Java Web 项目的根本服务核心。该依赖是一个 Web 框架,目前笔者只需要用到这个 Spring Web 依赖。

以后比较有可能会用到的依赖,我会排在前面,其他的依赖正常排序。

安装依赖的详情链接:(只粘贴部分依赖详情链接)

Spring Web

1. SpringWeb(SpringMVC)详解


Spring Session

1. Spring Session 详解


Spring Reactive Web

1. Web——Spring Reactive Web
tips:

  1. Spring 5 里 Spring Reactive Web 改名为 Spring WebFlux

2. 压测对比: Spring WebFlux VS. Spring MVC

3. SPRINGBOOT家族之REACTIVE WEB框架:WEBFLUX(五)


Spring for GraphQL

1. Spring for GraphQL 中文文档

2. Spring for GraphQL入门


Rest Repositories

1. springboot-构建RESTful服务

2. Spring Boot 实现REST服务

3. Web——Rest Repositories

其他选项具体详情请最下面的参考链接,这里就不一一列举了,只筛选出笔者当前需要的

在这里插入图片描述

Template Engines 选项

笔者一般喜欢前后端分离的,这里就不选了。

Security 选项

目前还不需要

SQL 选项

这里笔者只需要用到 Mybatis 调用 MySQL 数据库

Mybatis框架超详解及运用总结

在这里插入图片描述

NoSQL 选项

Spring Data Redis (Access+Driver)

Spring Data MongoDB

在这里插入图片描述
Spring Data MongoDB 的依赖是:

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

关于 Mongo DB 依赖,其实还有一个依赖,可以替换,即 spring-data-mongodb,两者用其一。

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb</artifactId>
        </dependency>

如下链接:

1. MongoDB–Spring Data MongoDB详细的操作手册(增删改查)

2. spring-data-mongodb

3. SpringData MongoDB

启动报错解决方法

还有一点要注意,启动项目时,如果没有配置 MongoDB ,就会报错,原因在于 MongoAutoConfiguration Mongo DB 依赖的自启动。

启动类模板 添加 exclude 参数

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;

@SpringBootApplication(exclude = { MongoAutoConfiguration.class , MongoDataAutoConfiguration.class})
public class DemoApplication {

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

}

Spring Boot 禁用MongoDB数据库自动化配置(auto configuration)的方式

好了,安装的依赖,就到这里了,下面的依赖目前还不需要,想要了解的参考链接。

Messaging 选项

目前还不需要

I/O 选项

目前还不需要

Ops 选项

目前还不需要

Observability 选项

(可观察性应用)

目前还不需要

Tips:

Influx

将 Influx 发布到 Micrometer 微测度量指标服务。Influx 是一个开源的时序型数据库,常用于存储系统监控数据,IoT 行业的实时数据等场景。IoT 指物联网,通过各种信息传感器等设备采集信息。

可以和物联网有所交互,或许比较会有可能用到

Testing 选项

目前还不需要 / Spring Boot 版本低无法使用该依赖

Spring Cloud 选项

目前还不需要

Spring Cloud Tools 选项

目前还不需要 & Spring Boot 2.x 版本低无法使用 Open Service Broker 依赖

Spring Cloud Config 选项

目前还不需要

Spring Cloud Discovery 选项

目前还不需要

Spring Cloud Routing 选项

目前还不需要

Spring Cloud Circuit Breaker 选项

目前还不需要

Spring Cloud Messaging 选项

目前还不需要

VMware Tanzu Application Service选项

目前还不需要

Microsoft Azure 选项

目前还不需要

Google Cloud Platform 选项

目前还不需要


参考链接

1. IDEA创建Spring Boot项目

2. Intelij IDEA创建SpringBoot项目 - 配置文件的解释

3. idea中列出的spring依赖(大全)

4. Java SpringBoot框架依赖汇总

5. IDEA 创建 Spring Boot 可选依赖说明

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

初级 - 如何搭建一个Java Web项目 - 记录 的相关文章

  • 如何在 Java 中验证从 Azure AD B2C 生成的 JWT 令牌?

    我正在寻找 Java 代码示例来验证 Azure AD B2C 令牌 我们可以使用哪些依赖项 所有 JWT 令牌的 JWT 令牌验证步骤或代码是否相同还是会有所不同 我们的项目中没有使用 Spring Security 有大量的图书馆her
  • 如何修复安装 maven jar 插件依赖项时出现的错误?

    我正在将应用程序制作成 maven 中的 jar 文件 但是 当我从 Maven 中提取 jar 插件存储库并在终端中运行这三个命令时 mvn clean mvn compile mvn package 在 mvn package 中 我收
  • Java 8 中异常类型推断的一个独特功能

    在为该网站上的另一个答案编写代码时 我遇到了这个特性 static void testSneaky final Exception e new Exception sneakyThrow e no problems here nonSnea
  • 如何将 Cucumber 中的数据表转换为对象列表?

    原标题 Java 中的 Cucumber DataTables 中的标量是什么意思 From 参考 Java 提供了几种标量类型 这些包括原始数字 类型 加上布尔值和字符 每个标量 原始 类型都有一个关联的包装类或 参考类型 阅读javad
  • android.os.FileUriExposedException 在 Oreo 中引起(仅!)[重复]

    这个问题在这里已经有答案了 从 Google Play Console 中 我可以看到此异常仅发生在 Android 8 0 的设备上 android os FileUriExposedException at android os Str
  • LibGDX 闪烁

    我已经使用 LibGDX UI 设置来启动一个项目 我在实现 ApplicationListener 中唯一拥有的是 public void create setScreen new LoadingScreen this 这应该会触发 Lo
  • 外部化 Spring Security 配置?

    我有一个 Web 应用程序 可以使用 Spring Security 的几种不同配置 但是 这些差异配置都是在我的 applicationContext 配置文件中设置的 因此 为了在客户站点调整这些内容 必须在 WAR 文件内修改这些内容
  • 在Java中读取制表符分隔的文件

    我有以下代码来读取 Java 中的制表符分隔文件 while str in readLine null if str trim length 0 continue String values str split t System out p
  • 如何使用jdbc驱动编写事务?

    我想使用 jdbc 编写一个事务java 我尝试过这个简单的交易 BEGIN TRANSACTION NL GO NL UPDATE table SET col test where id 1010 NL GO NL COMMIT 我尝试过
  • 如何使 JFileChooser 仅显示具有某些特定名称 Java 的文件夹

    有什么方法可以让 JFileChooser 加载时仅显示名称为 Hello 的文件夹 这是我的代码 它显示所有文件夹以及扩展名为 py 和 java 的文件 我想添加文件夹名称限制 FileNameExtensionFilter filte
  • 检查对象是否为空

    我有一个链表 其中第一个节点包含空对象 表示firstNode data等于null firstNode nextPointer null firstNode previousPointer null 我想检查firstNode 是否为空
  • Spring portlet mvc:@Valid 似乎不起作用

    我创建了一个 bean 类并在我的控制器中使用它 但它似乎不起作用 也就是说 即使我输入了无效的年龄 result hasErrors仍然是假的 豆类 public class User Min 13 private int age pri
  • 如何将 .txt 文件的最后 5 行读入 java

    我有一个包含多个条目的文本文件 例如 hello there my name is JoeBloggs 我如何按降序阅读最后五个条目 即来自 JoeBloggs 那里 我目前有代码只能读取最后一行 public class TestLast
  • 使用mapstruct映射不同类型列表的元素

    我们正在映射一个对象 该对象具有一个对象列表 这些对象都实现了父接口 但可能具有不同的实现 但当我们映射列表时 似乎只有来自 ParentClass 的值被映射 而不是来自子类的值 但直接映射子进程就可以了 public class Par
  • jsch - 发送特殊键(CTRL-C、CTRL-D 等)

    我需要向远程终端发送特殊密钥 如何使用 JSCH 做到这一点 Thanks Walter 尝试发送两个字节 0x03 0x04 Check ASCII 表 http www bbdsoft com ascii html了解更多
  • 如何在 Spring GCP 中订阅多个 Google PubSub 项目?

    我想在 Spring Boot 应用程序中订阅多个 Google Cloud PubSub 项目 阅读完相关问题后如何使用 Spring Cloud 在一个 Spring Boot 应用程序中连接 配置两个 pubsub gcp 项目 ht
  • 如何管理一个 JInternalFrame 调用另一个 JInternalFrame?

    我有一个带有此代码的 JDesktopPane public class Menu extends JFrame implements ActionListener Creates new form Portada public stati
  • 将Json字符串映射到java中的map或hashmap字段

    假设我从服务器返回了以下 JSON 字符串 response imageInstances one id 1 url ONE two id 2 url TWO 杰克逊代码大厦 JsonProperty 我怎样才能得到HashMap对象出来了
  • 无法取消 GWT 中的重复计时器

    我正在尝试在 GWT 中安排一个重复计时器 它将每一毫秒运行一次 轮询某个事件 如果发现满意 则执行某些操作并取消计时器 我尝试这样做 final Timer t new Timer public void run if condition
  • Encog:BasicNetwork:无需预先构建数据集的在线学习

    我正在尝试使用 encog 库作为强化学习问题的函数逼近器 更准确地说 我正在尝试启动并运行多层感知器 BasicNetwork 由于我的代理将根据我选择的任何 RL 算法以某种方式探索世界 因此我无法预先构建任何 BasicNeuralD

随机推荐

  • Spark DataFrame的Join操作和withColumn、withColumnRenamed方法实践案例(Scala Demo代码)

    import org apache log4j Level Logger import org apache spark sql SparkSession import org apache spark sql functions obje
  • opencv Mat的一些基础操作

    cout lt lt value lt
  • Huawei MatePad Pro安装GMS服务详细图文教程

    一 导读 由于国际贸易环境的变化 谷歌公司自2019年起已不再为华为提供 GMS 服务 所以在此时间后华为新出的手机 平板等设备将不再集成 GMS 服务 对于国内普遍用户而言 应该影响不大或有的甚至毫无影响 但对于海外用户和国内一些特殊人群
  • matplotlib中的黑魔法:constrained和tight layout

    欢迎关注 生信修炼手册 在画图时 经常会遇到文字等图形元素超过了图片边框 显示不全的问题 比如以下代码 gt gt gt plt scatter x np random randn 10 y np random randn 10 s 40
  • electron-vue2 项目初始化

    不要使用网上或者 github 的模板初始化项目 直接上代码 安装 vuecli 脚手架 npm update vue cli 初始化 project name 项目 vue create project name 进入项目 cd proj
  • 栈(stack)栈的链式存储(链表)

    目录 栈的概念 栈的特点 火车调度案例演示 编辑 栈的结构体 数组的首地址做栈顶还是栈底比较好 栈的初始化 入栈 出栈 遍历栈中元素 链式存储 栈 栈链式存储结构体 初始化栈 案例 入栈 出栈 栈的概念 栈 stack 又名堆栈 它是一种运
  • 【计算机毕业设计】242高校图书馆设计与实现

    一 系统截图 需要演示视频可以私聊 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术 让传统数据信息的管理升级为软件存储 归纳 集中处理数据信息的管理方式 本高校图书馆就是在这样的大环境下诞生 其可以帮助管理者在短时间内处理完毕庞大的
  • react-native 中使用echarts 水波图

    echarts liquidfill min js加放到库中 并在tpl html中引用便可
  • 操作符详解上(非常详细)

    目录 二进制介绍 二进制 2进制转10进制 10进制转2进制数字 2进制转8进制和16进制 2进制转8进制 2进制转16进制 原码 反码 补码 移位操作符 左移操作符 右移操作符 位操作符 逗号表达式 二进制介绍 在初学计算机时我们常常会听
  • GO语言gin框架初步介绍

    1 下载gin框架 go get u github com gin gonic gin 当无法下载时 大概率是被墙了 需要配置环境变量 go env w GOPROXY https goproxy io direct go env w GO
  • Hello World程序 Pycharm

    由于电脑原因 进行了系统重装 所以最近把所用的软件给重新装了一遍 最近突然萌生写博客的想法 那就start 下载完成了Python3 7之后 安装Pycharm python3 7 IDLE界面 那么开启pycharm的第一个程序 开启py
  • GAN的学习记录

    最近看了一下神经网络和卷积神经网络 CNN 的基础概念 然后开始看生成对抗网络 GAN 的基础知识 之后会自己写一下代码 用GAN对数据集进行训练 一 12月的计划 1 先看懂GAN的基础理论 2 找一些代码 想办法把轴承的数据集放到GAN
  • 最近收集的9000个英语单词

    wrong adj 错误的 不道德的 不适合的 不正常的adv 错误地n 坏事 不公正的事 错误v 无礼地对待 冤枉 visualize v 想像 设想 形象化 显现 unwise a 无智的 愚笨的 不智的 unlikely adj 不太
  • 机器学习原来这么有趣 Part3: 深度学习与卷积神经网络

    最近看了Adam Geitgey的机器学习系列文章 寻思着闲着也是闲着 干脆翻译以下 顺便学习下英语啥的哈哈哈 第一次做这种事 有不到位的地方欢迎指教噢 前言 你是否已经厌倦了在查阅了无数有关深度学习的文章之后仍然不能参透其中深意的无力感
  • python PyQt5学习笔记 事件和信号 有注释 p2

    事件和信号 事件 所有的应用都是事件驱动的 事件大部分都是由用户的行为产生的 当然也有其他的事件产生方式 比如网络的连接 窗口管理器或者定时器等 调用应用的exec 方法时 应用会进入主循环 主循环会监听和分发事件 在事件模型中 有三个角色
  • opencv实现人脸识别(c++实现)

    1 说明 本文章基于opencv VS2015 实现人脸检测 2 效果 可以直接打开摄像头对人脸进行识别 这些标识框也会跟随你的人脸移动 隐私问题 我这里对图片进行了识别 3 相关类及函数介绍 opencv中文文档 3 1 cv Video
  • redux react ajax,使用React + Redux实现的组件间实时数据绑定同步

    JavaScript 语言 JaveScriptBabelCoffeeScript 确定 Browser Level React Redux Action function changeGreeting text return type C
  • [JDBC]Exception in thread “main“ java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver[我的报错日常]

    问题描述 Java项目连接MySQL数据库时报错 Exception in thread main java lang ClassNotFoundException com mysql jdbc Driver java 问题分析 找不到驱动
  • 华南农业大学数据结构oj 8580 合并链表

    include
  • 初级 - 如何搭建一个Java Web项目 - 记录

    目录 序言 一 使用 Spring Initializr 创建创建一个Java 项目基本框架的方法 1 新建项目时 安装依赖理解 Developer Tools 选项 Web 选项 其他选项具体详情请最下面的参考链接 这里就不一一列举了 只