全部开发者教程

企业级在线办公系统

很多没做过企业级项目的同学,第一次自己动手搭建项目,显得有些吃力,而当前这门课程,为了简化技术的整合,我选用了很多开源的技术,用最少的代码,搭建出符合企业需求的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"