微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【项目实战】Spring Boot项目整合Jetty、MySQL、Redis和MongoDB

本专栏将为大家总结项目实战相关的知识! 点击即可关注本专栏获取更多知识!


前言

一、配置Jetty服务器

认情况下,SpringBoot集成了Tomcat服务器,但是在高并发的WebSocket环境下,Jetty比Tomcat更加适合,所以我们需要把Tomcat替换成Jetty。

1.引入Jetty依赖库

在pom.xml文件中,添加Jetty依赖库

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

除了加入Jetty的依赖,我们还需要剔除掉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文件

@H_404_229@server:
   #jetty配置
  @H_404_229@jetty:
    @H_404_229@threads:
      @H_404_229@acceptors: 4
      @H_404_229@selectors: 8
  @H_404_229@port: 8090
  @H_404_229@servlet:
    #启动时使用路径
    @H_404_229@context-path: /test
    @H_404_229@multipart:
      @H_404_229@max-request-size: 10MB
      @H_404_229@max-file-size: 2MB

二、配置MysqL、Redis和MongoDB数据库

因为这里我们使用到MysqL,那么我们就需要为MysqL增加线程池依赖。同时我们也需要为Redis增加Jedis的依赖。

Jedis是基于java语言的redis客户端,它集成了redis的命令操作,提供了连接池管理。

这里要注意Spring Boot 1.x 的版本认采用的连接池技术是 Jedis,我们就不需要显式的为项目添加依赖,但是Spring Boot 2.0 以上版本认连接池是 Lettuce,这时候我们如果采用 Jedis,需要排除 Lettuce 的依赖。

1.引入连接池依赖

因为druid连接池性能比dbcp、c3p0高很多,所以我们一般使用druid连接池。

<!-- druid连接池依赖 -->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.1.13</version>
</dependency>

<!-- spring data redis 组件 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-redis</artifactId>
	<!--排除 Lettuce 的依赖-->
	<exclusions>
		<exclusion>
			<groupId>io.lettuce</groupId>
			<artifactId>lettuce-core</artifactId>
		</exclusion>
	</exclusions>
</dependency>
		
<!-- 加入jedis 依赖 -->
<dependency>
	<groupId>redis.clients</groupId>
	<artifactId>jedis</artifactId>
</dependency>

2.引入数据库依赖

如果上面你在排除 Lettuce 的依赖的步骤中已经导入了Redis依赖,这里就不需要再次导入Redis依赖了。

<!--MysqL驱动-->
<dependency>
	<groupId>MysqL</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<scope>runtime</scope>
</dependency>

<!--mongodb数据库-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

<!--redis数据库-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

3.配置YML文件

在配置YML文件的时候特别要注意在:后面有一个空格!

@H_404_229@spring:
  #MysqL数据库
  @H_404_229@datasource:
    @H_404_229@type: com.alibaba.druid.pool.DruidDataSource
    @H_404_229@druid:
      @H_404_229@driver-class-name: com.MysqL.cj.jdbc.Driver
      @H_404_229@url: jdbc:MysqL://localhost:3306/数据库?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
      @H_404_229@username: 用户名
      @H_404_229@password: 用户密码
      #初始连接数,认0
      @H_404_229@initial-size: 2
      #最大连接数,认8
      @H_404_229@max-active: 4
      #最小闲置数
      @H_404_229@min-idle: 4
      ##获取连接的最大等待时间,单位毫秒
      @H_404_229@max-wait: 60000
      #失效连接主要通过test-while-idle保证
      #如果获取到了不可用的数据库连接,一般由应用处理异常。
      @H_404_229@test-while-idle: true
      #test-on-borrow和test-on-return在生产环境一般是不开启的,主要是性能考虑。
      @H_404_229@test-on-borrow: false
      @H_404_229@test-on-return: false

  #redis数据库
  @H_404_229@redis:
    @H_404_229@database: 0
    @H_404_229@host: localhost
    #端口号
    @H_404_229@port: 6379
    @H_404_229@password: 数据库密码
    #配置jedis
    @H_404_229@jedis:
      @H_404_229@pool:
        # 最大连接数,认8
        @H_404_229@max-active: 1000
        # 最大连接阻塞等待时间,单位毫秒,认-1ms
        @H_404_229@max-wait: -1ms
        # 最大空闲连接,认8
        @H_404_229@max-idle: 16
        # 最小空闲连接,认0
        @H_404_229@min-idle: 8
 
  #mongodb数据库
  @H_404_229@data:
    @H_404_229@mongodb:
      @H_404_229@host: localhost
      #端口号
      @H_404_229@port: 27017
      @H_404_229@database: 数据库# 登录用户所在的数据库
      @H_404_229@authentication-database: admin
      @H_404_229@username: 用户名
      @H_404_229@password: 用户密码

结语

到这里我们Spring Boot项目对Jetty、MysqL、Redis和MongoDB的整合就完成了,我们启动Spring Boot项目如果控制台没有报错就说明你成功了!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