读了这篇 SpringBoot 底层原理让我在阿里成功涨薪 40%,感谢
前言:
SpringBoot 的好处是把 Java2EE 的各项技术的整合变得非常的简单,但是也有它的缺点,它的封装性太强,如果你想了解 SpringBoot 底层的原理,你必须对 SpringMvc、Spring 注解等比较了解,你才能更好的去了解 SpringBoot 底层原理。
同时它在阿里也是一种非常重要的技术点,长期以来这个技术点,也让我辗转反侧,深思了多个可以突破的技术点,正处于迷茫之际,偶然一天朋友推荐,有幸看到了这个 SpringBoot,让我备受感发!在此小编分享给大家。
由于文章篇幅原因,有需要的小伙伴仅需添加小助理 vx:XIaonan00000621 即可获取免费下载方式
目录
快速入门
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 包下
看看您现在的功能是否这样配置,如果不是,不妨尝试改变一下,看看是否可以去掉一些 @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 与构建信息
最后
有需要的小伙伴仅需添加小助理 vx:XIaonan00000621 即可获取免费下载方式!
还有更多资料包含 Spring,MyBatis,Netty 源码分析,高并发、高性能、分布式、微服务架构的原理,JVM 性能优化这些成为架构师必备的知识体系。相信对于已经工作和遇到技术瓶颈的码友,在这里会有你需要的内容。
评论