掌握这篇SpringBoot薪资直涨40%,还怕进不了大厂?

news/2024/6/1 5:57:12 标签: java, spring, spring boot, 数据结构, 程序人生

前言:

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

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

由于文章篇幅原因,文末有答案和解析

目录

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

正文

快速入门

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

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配置?

更多解析:

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

Web开发

  • 开发RESTful接口服务及单元测试
  • 开发Web应用,使用模版引擎与静态资源
  • Web应用的统一异常处理
  • 使用Swagger2自动构建强大的API文档
  • 扩展XML请求和响应的支持
  • 使用Spring-Security进行安全控制

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

日志相关

  • SpringBoot日志管理
  • 使用AOP统一处理Web请求日志
  • 使用Log4j记录日志
  • 使用Log4j将日志写入MongoDB
  • 使用Log4j实现不同环境不同日志级别的控制
  • 动态修改日志级别

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

 

数据访问

文章资料都整理在一个文档里面了,需要的朋友可以私信"框架”获取哟

  • 用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

上述配置值均为默认值

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

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

 

定时任务与异步调用

  • Scheduled创建定时任务
  • Async实现异步调用⽤
  • Async实现异步调用:自定义线程池
  • Async实现异步调用:线程池的优雅关闭
  • Async实现异步调用:使用Future以及定义超时

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

使用消息中间件

使用RabbitMQ

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

其他功能与解析

  • 自动化配置的利弊及解决之道
  • 后台运行配置
  • 使用JavaMailSender发送邮件
  • SpringBootActuator监控端点小结
  • Actuator的Info端点输出Git与构建信息

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

最后

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


http://www.niftyadmin.cn/n/1084085.html

相关文章

springboot注释层分解图

转载于:https://www.cnblogs.com/dianzan/p/11182973.html

python I/O多路复用 使用http完成http请求

1. 使用类实现比较方便我们使用里面的参数 2. 我们使用selector,不适用select from selectors import DefaultSelector 3. I/O多路复用是指使用 回调事件循环select(poll\epoll) a. 使用selector注册,并注册回调函数 b. 使用事件循环一直循环&#xff0c…

Java锁与非阻塞算法的性能比较与分析+原子变量类的应用

15. 原子变量与非阻塞同步机制 在java.util.concurrent 包中的许多类, 比如Semaphore 和ConcurrentLinkedQueue, 都提供了比使用Synchronized 更好的性能和可伸缩性. 本部分将介绍这种性能提升的利器:原子变量和非阻塞的同步机制. 近年来很多关于并发算法的研究都聚…

方格取数

题目描述 设有N \times NNN的方格图(N \le 9)(N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字00。如下图所示(见样例): A0 0 0 0 0 0 0 00 0 13 0 0 6 0 00 0 0 0 7 0 0 00 0 0 14 0 …

【Tensorflow】tf.nn.atrous_conv2d如何实现空洞卷积?膨胀卷积

介绍关于空洞卷积的理论可以查看以下链接,这里我们不详细讲理论: 1.Long J, Shelhamer E, Darrell T, et al. Fully convolutional networks for semantic segmentation[C]. Computer Vision and Pattern Recognition, 2015. 2.Yu, Fisher, and Vladlen …

Colab 实用教程

Google Colab 是什么? Google Colab 是一个免费的云服务,现在它还支持免费的 GPU! 你可以: 提高你的 Python 语言的编码技能。使用 Keras、TensorFlow、PyTorch 和 OpenCV 等流行库开发深度学习应用程序。Colab 与其它免费的云服务…

腾讯二面:你们线程池是怎么做监控的?

大部分情况下,线程池的运行情况对于使用者来说是个黑盒 运行情况不可知,会导致 生产出现事故问题排查困难,以及线程池参数难以定义 文章围绕线程池监控展开,讨论 线程池如何监控、监控的指标以及监控数据的存储展示 01 如何监控…

WINDOWS 7 配置驱动开发环境(wdk7.60)

1. 安装VS2010,WDK7.60(GRMWDK_EN_7600_1) 2. 新建VC 控制台项目(选择为空项目) 3. 新建项目配置“driver” ,点击下拉按钮-点击(配置管理器) 输入名称(driver)点击确定就可以了&#xff0c…