• SpringBoot中如何优雅的使用多线程

    在 SpringBoot 应用中,经常会遇到在一个接口中,同时做事情1,事情2,事情3,如果同步执行的话,则本次接口时间取决于事情1 2 3执行时间之和;如果三件事同时执行,则本次接口时间取决于事情1 2 3执行时间最长的那个,合理使用多线程,可以大大缩短接口时间。那么在 SpringBoot 应用中如何优雅的使用多线程呢?Don't bb, show me code.快速使用...

    SpringBoot 2021年12月17日 1729 0
  • SpringBoot数据源配置原理

    在数据库访问过程中,“数据源”无疑是最重要的概念之一,它不仅可以对与数据库访问相关的各种参数进行封装和统一管理,还可以管理数据库连接池,提高数据库连接性能。目前,在市面上有很多优秀的开源数据源,例如DBCP、C3P0、Druid、HikariCP等等。在SpringBoot2.x中,则采用目前性能最佳的HikariCP作为其默认数据源。接下来,我们就来具体介绍下SpringBo...

    SpringBoot 2021年08月19日 1330 0
  • SpringBoot的核心注解

    前言springboot的核心就是注解。springboot通过各种组合注解,极大地简化了spring项目的搭建和开发。在springboot中有一些注解是其中的关键,必须掌握。@Configuration@Configuration并不是一个新的注解,在Spring3.0时已经存在了。@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或...

    SpringBoot 2021年08月12日 1263 0
  • 浅谈SpringBoot自动装配

    说在前面我们都知道Ioc和AOP是Spring的两大核心特性,而近年来随着SpringBoot的越来越“智能”化,开发人员使用SpringBoot的也越来越多,那SpringBoot帮我们做了什么,又有哪些特性呢?SpringBoot的特性创建独立的Spring应用;直接嵌入Tomcat、Jetty或Undertow等Web容器(不需要部署WAR文件);提供固化的“starte...

    SpringBoot 2021年07月22日 1532 0
  • 撸个Spring Boot中的starter,解密自动化配置

    starter背景Spring Boot目前已经变成了后端开发者必备技能之一,其中一个主要原因是Spring Boot中有个非常重要的机制(starter机制)。starter能够抛弃以前繁杂的配置,将其统一集成进starter,使用的时候只需要在maven中引入对应的starter依赖即可,Spring Boot就能自动扫描到要加载的信息并启动相应的默认配置。starter让...

    Java 2021年07月22日 1163 0
  • Spring Boot搭建 ELK,这才是正确看日志的方式

    在看大型网站的中间件技术,对于Elasticsearch有点兴趣,所以将配置流程记录了一下。为什么要用ELK“ELK实际上是三个工具,Elastricsearch + LogStash + Kibana,通过ELK,用来收集日志还有进行日志分析,最后通过可视化UI进行展示。一开始业务量比较小的时候,通过简单的SLF4J+Logger在服务器打印日志,通过grep进行简单查询,但...

    Java 2021年07月20日 1216 0
  • 从零开始搭建Kafka+SpringBoot分布式消息系统

    前言由于kafka强依赖于zookeeper,所以需先搭建好zookeeper集群。由于zookeeper是由java编写的,需运行在jvm上,所以首先应具备java环境。(ps:默认您的centos系统可联网,本教程就不教配置ip什么的了)(ps2:没有wget的先装一下:yum install wget)(ps3:人啊,就是要条理。东边放一点,西边放一点,过段时间就不知道自...

    Java 2020年12月02日 1056 0
  • springboot中定时任务执行Quartz的使用

    环境:springboot2.2.11.RELEASE2种方式执行定时任务1、通过springboot的方式2、使用Quartz实现定时任务方式一:通过springboot的定时任务1、开启定时任务功能@EnableScheduling@SpringBootApplication @EnableScheduling public class SpringBootQuartzSc...

    Java 2020年12月02日 1458 0
  • 手写一个注解实现接口单位时间内的访问频率的拦截器

    目标相信大家都听过接口安全,接口限流等这些词语,那么本篇文章就是从最基本的问题开始,带大家手写一个控制接口单位时间内访问频率的demo。好了,下面开始上代码。环境+依赖spring boot工程就不在此搭建了,小编直接贴出核心依赖 <dependency> <groupId>org.springframework.boot</groupId&...

    Java 2020年11月30日 1205 0
  • springboot项目注册为Linux系统服务并设置开机自启动

    springboot项目注册为Linux的服务并设置开机自启动一般项目生产环境都在Linux上面跑,所以今天我们来讲一下如何在Linux中将springboot项目注册为系统服务并设置开机自启动,这里我们以Centos7.6为例。1、上传我们的springboot项目的jar包如下图所示:名为demo-0.0.1-SNAPSHOT.jar 2、 启动项目java -jar de...

    Linux 2020年11月22日 4695 0
  • SpringBoot+shiro+mybatis实现权限登录

    SpringBoot+shiro+mybatis+Thymeleaf实现权限登录系统记录一下,学习shiro的一个小Demo:1.首先是底层数据库:-- ---------------------------- -- Table structure for role -- ---------------------------- CREATE TABLE `role` ( ...

    Java 2020年11月21日 1256 0
  • SpringBoot RabbitMQ消息可靠发送与接收

    环境: springboot2.2.11.RELEASE + RabbitMQ3.7.4RabbitMQ在以下情况会出现消息的丢失:交换机、队列、消息未持久化,mq重启后会出现消息丢失。生产者发出的消息第一步是投递到交换机,这一步可能因为网络原因导致失败。消息正常投递到交换机后,通过路由key路由到队列的时候出现失败。(没有符合的队列)代码层面,配置层面,考虑不全导致消息丢失。...

    Java 2020年11月19日 1644 0
  • SpringBoot开发自己的Starter

    SpringBoot starter机制SpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,需要配置各种信息的困扰。SpringBoot会自动通过class...

    Java 2020年11月19日 1486 0
  • Spring Boot 优雅地实现接口参数校验

    今天继续为大家分享在工作中如何优雅的校验接口的参数的合法性以及如何统一处理接口返回的json格式。每个字都是干货,原创不易,分享不易。validation主要是校验用户提交的数据的合法性,比如是否为空,密码是否符合规则,邮箱格式是否正确等等,校验框架比较多,用的比较多的是hibernate-validator, 也支持国际化,也可以自定义校验类型的注解,这里只是简单地演示校验框...

    Java 2020年11月18日 1389 0
  • Spring Boot如何利用AOP巧妙记录操作日志?

    本篇要点简要回顾SpringAOP的相关知识点:关键术语,通知类型,切入点表达式等等。介绍SpringBoot快速启动测试AOP,巧妙打印日志信息。简单回顾SpringAOP的相关知识点SpringAOP的相关的知识点包括源码解析,为了加深印象,这边再做一个简短的回顾:1、AOP关键术语切面(Aspect):也就是我们定义的专注于提供辅助功能的模块,比如安全管理,日志信息等。连...

    Java 2020年11月18日 1854 0
  • SpringBoot2.x集成MongoDB,强化版CRUD

    前言MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。什么是NoSQL?NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特...

    MongoDB 2020年11月17日 2143 0
  • 偷偷告诉你Springboot 优雅停止服务的几种方法

    在使用Springboot的时候,都要涉及到服务的停止和启动,当我们停止服务的时候,很多时候大家都是kill -9 直接把程序进程杀掉,这样程序不会执行优雅的关闭。而且一些没有执行完的程序就会直接退出。  我们很多时候都需要安全的将服务停止,也就是把没有处理完的工作继续处理完成。比如停止一些依赖的服务,输出一些日志,发一些信号给其他的应用系统,这个在保证系统的高可用是非常有必要...

    Java 2020年11月11日 1091 0
  • SpringBoot+Netty+Websocket整合案例(实现基本的聊天功能)

    之前使用Springboot整合了websocket,实现了一个后端向前端推送信息的基本小案例,这篇文章主要是增加了一个新的框架就是Netty,实现一个高性能的websocket服务器,并结合前端代码,实现一个基本的聊天功能。你可以根据自己的业务需求进行更改。这里假设你已经了解了Netty和websocket的相关知识,仅仅是想通过Springboot来整合他们。根据之前大家的...

    Java 2020年11月11日 1725 0
  • Method annotated with @Bean is called directly. Use dependency injection instead.

    未添加@Configuration注解,导致@Bean之间相互调用出错 因此把类名上面增加@Configuration注解即可解决。

    Java 2020年11月11日 16378 0
  • Spring Boot认证:整合Jwt

    背景Jwt全称是:json web token。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。优点简洁: 可以通过URL、POST参数或者在HTTP header发送,因为数据量小,传输速度也很快;自包含:负载中可以包含用户所需要的信息,避免了多次查询数据库;因为Token是以JSON加密的形式保存...

    Java 2020年10月30日 1311 0
  • 一个基于 Spring Boot 的在线考试系统

    今天推荐一款超级美观的在线考试系统,感兴趣可以先去预览地址看看该项目。在线 Demo预览,http://129.211.88.191 ,账户分别是admin、teacher、student,密码是admin123GitHub地址:github.com/19920625lsg/spring-boot-online-exam功能简介支持单选题、多选题、判断题支持学生(student...

    Java 2020年09月08日 7685 1
  • SpringBoot:基于JWT的token校验、单点登录等

    前言用户鉴权一直是我先前的一个问题,以前我用户接口鉴权是通过传入参数进行鉴权,只要是验证用户的地方就写token验证,虽然后面也把token验证方法提取到基类中,但是整体来说仍然不是太雅观,当时的接口如下所示. @RequestMapping(value = "like",method = RequestMethod.POST) public ResultMap u...

    Java 2020年09月03日 1453 0
  • 在 SpringBoot 中实现多数据源访问的最佳实践

    1 概述在实际业务开发中通常会在单个应用中通过 分库分表 或者 读写分离的方式来提供应用的读写性能。在具体的开发中有很多方式:通过不同的 mapper,映射到不同的 mybatis 源的方式通过继承 Spring 的 AbstractRoutingDataSource 抽象类并重写 determineCurrentLookupKey 方法来管理多个数据源的方式本文将详细介绍在 ...

    Java 2020年08月06日 3577 0
  • Spring Boot Admin 2.2.4 发布,兼容最新版本 Spring Boot

    spring boot admin 2.2.4 版本发布,本版本为 bug 修复版本 主要兼容 spring boot 2.3.x。<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</ar...

    java技术 2020年07月30日 4566 0
  • idea2020.1无法启动项目,报错Error:(3, 28) java: 程序包org.springframework.boot不存在

    之前安装的是idea 2019版本,一直没有问题。今天突然升级了一下,安装了idea2020.1最新版本,启动springboot项目的时候,竟然无法启动,而且提示的错误信息也很奇怪: Error:(3, 28) java: 程序包org.springframework.boot不存在而我检查了bootorg.springframework.boot包,明明是存在的。于是找了...

    Java 2020年04月24日 7798 0
  • (三)SpringBoot项目的日志配置

    SLF4j+Logback的组合一、SpringBoot的日志框架选用的什么技术?SpringBoot的日志框架选用的是目前市面上最流行的SLF4j+Logback的组合,SLF4j负责日志门面,Logback负责日志实现。日志门面SLF4j框架图谱视频解释上面的图谱:二、如何统一项目中所有的日志到SLF4j?项目中别的框架使用了各种日志,并非SLF4j,那么就需要统一日志,最...

    Java 2020年04月20日 1712 0
  • 绝了!Dataway让SpringBoot不在需要Controller、Service、DAO等了

    Dataway介绍Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具。使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布。一站式都通过 Dataway 提供的 UI 界面完成。UI 会以 Jar 包方式提供并集成到应用中并和应用共享同一个 http 端口,应用无需单独为 Dataway 开辟新的管理端口。这种内嵌集成...

    Java 2020年04月19日 2520 0
  • SpringBoot 处理跨域请求

    什么是跨域?由于安全原因,浏览器都遵循着同源原则,拦截了不同域名之间的请求。跨域请求,是指能让不同域名之间,可以相互发送请求。 当它请求的一个资源是从一个与它本身提供的第一个资源的不同的域名时,一个资源会发起一个跨域HTTP请求(Cross-site HTTP request)。 比如说,域名A ( http://domaina.example ) 的某 Web 应用程序中通过...

    Java 2020年04月11日 1482 0
  • SpringBoot 发送邮件和附件(实用版)

    基础知识什么是SMTP?SMTP全称为Simple Mail Transfer Protocol(简单邮件传输协议),它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP认证要求必须提供账号和密码才能登陆服务器,其设计目的在于避免用户受到垃圾邮件的侵扰。什么是IMAP?IMAP全称为Internet Message Access Protocol(...

    Java 2020年04月11日 1340 0
  • 为什么SpringBoot的 jar 可以直接运行?

    SpringBoot提供了一个插件spring-boot-maven-plugin用于把程序打包成一个可执行的jar包。在pom文件里加入这个插件即可:<build> <plugins> <plugin> <groupId>org.springframework.boot</grou...

    Java 2020年04月10日 1314 0