【java】速度搭建一個springboot項目

使用軟件:IDEA,mysql
使用框架:springboot + mybatis-plus + druid

坑點

  • 使用IDEA搭建一個springboot項目的時候,需要考慮一下IDEA版本支持的JDK版本以及maven版本。否則再構建項目,引入pom的時候就會報錯。

需要檢查的東西:

  1. 檢查使用的JDK
  2. 檢查項目設置的maven路徑,設置文檔以及使用的repo路徑。
  3. 檢查文本編輯的編碼方式

檢查編碼方式:
在這里插入圖片描述

構建過程

  1. 新建一個project
  2. 修改pom.xml
  3. 編寫yaml文件
  4. 在數據庫建表
  5. 使用MP直接生成各個包
  6. 編寫業務代碼

spring boot

spring boot 需要導入的pom

parent必須寫,然后選擇自己所需要的版本,一般去官網看就好了,目前springboot 3 與2差別比較大。
完了下面在property里面自己使用的 JDK版本。

然后最關鍵需要引入starter-web。這才是真正引入東西。但是不需要寫版本。因為maven繼承機制,在父類POM里面規定了里面所使用的版本,所以如果在parent聲明過版本,子類就只需要寫groupId以及artifactId就好了。

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</version></parent><properties><java.version>14</java.version></properties><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

spring boot 單元測試

首先需要引入的依賴

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

然后在test之下寫java類
需要注意的是使用SpringBootTest注解里面需要加上springboot入口的字節碼文件

e.g.

@SpringBootTest(classes = Main.class)
public class SimpleTest {@Autowiredprivate UserMapper userMapper;@Testpublic void testSelect() {System.out.println(("----- selectAll method test ------"));List<User> userList = userMapper.selectList(null);Assert.isTrue(5 == userList.size(), "");userList.forEach(System.out::println);}}

mysql連接 + druid

  1. 引入pom
  2. 編寫yaml

pom.xml

<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.20</version></dependency><!--        # mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.11</version></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.28</version><scope>provided</scope></dependency>

appication.yaml

spring:application:name: gamble-web			# web名稱,后面spring cloud所使用的區分服務的名稱datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/db2024?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowPublicKeyRetrieval=trueusername: rootpassword: root

如果使用mysql5的話,pom與yaml配置如下

# mysql8.0---JDBC四件套
jdbc.driverClass = com.mysql.cj.jdbc.Driver
jdbc.url= jdbc:mysql://localhost:3306/db2024?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true
jdbc.user = root
jdbc.password =123456# Maven的POM
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.11</version>
</dependency>

mybatis-plus

然后進行數據庫進行建表,建完表之后,直接用MP自動生成代碼就行。

pom.xml


<!--        mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.6</version></dependency><!--生成器--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.6</version></dependency><!--        生成引擎--><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.31</version></dependency>

編寫CodeGenerator類與主啟動類在一致位置.
里面的url username password將上面yaml配置連接數據庫的保持一致就行。
運行一下就能夠得到controller service mapper了。
后面編寫業務就行了。


public class CodeGenerator {public static void main(String[] args) {FastAutoGenerator.create("url","username", "password").globalConfig(builder -> builder.author("abanban").outputDir(Paths.get(System.getProperty("user.dir")) + "/src/main/java").commentDate("yyyy-MM-dd")).packageConfig(builder -> builder.parent("com.abanban.gamble").entity("entity").mapper("mapper").service("service").serviceImpl("service.impl").xml("mapper.xml")).strategyConfig(builder -> builder.entityBuilder().enableLombok()).templateEngine(new FreemarkerTemplateEngine()).execute();}
}

總結

pom.xml

