很多小伙伴工作多年,但是在每次开始一个新项目的时候都要重新开始搭建项目。另一个就是新手小伙伴对于项目如何从零开始搭建的还存在疑问。在这片文章中,正好一次性解决这两个问题。
这是该项目的github地址,大家可以点击下载使用,也欢迎大家start,谢谢。
首先,我们需要创建一个springboot项目。创建方式分为两种:
1. 创建springboot项目- 使用企业版idea创建
直接选择【Finish】完成。此时创建了一个空的springboot项目。
-
springboot官网创建
点击进入springboot官网
最终下载到一个zip文件,解压缩后通过idea导入
2. 添加Maven依赖打开新生成的springboot项目,可以看到pom.xml里面只有少数几个依赖:
复制代码 4.0.0 org.springframework.boot spring-boot-starter-parent2.7.2 com.example demo10.0.1-SNAPSHOT demo1 demo1 11 org.springframework.boot spring-boot-starterorg.springframework.boot spring-boot-starter-testtest org.springframework.boot spring-boot-maven-plugin
为了让项目功能相对完善,我们需要补充以下依赖:
-
基本的Spring和Spring MVC功能
复制代码org.springframework.boot spring-boot-starter-web加上这个依赖后,可以使用spring和spring mvc的功能,比如@RestController,@Service,@Autowired,@RequestMapping等等,IOC和AOP的功能都可以使用。
-
数据库引擎 mysql driver
复制代码mysql mysql-connector-java8.0.29 目前基本上使用的mysql都是8版本的,所以这里引入8版本的mysql driver;如果有需要引入其他数据库引擎的,可以到maven repository中找合适的依赖。
-
数据库链接池
复制代码com.alibaba druid1.2.11 一般像数据库链接这样的资源都是比较重的,也就是说,数据库链接创建和销毁需要消耗很多资源,并且数据库链接是经常使用的。那么对于这种情况,一般我们会将数据库链接进行池化,这也就是我们使用druid的原因。如果小伙伴想使用其他的池化工具,比如dbcp,c3p0,HikariCP等等,也是可以替换的。
-
mybatis依赖
复制代码org.mybatis.spring.boot mybatis-spring-boot-starter2.2.2 mybatis其实就是一个基于数据库driver实现数据增删查改功能,并且将操作结果更加友好传递给java应用层的工具。如果没有mybatis的话,我们也可以自己基于driver去操作数据库,但是使用体验确实不好,或者我们自己重新创造一个类似的mybatis框架。
-
分页依赖
复制代码com.github.pagehelper pagehelper-spring-boot-starter1.4.3 在业务需求上,我们的某些列表功能往往需要对数据进行分页查询。所以我们提前把这个工具引入进来,它可以在我们执行查询操作的时候,对查询功能实现自动分页,无需开发者过多干预。
-
lombok工具
复制代码org.projectlombok lomboktrue 这个工具很有用,它让我们避免了写过多的get,set方法,可以自动生成构造函数,hashcode方法,equals方法等等,这就是典型的效率工具,所以强烈推荐使用。
-
mybatis-generator插件
复制代码org.mybatis.generator mybatis-generator-maven-plugin1.4.1 true true ${basedir}/src/main/resources/mybatis/generator/generatorConfig.xml 这是一个代码生成工具,它可以帮我们生成大多数的mybatis代码,比如生成单表的增删查改功能,还有就是单表的复杂条件查询功能。所以这也是一个效率功能,可以少写很多代码。
插件添加完成后,可以在maven视图中可以看到mybatis-generator插件:
但是这个插件还不能正常运行,需要后面我们配置好后才行。
4. 配置项目我们配置了依赖和插件后,需要把一些对应的项目配置也写好,这样才能让这个项目正常运行起来。
配置文件的话,我目前选择比较好用的yml格式的application.yml,小伙伴们也可以把项目中的application.properties重命名一下,改成application.yml。
-
数据库配置
spring: # 数据库链接配置 datasource: url: jdbc:mysql://数据库ip:数据库端口/数据库名称?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver username: 数据库用户名 password: 数据库密码 # 链接池 type: com.alibaba.druid.pool.DruidDataSource druid: # 链接池初始化大小 initial-size: 8 # 最大活跃数 max-active: 16 # 最小空闲数 min-idle: 1 # 最大等待时间 max-wait: 60000 复制代码博客中不方便对外透露我自己的数据库相关ip、端口等数据,所以就用中文替代,小伙伴可以根据自己的数据库的配置作出对应的修改。
配置完毕后,我们的项目就可以正确链接数据库,并且也已经使用了链接池化的功能了。
-
mybatis配置
# mybatis配置 mybatis: check-config-location: true # mybatis框架配置文件,对mybatis的生命周期起作用 config-location: "classpath:mybatis/mybatis-config.xml" # 配置xml路径 mapper-locations: "classpath:mybatis/mapper*.properties***.xml true 复制代码最终,我们的项目基本配置完毕,最后一步,让springboot扫描所有的mybatis接口,我们需要在springboot启动类加上@MapperScan(basePackages = "mapper类所放的包名")注解;这样springboot就会把所有的Mapper接口全部扫描进去,达到我们在springboot中集成mybatis的目的了。
全部配置完毕后,我们就可以写代码开始一天的crud了,哈哈!
最后,把application.yml和pom.xml展示出来:
application.yml:
spring: # 数据库链接配置 datasource: url: jdbc:mysql://数据库ip:数据库端口/数据库名称?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver username: 数据库用户名 password: 数据库密码 # 链接池 type: com.alibaba.druid.pool.DruidDataSource druid: # 链接池初始化大小 initial-size: 8 # 最大活跃数 max-active: 16 # 最小空闲数 min-idle: 1 # 最大等待时间 max-wait: 60000 # mybatis配置 mybatis: check-config-location: true # mybatis框架配置文件,对mybatis的生命周期起作用 config-location: "classpath:mybatis/mybatis-config.xml" # 配置xml路径 mapper-locations: "classpath:mybatis/mapper*.properties***.xml true org.mybatis.generator mybatis-generator-maven-plugin1.4.1 true true ${basedir}/src/main/resources/mybatis/generator/generatorConfig.xml org.springframework.boot spring-boot-maven-pluginorg.projectlombok lombok最近面试的小伙伴很多,对此我整理了一份Java面试题手册:基础知识、JavaOOP、Java集合/泛型面试题、
Java异常面试题、Java中的IO与NIO面试题、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、
Memcached、MongoDB、Spring、SpringBoot、SpringCloud、RabbitMQ、Dubbo、MyBatis、ZooKeeper、数据结构、算法、
Elasticsearch、Kafka、微服务、Linux等等。可以分享给大家学习。【持续更新中】领取方式【999】就可以领取资料了



