- 博客(18)
- 收藏
- 关注
原创 springboot中使用AOP+发布订阅实现功能模块解耦
业务场景:开发一个计算接口,接口需要从FTP中下载报表文件进行解析,返回计算数据,同时生成检测报告上传至指定ftp。此业务中包含以下几个动作:1.登录FTP下载文件到本地;2.解析文件;3.生成自检报告并上传到指定ftp,并以邮件形式通知客户;4.重置服务本地文件夹信息,防止数据混乱.5.返回解析数据结果;最初版本是线性同步作业:1—>2—>3—>4—>5,正常情况下除了接口响应速度慢,功能基本没有问题,但是在邮件发送或重置文件夹信息抛出异常时,接口无法正常返回数据;
2022-03-28 22:56:47
819
原创 springboot项目加载配置文件的顺序
使用springboot项目进行服务发布时,如果没有特殊的要求,一般可以打成jar包,配合启动脚本(.sh或.bat文件),在实际项目中,我们会把项目配置文件application.properties抽出来,放到jar包外部,这样在不改动代码的的前提下,可以对一些常规设置进行改动(例如数据库连接信息、FTP服务器登录信息、常量),更改后重启项目即可生效,十分方便,对于配置文件的位置,常用的位置,主要有以下几个地方,优先级由高到低:1.当前jar包同级文件夹config中;2.jar包同级的配置文件;3.
2021-10-29 21:36:49
199
原创 WIndows服务器中Springboot项目的发布与维护
WIndows服务器中Springboot项目的发布与维护一般情况下,我们的项目开发测试完毕,会放在Linux服务器上,但是不排除二般情况,本人有幸遇到并长期处于这种应用场景,在此记录一下解决方案,如果有更好的方案或者建议,欢迎留言 。方法一:使用批处理脚本维护在此之前,我们项目单体的服务是这样发布的,执行启动脚本即可,类似于下图,发布和维护都很方便但是新的工作场景中使用的服务器是win10,同理,我们可以使用windows的批处理脚本来启动和停止我们的springboot项目,方法如下:1.将
2021-05-28 08:00:00
343
原创 MySQL中触发器的简单应用
开发中有这样一个业务场景:用户在注册某应用后,如要使用部分高级功能,则需要进行实名认证(绑定身份证信息)。实现思路:后续的其他业务处理也会用到这个信息的判断,我们可以在用户信息表中加入是否实名的标识字段(rl_auth_flag),当用户实名认证成功(用户身份信息表usr_card_info添加数据成功)后,更新用户信息表中的认证标识字段,此处使用触发器实现,具体步骤如下:1.新建用户信息表usr_info:DROP TABLE IF EXISTS `usr_info`;CREATE TABLE `
2021-02-06 22:58:05
134
原创 @PostConstruct注解的使用
应用场景:对于一些常用且不常修改的配置信息,我们可以将其放在配置文件中,但是一些敏感信息,例如应用编号,应用名称、加密密钥或者解密密钥等等,我们可以考虑将其放在数据库中,在项目启动的时候将其加载出来,放到缓存中,业务中使用的时候从缓存中获取,这样可以保证敏感信息不被泄露,此时我们可以使用ehcache配合@PostConstruct来达到此效果;1,数据库中新建一个应用信息表busapp,插入一条数据;2.新建一个springboot项目,结构如下:3.主要涉及的配置文件(1)项目主配置文件ap
2021-01-30 16:08:10
950
原创 Nginx使用
本文记录一下如何在windows上实现Nginx的反向代理以及负载均衡(反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器),话不多说,步骤如下:1.资源准备:nginx;tomcat(两个)...
2020-12-19 21:56:10
147
1
原创 创建springboot多模块项目(下)
前言上一篇我们将多模块的骨架基本搭起来了,接下来我们来看看如何使用:我们还需要再创建3个子模块,来模拟具体的业务系统:weige-fornt(客户端)、weige-managener(管理端)、manager-mobile(移动端);创建过程与weige-domain相同,需要添加web依赖1.创建三个子系统,成功后项目结构如下:修改front、manager、mobile三个模块中pom文件的父级依赖<parent> <groupId>com</g
2020-12-08 09:43:42
126
原创 创建springboot多模块项目(上)
创建springboot多模块项目前言对于业务不复杂的项目,各层写在一起比较方便,结构也很清晰,如同这样对于业务结构稍微复杂的项目,可以考虑进行模块拆分,抽取出公共的模块,模块与模块之间通过继承和聚合,相互关联,实现代码的复用,比如我们需要给客户做一个订票系统,这个系统包括了管理端、客户端、移动端,我们就可以搭建多模块项目,将entity、mapper、service拆分成独立的模块(如果有其他的业务组件也可以单独拆开成对应的模块),这样我们的管理端、移动端和客户端都可以依赖这些模块,话不多说,让我
2020-12-07 22:15:53
182
原创 springboot整合ehcache(含高并发测试)
前言相比较Redis,Ehcache的配置和使用更为简单,它也是一个较为成熟的Java缓存框架,在一些简单的缓存应用场景下,使用ehcache完全可以搞定,就没必要只是为了使用Redis,而去搭建Redis服务,一位大牛说过:任何技术都是只是服务于业务的,不要用复杂代码来折磨自己,哈哈!当然这个视业务场景而言。1.新建一个springboot项目,引入依赖如下:<dependency&...
2020-03-20 18:43:00
582
原创 springboot整合Elasticsearch快速入门(基于docker安装ES)
安装ES1,首先安装ES,这里使用docker,拉取镜像,这里选择版本为6.7.1docker pull elasticsearch:6.7.1如果下载速度过慢,可配置一下阿里云的镜像加速,本人亲测,配置前后下载速度,是公交车和地铁的区别2.下载完成后是这样的3.接下来我们要启动它,ES默认启动需要2G的内存,这边需要设置参数限制一下:docker run -d -e ES_JAVA_...
2020-03-07 23:49:49
294
1
原创 Mycat整合mysql搭建读写分离(一主一从)
Mycat是一款优秀的数据库中间件,通过Mycat整合mysql,我们可以在主从复制的基础上搭建读写分离,如果主从复制尚未搭建好,可以参考上一篇文章MySQL搭建主从复制1.准备一台主机,101.101.101.22,2.下载mycat安装包(mycat需要java环境,若系统未安装JDK,需要先安装JDK,另外一般建议将mycat安装在/usr/local/下):wget http://d...
2020-03-03 22:28:08
651
原创 MySQL搭建主从复制(一主一从)
原材料:1.两台服务器(101.101.101.20,101.101.010.21);2.MySQL安装包(最好版本一致,若不一致相差版本不大也可以,我这里准备的是MySQL5.7.29)主服务器搭建1.我们指定20的服务器为主机,进行MySQL安装,安装过程略;2.安装好之后,编辑配置文件:3.vim /etc/my.cof,在[mysqld]节点内,添加:server-id=1...
2020-03-03 20:25:47
231
原创 一次Mysql并发问题的处理
一次并发问题的解决,记录一下场景:实际开发中遇到了这样一个问题:通过第三方的异步通知,来更新用户账户的余额,最初更新的流程是:1.添加流水;2.流水成功后更新账户。更新账户的方法,是常规造作:查询出账户对象,获取原金额,加上新增金额,之后set进对象属性,再调用updateByPrimaryKeySelective进行修改,开始没有什么问题,后期随着业务拓展,有一天发现某用户更新流水存在,但是...
2020-02-28 00:02:15
729
1
原创 nginx配置:一个tomcat下多个不同项目的访问
使用nginx来代理一个服务器下的不同项目前言:上一篇文章中,我实现了在同一tomcat下部署不同的项目,通过IP+指定端口可以访问到各自项目,那么新的需求来了:使用IP+端口太麻烦,而且这样的URL(例如作为扫码跳转地址时)在微信浏览器中,会出现这样的提示:这样用户体验不好,敏感信息也多,如何通过域名,来访问这同一服务器下的一个tomcat中部署的两个项目,而且做到访问如丝般润滑呢?是时候祭...
2020-02-21 00:10:40
861
1
原创 mysql连接
mysql连接依赖版本与数据库版本不匹配在进行springboot+shiro整合,测试demo 在连接数据库时出现了问题,我在docker上安装的mysql数据库版本是5.8,而此demo中pom文件中依赖版本为5.1.43 <!--2.mysql--> <dependency> <groupId>mysql...
2020-02-18 17:44:03
320
原创 一个tomcat下部署多个项目
一个Tomcat下部署多个项目,不同端口访问1.服务器上安装好tomcat,一般的目录是这样的2.此时需要把webapps文件夹复制一份,命名为webapps1(这里根据自己需要命名,能区分即可),准备好之后是这样的3,准备好两个外网可以正常访问的接口,以作备用,我这里是在云服务器上开放了8099,8299这两个端口。4.重点来了,配置server.xml文件,复制节点在原节点下面,进行...
2020-02-17 22:37:47
479
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人