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

news2024/11/15 23:22:50

前言:

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

更多解析:

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

最后

觉得喜欢就点赞哦,感谢大家的支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/31769.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jenkins项目中有中文文件出错处理

jenkins build的时候报 ... Malformed input or input contains unmappable characters... 提示是由于项目中有中文文件名,乱码处理不了 ERROR: Build step failed with exception java.nio.file.InvalidPathException: Malformed input or input contains unmappab…

Java学习之继承二细节(学习重点)

目录 继承细节 第一条 父类代码 子类代码 测试代码 运行结果 第二条 第三条 第三条-1 第三条-2 第四条 一、调用父类Base的无参构造器 二、一个参数的构造器 三、两个参数的构造器 第五条 第六条 第七条 第八条 第九条 第十条 继承细节 第一条 子类继承了父类所有的…

用DIV+CSS技术设计的美食主题网站(web前端网页制作课作业)美食餐饮网站设计与实现(HTML+CSS+JavaScript)

👨‍🎓静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计👩‍🎓,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等,用的最多的还是DW,当然不同软件写出的…

ImmunoChemistry艾美捷总细胞毒性试验试剂盒方案

ImmunoChemistry艾美捷总细胞毒性试验试剂盒是一种单管三色试验,用于定量评估细胞凋亡和坏死引起的细胞介导的细胞溶解活性。该试验采用绿色荧光细胞染色剂CFSE标记靶细胞,红色活/死活力染料7-AAD用于识别细胞毒性试验样品中存在的死细胞,橙红…

【前端验证】fork-join_none线程立即执行的一次代码优化记录

我们的目标是┏ (゜ω゜)☞芯片前端全栈工程师~喵! 前言 【system verilog】fork-join_none与循环语句共同使用的行为探究 很早之前写过关于fork-join_none的探究文章,最近被人指出了一些错误: 我仔细理解了下他的意思,觉得确实…

电容笔和触控笔有什么区别?平价好用的电容笔排行榜

从导电材料、作用机理、用途等方面来看,电容笔与一般的触摸笔有很大区别。电容笔的笔头设计为中等大小,笔头材料通常更耐磨损。随着技术的发展,人们的生活水平越来越高,人们都想要一支更好用的电容笔,不管是图纸绘画&a…

Java真的不难(五十一)SpringBoot使用EasyExcel实现导出

EasyExcel: 大家好久不见! 一、什么是EasyExcel? EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。 github地址: https://github.com/alibaba/easyexcel 官方文档地址&#xf…

MAC安装redis的简单方法

使用mac的包管理工具brew一行命令搞定安装。若未安装brew,命令行先输入以下命令安装brew。 /bin/bash -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" brew install redis6.2 brew services restart redis6.2 一、安装…

三台服务器使用docker搭建redis一主二从三哨兵,概念-搭建-整合springboot【保姆级】

一、前言 redis在我们企业级开发中是很常见的,但是单个redis不能保证我们的稳定使用,所以我们要建立一个集群。 redis有两种高可用的方案: High availability with Redis Sentinel(哨兵)Scaling with Redis Cluster&…

FT 在图像处理中的应用

接上文:离散傅里叶变换(DFT) 四、二维傅里叶变换 在此之前,文章都是对 FT 的理论部分的科普推导,距离我们的实际应用还有一定距离 虽然之前提到函数时域时,都是默认我们以时间 t 作为自变量,但事实上自变量也可以是其…

小册上新 | 掌握 SpringBoot 场景整合,成为开发多面手!

只会 SpringBoot 还远远不够 SpringBoot 的强大不言而喻,其底层 SpringFramework 强大的 IOC 容器和 AOP 机制,加之 SpringBoot 的自动装配,使得 SpringBoot 成为当今 JavaEE 开发中最受欢迎,以及使用范围极其广泛的基本技术。 …

[附源码]计算机毕业设计JAVA领导干部听课评课管理系统

[附源码]计算机毕业设计JAVA领导干部听课评课管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM…

设计模式之美——DRY原则 和 迪米特法则

DRY原则 Don’t Repeat Yourself。中文直译为:不要重复自己。即,不要写重复的代码。 我们主要讲三种典型的代码重复情况:实现逻辑重复、功能语义重复和代码执行重复。 实现逻辑重复 public class UserAuthenticator {public void authenti…

Web(二)html5基础-表格高级样式的设置

第1关_表格高级样式设置相关概念 第2关_设置表格的外边框样式 编程要求 根据提示,在右侧编辑器补充代码,在右侧编辑器中的Begin - End区域内补充代码,具体要求是: 1.添加table标签及属性,使得表格的宽度为100&#x…

CAS号:81075-03-8,H2N-AYA-OH

血管紧张素-1转换酶抑制剂(IC₅₀14.2 μM)Ala-Tyr已作为酪氨酸源应用于大鼠静脉营养。二肽AY是肝衰竭患者肠外营养的有效Tyr来源。 Inhibitor of angiotensin-1 converting enzyme (ACE), IC₅₀ 14.2 μM. Ala-Tyr has been used as a tyrosine source in intravenous nutrit…

设置ZIP文件打开密码的两种方法

使用WinRAR缩包ZIP文件时,有两种方式来设置打开密码,我们可以根据不同需要选择不同的方法。 方法一: 在压缩文件的时候同时设置打开密码,只设置当下压缩的ZIP文件。 首先,鼠标选择需要压缩的文件,然后点…

推荐一个基于Springboot + Vue 开发的前后端分离博客

基于Springboot Vue 开发的前后端分离博客 博客介绍 本博客是参考 [风丶宇] 大佬的博客更新而成,感谢大佬提供的页面,然后定制新增部分功能,是个非常值得新手入门学习的Java规范化编程案例! 在线地址 项目链接: h…

【附源码】计算机毕业设计JAVA忆居民宿管理

【附源码】计算机毕业设计JAVA忆居民宿管理 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

Yolov4 训练数据常见的问题

1.Failed to load module"canberra-gtk-module" 解决办法:安装对应的module sudo apt-get install libcanberra-gtk-module 2.Killed 注意:造成killed问题的可能性比较多,这里我只记录我是如何解决的 。 解决: 首先是…

膜拜,华为内部都在强推的783页大数据处理系统:Hadoop源代码pdf

前言 都说程序员工资高、待遇好, 2022 金九银十到了,你的小目标是 30K、40K,还是 16薪的 20K?作为一名 Java 开发工程师,当能力可以满足公司业务需求时,拿到超预期的 Offer 并不算难。然而,提升…