看完这篇 SpringBoot 让我在阿里成功涨薪 40%,感谢
前言:
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 包下
看看您现在的功能是否这样配置,如果不是,不妨尝试改变一下,看看是否可以去掉一些 @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: mxk6072
评论