很多没做过企业级项目的同学,第一次自己动手搭建项目,显得有些吃力,而当前这门课程,为了简化技术的整合,我选用了很多开源的技术,用最少的代码,搭建出符合企业需求的SpringBoot项目。
一、创建SpringBoot工程
利用IDEA工具,我们创建出来SpringBoot项目叫做emos-api
,这里我的JDK版本是15.0.2的。强烈建议大家不要使用JDK16,因为Lombok对JDK15以上的版本支持不够好,会导致SpringBoot项目无法启动。
我选择的SpringBoot版本是2.5.1
,还勾选了若干依赖库
项目创建完之后,大家稍等一会儿,Maven会帮我们把项目初始化好。
二、把Tomcat替换成Jetty
因为本项目中用到了WebSocket,而且Jetty本身的IO就是非阻塞式的,所以在高并发的WebSocket环境下,Jetty比Tomcat更加适合。默认情况下,SpringBoot集成了Tomcat,所以接下来我们要做的是把Tomcat替换成Jetty。
1. 引入Jetty依赖库
在pom.xml
文件中,添加Jetty依赖库
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
然后要剔除掉SpringBoot捆绑的Tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--这里是新加的内容-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
2. 配置YML文件
默认情况下,SpringBoot项目的配置文件是properties
文件,你要把这个文件改成yml
文件。
server:
jetty:
threads:
acceptors: 4
selectors: 8
port: 8090
servlet:
context-path: /emos-api
multipart:
max-request-size: 10MB
max-file-size: 2MB
三、配置数据库连接
在pom.xml文件中引入druid连接池依赖。因为Druid连接池成熟稳定,所以建议大家使用这款连接池。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.13</version>
</dependency>
在application.yml
中配置MySQL、Redis和MongoDB的连接信息。
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/emos?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
username: root
password: abc123456
initial-size: 2
max-active: 4
min-idle: 4
max-wait: 60000
test-while-idle: true
test-on-borrow: false
test-on-return: false
redis:
database: 0
host: localhost
port: 6379
password: abc123456
jedis:
pool:
max-active: 1000
max-wait: -1ms
max-idle: 16
min-idle: 8
data:
mongodb:
host: localhost
port: 27017
database: emos
authentication-database: admin
username: admin
password: abc123456
四、配置MyBatis
利用MyBatisX插件,将所有以tb_开头的数据表,生成pojo类、dao接口和XML文件。然后在pom.xml
文件中,添加配置信息,并且还要注意包名的路径。
mybatis:
mapper-locations: classpath*:mapper/*.xml
type-aliases-package: com.example.emos.wx.db.pojo
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
logging:
level:
root: info
com.example.emos.wx.db.dao: warn
pattern:
console: "%d{yyyy/MM/dd HH:mm:ss} %-5level %msg%n"