springboot 标签

springboot之线程池ThreadPoolTaskExecutor以及@Async异步注解

前言

最近项目当中有需求,要进行异步的处理,需要使用到线程池,很久没有使用到线程池了,一来是做JAVAweb开发基本上很少用到异步处理,二来是发现有的老项目里面,线程和线程池的使用比较混乱,有好几个线程池,有的线程池是通过spring管理的,有的是自己创建的,然后有的地方是直接创建的线程。所以这里记录下自己在项目当中如何优雅的使用线程池!避免项目当中到处都是线程池!!!

阅读全文 »

springboot之前端参数验证

对于任何一个应用而言,在客户端做的数据有效性验证主要目的是规范用户的输入,而真实的数据验证工作都是在服务后端代码当中实现的,但在实际的项目当中,也经常会因为各种各样的原因:懒得写,觉得前端验证了,后端没有太多的必要等等没有进行数据验证,其实养成数据的有效性验证是一个非常好的习惯。
1 可以避免很多数据有效性导致的BUG,防范其余开发者的基础攻击
2 在前后端进行接口联调的时候,不需要因为参数的问题沟通很久。

阅读全文 »

springboot整合MongoDB

什么是MongoDB? MongoDB是为现代应用程序开发人员和云时代构建的基于文档的通用分布式数据库 MongoDB Windows下的安装 网上安装教程一大堆,不过官方网站的教程最详细:官网windows下安装MongoDB 安装完毕之后如果不出错的话,就可以在计算机的服务里面找到一个:MongoDB Server 的服务。 MongoDB 数据库 成功安装之后,可以通过安装目录bin下的mongo.exe 连接上MongoDB 数据库。输入help 可以查看相关帮助信息。 常用操作: show dbs 查看全部数据库 use dbname 切换到指定名称数据库,如果没有就创建 show collections 获取指定数据库下的所有集合 db.createCollection("user") 在当前数据库下创建一个名为 user的集合 db.user.insert({"name":"hjljy","age":18}) 向user集合里面插入一条数据 db.user.find() 查看user集合全部数据 其他操作见help或者官方网站说明:https://docs.mong....

阅读全文 »

springboot整合dubbo2.7.x版本

什么是Dubbo? Apache Dubbo |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 是的,是 Apache Dubbo,不在是Alibaba Dubbo。原因简单来说就是Alibaba 将dubbo 移交给Apache开源社区进行维护。 详情见这两篇文章: Dubbo正式进入Apache开源孵化器 从遇见到信任 | Apache Dubbo 的毕业之旅 Dubbo2.7.x版本变化 JDK版本需求上升到1.8 包名更换:com.alibaba.dubbo - > org.apache.dubbo 注册中心一分为三,变成注册中心,元数据中心,配置中心 异步支持优化 服务治理规则优化 ...... Dubbo生态系统 此图来源于Dubbo官网 SpringBoot 整合Dubbo2.7.x 环境信息: JDK 1.8 SpringBoot 2.2.1 Dubbo 2.7.4.1 准备工具:zookeeper 官网下载地址,新版dubbo_admin 官网下....

阅读全文 »

springboot拦截器自动注入为null解决办法和具体原因分析

最近在使用springboot拦截器的过程当中,发现无法注入service,提示NPE错误 问题相关代码 springboot拦截器注册方式: @Configuration public class MyWebMvcConfigurer implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new SessionInterceptor()).excludePathPatterns("/static/").addPathPatterns("/"); } } 拦截器代码: public class SessionInterceptor implements HandlerInterceptor { @Autowired private IUserService userService; @Override public boolean preHandle(HttpServletReques....

阅读全文 »

Redis学习日志之SpringBoot2.0+整合Redis(基于Redission)

海加尔金鹰 ———— 如野草般一岁一枯荣 昨天完成了redis的简单安装Redis学习日志之Linux下的安装,今天就在项目当中简单整合使用一下 整合环境说明 JDK1.8版本 idea开发工具 springboot2.1.0版本 为什么选择Redission? springboot2.0之前的版本默认支持的是Jedis 但是在2.0后换成了Lettuce。 java连接redis最多的就是Jedis,Redisson,Lettuce这三种方式 简单说明介绍:Redis的三个框架:Jedis,Redisson,Lettuce 最后选择了Redission,因为Redisson的宗旨是促进使用者对Redis的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。 在POM当中引入对应JAR 根据Redission官方整合文档进行引入和使用: <!-- redisson --> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring....

阅读全文 »

SpringBoot学习日志之发送邮件和SMS短信

前言 账号注册的时候通常会选择短信注册或者邮箱注册,那么如何在JAVA当中实现短信的发送和邮件的发送呢? SMS服务实现 发送短信通常都是接入第三方的SMS服务,例如:阿里云SMS,百度云SMS,七牛云SMS等等。但是上面的都要钱,虽然不多。 不过腾讯云注册会送100条免费短信。所以作为一名个人开发者直接使用腾讯云的进行测试就可以了。实际开发的话,根据情况在进行选择就可以。 阿里云SMS接入指南:如何接入阿里云短信服务 (完整指南) 百度云SMS官方接入指南:简单消息服务快速入门 腾讯云SMS官方接入指南:官方文档API 这种接入第三方SDK开发的,还是要好好的去看看官方文档,根据官方文档进行操作一般不会出问题! 发送邮件实现 重要事项:一定要开启邮箱的SMTP服务!!!获得对应的授权码 重要事项:一定要开启邮箱的SMTP服务!!!获得对应的授权码 重要事项:一定要开启邮箱的SMTP服务!!!获得对应的授权码 以QQ邮箱为例:在邮箱设置--账户--POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 里面开启SMTP服务获取授权码。 普通Java项目发送邮件....

阅读全文 »

springboot整合websocket技术

什么是Webscoket 简单来说就是一个基于TCP的持久化的网络通信协议。主要作用就是:服务端可以主动推送信息给客户端,不需要客户端重复的向服务端发请求查询。 具体详细说明:https://www.zhihu.com/question/20215561 (PS:写的是真的简单易懂) springboot整合Webscoket 实现websocket有多种方式:最简单的H5, sockjs以及使用STOMP协议 开发环境 JDK版本1.8 springboot版本2.1.0 开发工具:IDEA MVAEN 基于H5的websocket实现 第一步 引入依赖 在springboot2.0版本之后,官方添加了Webscoket的依赖,因此只需要在pom当中引入 <!-- 引入websocket--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId&....

阅读全文 »

springboot整合quartz实现定时任务的动态修改,启动,暂停等操作

什么是Quartz? 一个定时任务调度框架,简单易用,功能强大可以使实现定时任务的。 在项目开发过程当中,某些定时任务,可能在运行一段时间之后,就不需要了,或者需要修改下定时任务的执行时间等等。 需要在代码当中进行修改然后重新打包发布,很麻烦。使用Quartz来实现的话不需要重新修改代码而达到要求。 springboot整合Quartz定时调度框架 开发环境 JDK版本1.8 springboot版本:2.1.0 开发工具:IDEA 实现一个简单的定时任务 第一步 引入对应的jar 在springboot2.0后官方添加了Quartz框架的依赖,所以只需要在pom文件当中引入 <!--引入quartz定时框架--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency> 第二步 创建一个定时任务 由于spr....

阅读全文 »