<!--注意:打包到Linux服務器上運行時,必須打成jar包,不要war包,因為里面有Tomcat等,會沖突<packaging>jar</packaging>-->
<!--    <packaging>war</packaging>--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</version></parent><properties><java.version>14</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
<!--        mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.6</version></dependency><!--        <dependency>-->
<!--            <groupId>com.baomidou</groupId>-->
<!--            <artifactId>mybatis-plus</artifactId>-->
<!--            <version>3.5.6</version>-->
<!--        </dependency>--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.20</version></dependency><!--        # Maven的POM--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.11</version></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.28</version><scope>provided</scope></dependency>
<!--生成器--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.6</version></dependency><!--        生成引擎--><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.31</version></dependency><!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter</artifactId>-->
<!--        </dependency>--><!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-test</artifactId>-->
<!--            <scope>test</scope>-->
<!--        </dependency>--><!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-web</artifactId>-->
<!--            <scope>compile</scope>-->
<!--        </dependency>--><!--        <dependency>-->
<!--            <groupId>com.baomidou</groupId>-->
<!--            <artifactId>mybatis-plus-boot-starter</artifactId>-->
<!--            <version>3.4.2</version>-->
<!--        </dependency>--><!--        <dependency>-->
<!--            <groupId>org.projectlombok</groupId>-->
<!--            <artifactId>lombok</artifactId>-->
<!--            <version>1.18.20</version>-->
<!--        </dependency>--><!--        <dependency>-->
<!--            <groupId>com.alibaba</groupId>-->
<!--            <artifactId>fastjson</artifactId>-->
<!--            <version>1.2.76</version>-->
<!--        </dependency>--><!--        <dependency>-->
<!--            <groupId>commons-lang</groupId>-->
<!--            <artifactId>commons-lang</artifactId>-->
<!--            <version>2.6</version>-->
<!--        </dependency>--><!--        <dependency>-->
<!--            <groupId>mysql</groupId>-->
<!--            <artifactId>mysql-connector-java</artifactId>-->
<!--            <scope>runtime</scope>-->
<!--        </dependency>--><!--        <dependency>-->
<!--            <groupId>com.alibaba</groupId>-->
<!--            <artifactId>druid-spring-boot-starter</artifactId>-->
<!--            <version>1.1.23</version>-->
<!--        </dependency>--><!--        &lt;!&ndash; 郵件服務 &ndash;&gt;-->
<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-mail</artifactId>-->
<!--        </dependency>-->
<!--        &lt;!&ndash; Thymeleaf 模版,用于發送模版郵件 &ndash;&gt;-->
<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-thymeleaf</artifactId>-->
<!--        </dependency>--></dependencies><!--    <build>-->
<!--        <plugins>-->
<!--            <plugin>-->
<!--                <groupId>org.springframework.boot</groupId>-->
<!--                <artifactId>spring-boot-maven-plugin</artifactId>-->
<!--                <version>2.4.5</version>-->
<!--            </plugin>-->
<!--        </plugins>-->
<!--    </build>--><!-- 最后打包成jar包需要使用的spring插件--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

yaml


server:port: 8080# ==========applicationName + druid-mysql8 driver===================
spring:application:name: gamble-webdatasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/db2024?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowPublicKeyRetrieval=trueusername: rootpassword: root

部署

剛才pom最下面插件寫了之后,直接運行一下mvn package命令就可以打包成一個jar包了。
然后丟到服務器上面java -jar 運行一下就可以了

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/24332.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/24332.shtml
英文地址,請注明出處:http://en.pswp.cn/web/24332.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

04 uboot 編譯與調試

新手不需要詳細掌握 uboot,只需要知道它是一個什么東西即可,工作中也只是改一些參數而已。 1、uboot 是什么 Linux 系統要啟動就必須需要一個 bootloader 程序,也就說芯片上電以后先運行一段 bootloader 程序。這段 bootloader 程序會先初始化 DDR 等外設,然后將 Linux 內…

利用PowerQuery控制數據行數

PowerBI報表在開發的過程中&#xff0c;經常會遇到數據量非常龐大的情況&#xff0c;在這種情況下&#xff0c;本機連接數據源如果不進行特殊處理的話&#xff0c;那么刷新數據的時候可能會發生數據刷新時間過長、數據加載內存錯誤、開發過程中構建DAX卡頓等情況。 那么在實際開…

不確定性+電動汽車!含高比例新能源和多類型電動汽車的配電網能量管理程序代碼!

前言 能源供應的可持續性和清潔性是當今世界共同關注的議題&#xff0c;配電網與可再生能源發電相結合&#xff0c;通過多能互補和梯級利用&#xff0c;在不同時空取長補短&#xff0c;提高能源利用率&#xff0c;減少溫室氣體排放&#xff0c;是解決能源短缺和環境問題的有效…

遞歸及其使用

遞歸及其使用 1. 什么是遞歸&#xff1f;2. 遞歸解決什么問題&#xff1f;3. 遞歸的步驟4. 使用遞歸的注意事項5. 示例 1. 什么是遞歸&#xff1f; 遞歸是指在函數的定義中使用函數自身的過程。簡單來說&#xff0c;遞歸是通過將大問題分解為更小的子問題來解決問題的一種方法…

[職場] 關于薪酬需要知道的兩個知識點 #知識分享#知識分享

關于薪酬需要知道的兩個知識點 薪酬問題是面試過程中比較核心的問題&#xff0c;也是每次面試必問的。如果你進入到面試的后一階段&#xff0c;這類問題可以讓面試官或企業判斷求職者的要求是否符合企業的薪酬標準&#xff0c;并進一步判斷求職者對自身價值的認可程度。關于薪…

數據結構之快速排序算法(快排)【圖文詳解】

P. S.&#xff1a;以下代碼均在VS2019環境下測試&#xff0c;不代表所有編譯器均可通過。 P. S.&#xff1a;測試代碼均未展示頭文件stdio.h的聲明&#xff0c;使用時請自行添加。 博主主頁&#xff1a;LiUEEEEE ??????????????????? ?? …

【Java數據結構】詳解Stack與Queue(三)

&#x1f512;文章目錄&#xff1a; 1.????前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; 2. 隊列&#xff08;Queue&#xff09; 2.1隊列的概念 2.2隊列的方法 2.3隊列的使用 2.4循環隊列 循環隊列的介紹 循環隊列圖 如何區分循環隊列是滿還是空…

外掛知識庫的基本知識與內容

