看完这篇SpringBoot让我在阿里成功涨薪40%,感谢

本文深入探讨SpringBoot的快速入门与核心功能,包括Web开发、日志管理、数据访问等关键技术点,并提供最佳实践建议。

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

前言:

SpringBoot的好处是把Java2EE的各项技术的整合变得非常的简单,但是也有它的缺点,它的封装性太强,如果你想了解SpringBoot底层的原理,你必须对SpringMvc、Spring注解等比较了解,你才能更好的去了解SpringBoot底层原理。

同时它在阿里也是一种非常重要的技术点,长期以来这个技术点,也让我辗转反侧,深思了多个可以突破的技术点,正处于迷茫之际,偶然一天朋友推荐,有幸看到了这个SpringBoot,让我备受感发。

目录

  • 快速入门
  • Web开发
  • 日志相关
  • 数据访问
  • 定时任务与异步调用
  • 使用消息中间件
  • 其他功能与解析

正文

快速入门

  1. 第一份Spring Boot项目
  2. LntelliJ中快速创建项目
  3. 最佳实践的工程结构(解析)
  4. 配置文件详解

SpringBoot框架本身并没有对工程结构有特别的要求,但是按照最佳实践的工程结构可以帮助我们减

少可能会遇见的坑,尤其是Spring包扫描机制的存在,如果您使用最佳实践的工程结构,可以免去不

少特殊的配置工作。

典型示例

  • rootpackage结构:<u style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px;"> com.example.myproject</u>

  • 应用主类 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 的项目中,增加以下依赖

<groupid style="box-sizing: border-box;">com.spring4all</groupid>

<artifactid style="box-sizing: border-box;">mongodb-plus-spring-boot-starter</artifactid>

<version style="box-sizing: border-box;">1.0.0.RELEASE</version>

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与构建信息

     

最后

还有更多资料包含Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。相信对于已经工作和遇到技术瓶颈的码友,在这里会有你需要的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值