当前位置: 首页 > news >正文

【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 运行一下就可以了

相关文章:

  • 计算机网络--应用层
  • BF16相比FP16的优点
  • alist配合onlyoffice 实现在线预览
  • 达梦数据库
  • Ajax入门
  • 深度学习中2D检测
  • 小程序中用于跳转页面的5个api是什么?区别
  • Locust:用Python编写可扩展的负载测试
  • Vue 学习笔记 总结
  • 大厂真实面试题(一)
  • calibre,一个超厉害的 Python 库!
  • 重新学习STM32(2)NVIC
  • OpenGL相关库下载并解决三个入门问题
  • kettle从入门到精通 第六十四课 ETL之kettle kettle中执行SQL脚本步骤,使用需当心
  • 路由器重启真的好吗?多久重启一次更好?
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • [译]CSS 居中(Center)方法大合集
  • JS+CSS实现数字滚动
  • Linux中的硬链接与软链接
  • MYSQL 的 IF 函数
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • Python语法速览与机器学习开发环境搭建
  • React 快速上手 - 07 前端路由 react-router
  • XML已死 ?
  • 大数据与云计算学习:数据分析(二)
  • 机器学习学习笔记一
  • 如何利用MongoDB打造TOP榜小程序
  • 算法---两个栈实现一个队列
  • 小程序 setData 学问多
  • 最简单的无缝轮播
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • # dbt source dbt source freshness命令详解
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (8)STL算法之替换
  • (bean配置类的注解开发)学习Spring的第十三天
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (力扣题库)跳跃游戏II(c++)
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • .bat批处理出现中文乱码的情况
  • .NET 解决重复提交问题
  • :=
  • ??myeclipse+tomcat
  • [2023-年度总结]凡是过往,皆为序章
  • [2024-06]-[大模型]-[Ollama] 0-相关命令
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [BUUCTF]-PWN:[极客大挑战 2019]Not Bad解析
  • [C# 开发技巧]实现属于自己的截图工具
  • [c++] 什么是平凡类型,标准布局类型,POD类型,聚合体
  • [C++核心编程](四):类和对象——封装
  • [C++提高编程](三):STL初识