基础springboot项目构建与部分常用组件的介绍

本文详细介绍了如何基于SpringBoot构建一个基础项目,包括Tomcat配置、MySQL连接配置、MyBatis和Druid连接池使用、MyBatis-Plus集成、日志管理、以及SpringBoot中的异步处理、Redis、MongoDB和RabbitMQ的配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一-基础springboot项目构建

1.创建项目

一般最基本的springboot项目如下【lombok,Spring Web,MySQL Driver,MyBatis FrameWork】

在这里插入图片描述

2.基础配置文件信息

2.1tomcat的配置

server:
  tomcat:
    uri-encoding: UTF-8
    threads:
      max: 200
      min-spare: 30
    connection-timeout: 5000ms
  port: 8080
  servlet:
    context-path: /demo # 你自己的项目访问路径

2.2MySQL的配置

不使用连接池

spring:
  datasource:
    username: root
    password: 1234
    url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    driver-class-name: com.mysql.cj.jdbc.Driver

使用连接池

spring:
  datasource:
  	# 使用阿里的数据源(可以不使用)
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      # 注意修改为自己的数据库名称
      url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
      username: root
      password: 1234
      initial-size: 8 # 初始连接数量
      max-active: 16 # 最大连接数量
      min-idle: 8 # 最小连接数量
      max-wait: 60000 # 最大等待时间(ms)
      test-while-idle: true # 检测连接是否有效
      test-on-borrow: false # 从连接池中借用连接时,不进行有效性检测
      test-on-return: false # 连接归还到连接池时 不行有效性检测

若报错使用以下配置

spring:
  datasource:
    # 使用阿里的数据源(可以不使用)
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    # 注意修改为自己的数据库名称
    url: jdbc:mysql://localhost:3306/bookstore_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    username: root
    password: 1234
    druid:
      initial-size: 8 # 初始连接数量
      max-active: 16 # 最大连接数量
      min-idle: 8 # 最小连接数量
      max-wait: 60000 # 最大等待时间(ms)
      test-while-idle: true # 检测连接是否有效
      test-on-borrow: false # 从连接池中借用连接时,不进行有效性检测
      test-on-return: false # 连接归还到连接池时 不行有效性检测

对于上述配置文件中由于添加了阿里的连接池,因此需在pom文件中引入(2.3.4springboot项目举例)

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.1.13</version>
</dependency>

2.3mybatis的配置

mybatis:
  mapper-locations: classpath*:mapper/*.xml # mybatis的xml文件路径
  type-aliases-package: com.example.demo.pojo # pojo类的路径
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 日志输出
    map-underscore-to-camel-case: true # 支持驼峰命名

2.4日志输出

logging:
  level:
    root: info # 整体配置
    com.example.demo.dao : warn # 特例配置
  pattern:
    console: "%d{HH:mm:ss}  %-5level  %msg%n"

3.其他

若需要使用mybatis-plus可不选mybatis

在构建完项目后可添加如下配置(以2.7.16springboot版本举例)

    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>3.4.3</version>
    </dependency>

也可去官网查看最新版本MyBatis-Plus (baomidou.com)

mybatis-plus的配置

mybatis-plus:
  configuration:
    #在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 日志输出
  global-config:
    db-config:
      id-type: AUTO # 不使用雪花算法 使用数据库自带的策略(可去掉)

mybatis-plus分页

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 配置MP的分页插件
 */
@Configuration
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mybatisPlusInterceptor;
    }
}

4.启动类相关内容

序号标签描述
1@EnableAsync开启异步多线程
2@ServletComponentScan让filter生效
3@EnableTransactionManagement开启事务管理

二-其他springboot可扩展内容介绍

1.一些常用/好用的springboot自带内容

序号序号所属部分作用
1SpringBoot DevToolDeveloper Tools热部署插件
2Spring Data Redis (Access+Driver)NoSQL操作Redis技术
3Spring Data MongoDBNoSQL操作MongoDB技术
4Spring For RabbitMQMessagingRabbitMQ驱动
5Java Mail SenderI/O邮件发送技术
6QuartZ SchedulerI/O定时器技术

2.相关yml介绍

2.2Redis的配置

spring:
  # ....
  redis:
    database: 0 # 使用0号逻辑库
    host: localhost
    port: 6379
    password: abc123456 # 密码
    jedis:
      pool:
        max-active: 1000 # 连接上限
        max-wait: -1ms
        max-idle: 16 # 最大空闲连接数
        min-idle: 8 # 最小空闲连接数

2.3MongoDB的配置

spring:
  # ...
  data:
    mongodb:
      host: localhost
      port: 27017
      database: demo # 逻辑库名称
      authentication-database: admin # 登录认证的逻辑库
      username: admin # 用户名
      password: abc123456 # 密码

2.4RabbitMQ的配置

spring:
  # ...
  rabbitmq:
    host: localhost
    port: 5672
    username: admin
    password: admin
    virtual-host: demo # 虚拟主机

3.相关使用介绍

3.2Redis的使用

使用Redis时需要注入RedisTemplate
(推荐编写一个Redis工具类进行Redis的操作)

@Autowired
private RedisTemplate redisTemplate;
常用操作
set方法
redisTemplate.opsForValue().set(key, value);
redisTemplate.opsForValue().set(key, value, time);//设置存储时间默认为ms
redisTemplate.opsForValue().set(key, value, time, timeType);//设置存储时间 timeType设置时间单位
get方法
redisTemplate.opsForValue().get(key);//根据key获取内容 返回Object
redisTemplate.opsForValue().multiGet(keys);//批量根据keys获取内容 返回List
delete方法
redisTemplate.delete(key);//根据key删除 单个删除
redisTemplate.delete(keys);//多个删除 keys为集合

3.3MongoDB的使用

使用MongoDB时需要注入MongoTemplate(还有其他的使用方法,可以自行查询资料)

@Autowired
private MongoTemplate mongoTemplate;

相关使用可以查询相关资料

3.4RabbitMQ的使用

rabbitMQ的使用相对比较复杂,若想详细了解使用方法可自行查阅资料

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值