前言:
SpringBoot的好处是把Java2EE的各项技术的整合变得非常的简单,但是也有它的缺点,它的封装性太强,如果你想了解SpringBoot底层的原理,你必须对SpringMvc、Spring注解等比较了解,你才能更好的去了解SpringBoot底层原理。
同时它在阿里也是一种非常重要的技术点,长期以来这个技术点,也让我辗转反侧,深思了多个可以突破的技术点,正处于迷茫之际,偶然一天朋友推荐,有幸看到了这个SpringBoot,让我备受感发!在此小编分享给大家。
由于文章篇幅原因,文末有答案和解析
目录
-
快速入门
-
Web开发
-
日志相关
-
数据访问
-
定时任务与异步调用
-
使用消息中间件
-
其他功能与解析
正文
快速入门
-
第一份Spring Boot项目
-
LntelliJ中快速创建项目
-
最佳实践的工程结构(解析)
-
配置文件详解
SpringBoot框架本身并没有对工程结构有特别的要求,但是按照最佳实践的工程结构可以帮助我们减
少可能会遇见的坑,尤其是Spring包扫描机制的存在,如果您使用最佳实践的工程结构,可以免去不
少特殊的配置工作。
典型示例
-
rootpackage结构: com.example.myproject
-
应用主类 Application.java 置于rootpackage下,通常我们会在应用主类中做一些框架配置扫
描等配置,我们放在rootpackage下可以帮助程序减少手工配置来加载到我们希望被Spring加载的内容
-
实体(Entity)与数据访问层(Repository)置于 com.example.myproject.domain 包下
-
逻辑层(Service)置于 com.example.myproject.service 包下
-
Web层(web)置于 com.example.myproject.web 包下
com
+- example
+- myproject
+- Application.java
|
+- domain
| +- Customer.java
| +- CustomerRepository.java
|
+- service
| +- CustomerService.java
|
+- web
| +- CustomerController.java
|
看看您现在的功能是否这样配置,如果不是,不妨尝试改变一下,看看是否可以去掉一些@Configuration配置?
更多解析:
Web开发
-
开发RESTful接口服务及单元测试
-
开发Web应用,使用模版引擎与静态资源
-
Web应用的统一异常处理
-
使用Swagger2自动构建强大的API文档
-
扩展XML请求和响应的支持
-
使用Spring-Security进行安全控制
日志相关
-
SpringBoot日志管理
-
使用AOP统一处理Web请求日志
-
使用Log4j记录日志
-
使用Log4j将日志写入MongoDB
-
使用Log4j实现不同环境不同日志级别的控制
-
动态修改日志级别
数据访问
资料已整理成文档,需要获取的小伙伴可以直接转发+关注后私信(学习)即可获取哦
-
用JdbcTemplate访问数据库
-
使用spring-data-jpa实现简单优雅的数据库访问
-
多数据源的配置与使用⽤
-
使用MyBatis访问数据库
-
使用MyBatis注解配置详解
-
缓存支持(一)注解配置与EhCache使用
-
缓存支持(二)使用Redis做集中式缓存
-
访问Redis
-
访问MongoDB
-
增强对MongoDB的配置(连接池等)【解析】
-
使用LDAP来统一管理用户信息
-
SpringBoot中使用事务
-
使用Flyway管理数据库版本
spring-boot-starter-mongodb-plus
几周之前,我就在spring4all的github上创建了这个项目,主要就是想扩展一下官方springbootstarter
对mongodb的支持,提供更多配置属性,比如:连接数的配置等。
先来看看如果使用这个扩展,是否要比之前那样自己定制要方便的多:
如何使用
1. 在使用了spring-boot-starter-data-mongodb 的项目中,增加以下依赖
com.spring4all
mongodb-plus-spring-boot-starter
1.0.0.RELEASE
1. 在应用主类上增加 @EnableMongoPlus 注解,比如:
@EnableMongoPlus
@SpringBootApplication
public class Application {
public static void main(String[]args) {
SpringApplication.run(Application.class,args);
}
}
可用配置参数
可用配置参数如下
spring.data.mongodb.option.min-connection-per-host=0
spring.data.mongodb.option.max-connection-per-host=100
spring.data.mongodb.option.threads-allowed-to-block-for-connection-multiplier=5
spring.data.mongodb.option.server-selection-timeout=30000
spring.data.mongodb.option.max-wait-time=120000
spring.data.mongodb.option.max-connection-idle-time=0
spring.data.mongodb.option.max-connection-life-time=0
spring.data.mongodb.option.connect-timeout=10000
spring.data.mongodb.option.socket-timeout=0
spring.data.mongodb.option.socket-keep-alive=false
spring.data.mongodb.option.ssl-enabled=false
spring.data.mongodb.option.ssl-invalid-host-name-allowed=false
spring.data.mongodb.option.always-use-m-beans=false
spring.data.mongodb.option.heartbeat-socket-timeout=20000
spring.data.mongodb.option.heartbeat-connect-timeout=20000
spring.data.mongodb.option.min-heartbeat-frequency=500
spring.data.mongodb.option.heartbeat-frequency=10000
spring.data.mongodb.option.local-threshold=15
上述配置值均为默认值
定时任务与异步调用
-
Scheduled创建定时任务
-
Async实现异步调用⽤
-
Async实现异步调用:自定义线程池
-
Async实现异步调用:线程池的优雅关闭
-
Async实现异步调用:使用Future以及定义超时
使用消息中间件
使用RabbitMQ
其他功能与解析
-
自动化配置的利弊及解决之道
-
后台运行配置
-
使用JavaMailSender发送邮件
-
SpringBootActuator监控端点小结
-
Actuator的Info端点输出Git与构建信息