初级 - 如何搭建一个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项目 - 记录 的相关文章

  • 按键时关闭 ModalWindow

    我希望能够在用户按下某个键 在我的例子中是 ESC 时关闭 ModalWindow 我有一个用于按键的 Javascript 侦听器 它调用取消按钮 ID 的单击事件 jQuery modalWindowInfo closeButtonId
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • 如何获取之前的URL?

    我需要调用我的网络应用程序的 URL 例如 如果有一个从 stackoverflow com 到我的网站 foo com 的链接 我需要 Web 应用程序 托管 bean 中的 stackoverflow 链接 感谢所有帮助 谢谢 并不总是
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • java.lang.IllegalStateException:应用程序 PagerAdapter 更改了适配器的内容,而没有调用 PagerAdapter#notifyDataSetChanged android

    我正在尝试使用静态类将值传递给视图 而不是使用意图 因为我必须传递大量数据 有时我会收到此错误 但无法找出主要原因是什么 Error java lang IllegalStateException The application s Pag
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • 像 Java 这样的静态类型语言中动态方法解析背后的原因是什么

    我对 Java 中引用变量的动态 静态类型和动态方法解析的概念有点困惑 考虑 public class Types Override public boolean equals Object obj System out println i
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp

随机推荐

  • 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 选项 其他选项具体详情请最下面的参考链接 这里就不一一列举了 只