一-基础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自带内容
序号 | 序号 | 所属部分 | 作用 |
---|---|---|---|
1 | SpringBoot DevTool | Developer Tools | 热部署插件 |
2 | Spring Data Redis (Access+Driver) | NoSQL | 操作Redis技术 |
3 | Spring Data MongoDB | NoSQL | 操作MongoDB技术 |
4 | Spring For RabbitMQ | Messaging | RabbitMQ驱动 |
5 | Java Mail Sender | I/O | 邮件发送技术 |
6 | QuartZ Scheduler | I/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的使用相对比较复杂,若想详细了解使用方法可自行查阅资料