自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

异世者的博客

业余工程师

  • 博客(24)
  • 收藏
  • 关注

原创 SpringBoot项目中使用定时任务Scheduled

定时任务可以帮助我们实现定时,或者周期性完成特定任务,入订单半小时未知风自动过期等,在spring Boot中实现定时任务也很方便,不像php还得借助于系统的cron tab,springboot已经集成了自己的定时任务。开启SpringBoot定时任务功能在SpringBoot启动程序添加注解@EnableScheduling创建定时任务类名上加上@Component@Componentpublic class TaskTestJob { /** 周期执行,每秒

2021-07-27 17:55:13 1620

原创 spring Boot集成多数据源redis

配置数据源参数#redisspring.redis.mickey.host=***spring.redis.mickey.port=6379spring.redis.mickey.password=username:password#更多数据源#spring.redis.db1.host=***#spring.redis.db1.port=6379#spring.redis.db1.password=username:passwordspring.redis.pool.max-

2021-06-27 20:25:14 238

原创 springBoot集成redision分布式锁

properties配置文件设置redis参数注意username需要跟password组合在一起#redisredisson.host=***redisson.password=username:passwordredisson.port=6379redisson.minimumIdleSize=5redisson.connectionPoolSize=5配置redisionConfig@Configuration@ComponentScan@EnableCaching

2021-06-27 20:23:31 479

原创 spring boot配置多数据源后,mybatisPlus全局配置失效问题解决

通过druid配置多数据源后,发现mybatis-plus.global-config配置通通失效了不生效原因:配置多数据源后,数据源对应的SqlSessionFactoryBean是单独设置的,没有加载在properties内的config配置解决方案:重新将配置set到SqlSessionFactoryBean中配置引入 /** 全局自定义配置 */ @Bean(name = "globalConfig") @ConfigurationProperties

2021-06-24 14:20:14 4689

原创 spring boot使用druid多数据源配置

在实际项目中,尤其是复杂系统,往往需要连接多个数据源,实现多数据库读写,这时就需要配置多数据源连接,而Spring Boot整合MybatisPlus实现多数据源有两种方式:分包 和 AOP。习惯问题,这里讲的是分包方式实现,借用网上的一张图说明很清晰了:本文在已经配置好mybatisPlus和druid的前提下增加为多数据源的,不清楚可以参考前面的文章数据源配置properties.xml中设置两个数据源,假设这里的数据库分别为mickey和tianjispring.datasour

2021-06-24 14:18:15 4023

原创 jdk11集成mybatis plus警告去除

貌似是jdk版本不兼容但,JDK11集成最新版的mybatis Puls,设置防止全表更新与删除后,老是出现一个非法反射的警告,如图:WARNING: An illegal reflective access operation has occurred启动时添加一个方法就可以去除讨厌的警告@MapperScan("com.XXX.XXX.XXX.mapper")@EnableTransactionManagement@Configurationpublic class MyBat

2021-06-24 14:16:45 1988 1

原创 spring boot集成druid连接池+mybatisPlus

在后端生产环境中,每次查询都要连接一次数据库,这是不切实际的,会给数据库带来很大压力,这时使用连接池就是一个很好的方法。而mybatisPuls在springboot查询数据库中使用可以大大降低工作量,这两者结合在性能和效率上可以说很香了。Druid介绍Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过上千

2021-06-24 14:12:11 2429

原创 jumpServer开源代码搭建堡垒机

利用jumpServer开源代码搭建堡垒机官网文档:https://docs.jumpserver.org/zh/master/服务器要求:ECS服务器配置2核4G以上自动化极速部署curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.10.3/quick_start.sh | bash安装./jmsctl.sh install安装完成,打开8080端口,访问 ip:8080即可进入页面

2021-06-23 18:24:00 890 2

原创 Java 包与类的命名: util、service、tool、dao 区别

名称 用途 属性 util 通用的、与业务无关的,可以独立出来,可供其他项目使用 方法通常是public static,一般无类的属性,如果有,也是public static service 与某一个业务有关,不是通用的 方法通常是public,通常是通过接口去调用,一般有public的类属性,使用时需要用new ...

2021-06-23 18:21:06 382

原创 spring Boot实现跨域请求

什么是跨域访问说到跨域访问,必须先解释一个名词:同源策略。所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同、Host(ip)相同、端口相同的条件,否则访问将被禁止,该访问也就被称为跨域访问。虽然跨域访问被禁止之后,可以在一定程度上提高了应用的安全性,但也为开发带来了一定的麻烦。比如:我们开发一个前后端分离的易用,页面及js部署在一个主机的nginx服务中,后端接口部署在一个tomcat应用容器中,当前端向后端发起请求的时候一定是不符合同源策略的,也就无法访问。跨域实现方案

2021-06-23 18:14:58 222

原创 IDEA中配置阿里巴巴规范

为了统一规范,我们可以通过阿里巴巴开发的一个插件,安装该插件后,不符合规范的代码将会被提示出来,可以说很赞很赞:Alibaba Java Coding Guidelines 安装mac快捷键:command+,选择plugin(插件),搜索alibaba就出来了,安装重启idea立刻拥有神兵。创建class自动生成带有author的注释方法模版:/** * @author 你的名字 * @date ${DATE} ${TIME} */方法快捷注释完成如上操

2021-06-23 18:12:47 1021

原创 Linux服务器Java jdk11 安装和配置(2)

ubuntu服务器可直接用apt实现快速安装更新aptsudo apt update安装openJdk jre11sudo apt install openjdk-11-jdk-headless查看java安装路径sudo update-alternatives --config java环境变量配置执行命令sudo vi /etc/profile在文件中添加一下代码,保存,执行source /etc/profile生效#java安装目录expor

2021-06-23 18:11:19 581

原创 Linux服务器Java jdk11 安装和配置(1)

JDK11安装下载免费版本open-jdk11(64位系统)wget https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_linux-x64_bin.tar.gz解压安装包mkdir /usr/javatar -zxf openjdk-11.0.1_linux-x64_bin.tar.gz -C /usr/java环境变量配置执行命令sudo vi /etc/profile在文件中添加一下代码,

2021-06-23 18:10:42 546

原创 macOS系统java11环境安装

默认采用jdk11版本进行后端开发一、jdk下载https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_osx-x64_bin.tar.gz#将文件下载到本机后,进入下载目录,如DownLoadcd DownLoad二、解压安装包系统中默认安装位置:/Library/Java/JavaVirtualMachines/sudo tar -zxf openjdk-11.0.2_osx-x64_bin.tar.gz

2021-06-23 18:09:56 1630

原创 spring boot集成jwt安全验证

相比于session,JWT无状态性,在集群后端系统中有明显优势。什么是JWTJson Web Token(JWT):JSON网络令牌,是为了在网络应用环境间传递声明而制定的一种基于JSON的开放标准((RFC 7519)。JWT是一个轻便的安全跨平台传输格式,定义了一个紧凑的自包含的方式用于通信双方之间以 JSON 对象行使安全的传递信息。因为数字签名的存在,这些信息是可信的。JWT的组成JWT含有三个部分:头部(header) 载荷(payload)签证(signature)头

2021-06-20 16:31:10 547

原创 spring boot 2.4.5版本「全局统一处理异常封装」导致返回双重值问题解决

问题发现今天开发的时候,遇到一个奇怪的现象,spring boot统一处理全局异常的方案,竟然导致双重返回值,百思不得其解,苦苦搜寻一下午资料,网上几乎没有一个同问题案例,最终只好自己动手解决,终于在晚上干掉这个隐患。@PostMapping("/login")Result login(){ return Result.success("正常数据");}访问login接口,经过统一封装之后,正常返回值如下,一般情况下是完全没有问题的,但是当我尝试接收post过来的值时,意外发生了:

2021-06-20 16:26:48 608

原创 统一封装api接口返回值(二)

在第一篇中,我们对接口返回值做了统一封装,轻松返回结果。 @GetMapping("/fail_response") public Result fail_response() { return Result.fail("失败了"); } @GetMapping("/success_response") public Result success_response() { return Result.success("ok");

2021-05-29 17:21:33 934

原创 统一封装api接口返回值(一)

前后端分离开发模式中,后端接口基本上都是通过json格式传回前端,通过统一的返回格式封装,可以大大提高开发效率,如:{ "code": 0, "msg": "成功", "data": { "uid": "hjgfyg" }}直接上代码,两个文件即可实现设置一个枚举值,统一封装返回状态码public enum ErrorCode { /* 成功状态码 */ SUCCESS(0, "成功"), ERROR(1, "操作

2021-05-21 11:20:05 962

原创 springBoot异常统一处理

很多时候,我们需要对异常进行捕捉监控,快速获知线上业务异常情况,通常是在controller层try catch进行处理,记录日志 这种方式需要每个api单独设定一个异常捕获,造成大量重复工作,界面显示也非常不友好通过借助@RestControllerAdvice注解,可设置全局异常统一处理,并记录日志@Slf4j@RestControllerAdvicepublic class DefaultExceptionHandler { /**缺少必要的参数*/ @Exception

2021-05-17 12:54:01 1735

原创 spring boot整合swagger3.0实现api文档自动化

前言:为了分工明确,高效研发,中大型应用往往采用前后端完全分离方案,前端同学只负责前端部分开发,后端同学只负责后端开发,但开发完成之后,前端需要从后端api调取数据,联调之后才能完成最终的开发工作,这时候有个完整的接口文档,在前后端同学之间搭起一座沟通的桥梁就显得无比重要。swagger便是让接口数据可视化,自动生成文档的典型代表。什么是swagger?Swagger 是一个规范和完整的文档框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务文档,最新版为3.0。..

2021-05-12 18:33:13 1014 1

原创 uniapp如何实现多环境配置

前后端分离开发模式中,无论前后端都有可能区分不同的环境配置,开发环境(dev)、测试环境(test)、线上生产环境(prod)等,不同环境的设置,后端请求api地址等不同,那么在uniapp如何设置多环境配置呢?如图:uniapp在编译命令中就已经携带了环境标识,只需要根据该标识进行不同配置文件的引用即可直接上代码,大概原理如下:if(process.env.NODE_ENV === 'development'){ console.log('开发环境')}else{ .

2021-05-12 17:43:17 7834 1

原创 springBoot日志使用Log4j2配置

代码运行是否正常,bug定位等都得依赖于日志。除了在开发工具中打印出来之外给程序员查看之外,线上环境运行出现异常时,我们也同样需要知道查找日志。这时候就需要将日志记录到本地文件中,甚至需要将日志采集统一上传到集中云存储分析处理,进一步实时监控、异常报警等。springBoot可以集成很多日志框架,默认采用Logback,但经过调研对比,目前大多推荐Log4j2框架,性能更优。引入Log4j2依赖包测试:private final Logger logger = LoggerFa..

2021-05-06 17:54:16 965

原创 Spring Boot 怎么实现热部署?(二)

第一篇文章,介绍了使用 spring-boot-devtools 监听代码变化,自动重启项目的方式实现热部署。但本质上,还是通过重启的方式,只不过无需手动执行重启,根本上来说,还算不上真正的热部署。一、配置热交换插件接下来介绍使用IDEA的热交换(HotSwap)插件实现热部署此时,运行编译运行后,调试器左上角会有个刷新按钮,可实现手动热部署,更新代码无需重新启动项目,加载速度相比重启项目快N多倍。二、实现热部署自动化第一步已经实现手动热部署,接下来实现自动化触发部署。.

2021-05-04 10:26:38 89

原创 Spring Boot 怎么实现热部署?(一)

什么是热部署?总有小伙伴会问,为什么很多公司后端项目已开始都选择php语言,而不是直接用性能更优的java?大体有个很重要的原因,php为解释性语言,相比于java,无需编译,修改好代码之后直接可以运行,轻量化开发、高效快捷,比较适合于早期项目。那么如果选择java,采用spring boot作为开发框架,有没有什么办法可以实现,修改之后立即生效,无需手动编译重启项目就能得到最新的结果呢?答案自然是有的,那便是热部署。spring-boot-devtools工具介绍spring.

2021-05-02 18:21:27 266

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除