外掛知識庫 1.什么是rag&#xff1f; RAG,即LLM在回答問題或生成文本時&#xff0c;會先從大量文檔中檢索出相關的信息&#xff0c;然后基于這些信息生成回答或文本&#xff0c;從而提高預測質量。 2.外掛知識庫的實現思路 只用幾十萬量級的數據對大模型進行微調并不能很好…

第五十六周:文獻閱讀

目錄 摘要 Abstract 文獻閱讀&#xff1a;應用于地表水總磷濃度預測的可解釋CEEMDAN-FE-LSTM-Transformer混合模型 一、現有問題 二、提出方法 三、方法論 1、CEEMDAN&#xff08;帶自適應噪聲的完全包絡經驗模式分解&#xff09; 2、FE&#xff08;模糊熵 &#xff09…

Vue3【十】07使用ref創建基本類型的響應式數據以及ref和reactive區別

Vue3【十】07使用ref創建基本類型的響應式數據以及ref和reactive區別 ref 也可以創建對象類型的響應式數據&#xff0c;不過要使用.value ref 處理對象數據的時候&#xff0c;底層數據還是reactive格式的 reactive 重新分配一個新對象&#xff0c;會失去響應式可以使用Object.a…

自注意力機學習

自注意力機制的核心概念 1. Query, Key 和 Value Query&#xff08;查詢向量&#xff09;&#xff1a;可以看作是你當前在關注的輸入項。假設你正在閱讀一段文字&#xff0c;這就像你當前在讀的句子。 Key&#xff08;鍵向量&#xff09;&#xff1a;表示其他所有輸入項的標識…

保姆級 | MySQL的安裝配置教程(非常詳細)

一、下載Mysql 官網步驟 MySQLhttps://www.mysql.com/進入官網首頁 點擊DOWNLOADS 點擊MySQL Community (GPL) Downloads 點擊 小頁面直接進入 MySQL :: Download MySQL Installerhttps://dev.mysql.com/downloads/installer/點擊“Download”下載最新版本&#xff0c;其他…

【吊打面試官系列】MySQL 中 InnoDB 支持的四種事務隔離級別名稱,以及逐級之間的區別?

大家好&#xff0c;我是鋒哥。今天分享關于 【MySQL 中 InnoDB 支持的四種事務隔離級別名稱&#xff0c;以及逐級之間的區別&#xff1f;】面試題&#xff0c;希望對大家有幫助&#xff1b; MySQL 中 InnoDB 支持的四種事務隔離級別名稱&#xff0c;以及逐級之間的區別&#xf…

碳素鋼化學成分分析 螺紋鋼材質鑒定 鋼材維氏硬度檢測

碳素鋼的品種主要有圓鋼、扁鋼、方鋼等。經冷、熱加工后鋼材的表面不得有裂縫、結疤、夾雜、折疊和發紋等缺陷。尺寸和允許公差必須符合相應品種國家標準的要求。 具體分類、按化學成分分類 &#xff1a; 碳素鋼按化學成分&#xff08;即以含碳量&#xff09;可分為低碳鋼、中…

機器學習筆記 - stable diffusion web-ui安裝教程

一、Stable Diffusion WEB UI 屌絲勁發作了,所以本地調試了Stable Diffusion之后,就去看了一下Stable Diffusion WEB UI,網絡上各種打包套件什么的好像很火。國內的也就這個層次了,老外搞創新,國內跟著屁股后面搞搞應用層,就叫大神了。 不扯閑篇了,我們這里從git源碼直接…

問題:11單位內部人員對行政機關作出的行政處分不服,可申請行政復議. #其他#微信

問題&#xff1a;11單位內部人員對行政機關作出的行政處分不服,可申請行政復議. 參考答案如圖所示

問題:脾梗塞時,下列情況最符合的是 #職場發展#知識分享#媒體

問題&#xff1a;脾梗塞時,下列情況最符合的是 A、脾腫大 B、脾區摩擦感 C、兩者均有 D、兩者均無 參考答案如圖所示

uniapp視頻組件層級太高,解決方法使用subNvue原生子體窗口

目錄 前言 先看一下uniapp官網的原話&#xff1a; subNvue的一些參數介紹 subNvues使用方法&#xff1a; 綁定id 顯示 subNvue 彈出層 subNvue.show() 參數信息 subNvue.hide() 參數信息 在使用subNvue 原生子體窗口 遇到的一些問題 前言 nvue 兼容性 以及使用方式 控…

基于 中間件 的 數據交換平臺 的實現

一、介紹 A. 背景和目的 隨著云計算、大數據和物聯網等技術的快速發展&#xff0c;企業面臨著越來越多的數據交換和集成需求。不同系統之間的數據交換變得越來越復雜&#xff0c;而且數據量也越來越大&#xff0c;這對傳統的數據交換方式提出了更高的要求。 中間件作為一種能…

把ROS程序作為桌面圖標雙擊啟動

1 寫launch文件 把ROS程序寫成一個launch文件&#xff0c;例如 powerline_with_rviz.launch <launch><!-- Load camera parameters --><rosparam file"$(find choose_powerline)/config/camera_params.yaml" command"load"/><!-- …