- 博客(180)
- 资源 (11)
- 收藏
- 关注
原创 微信支付后端
1.生成支付二维码,前端接收到map之后,有二维码的地址等信息,前端直接展示即可。前端每隔一秒就发一次http请求,直到支付成功或者支付失败。后端接收到请求后,用订单编号去问微信接口,是否支付成功。这里使用的app_id 商户号等,都是老师的。0.需要引入微信支付SDK。2.查询支付是否成功。
2024-01-25 21:10:07 254
原创 微信授权登陆
3.用户在扫码登陆之后,微信会访问第二步携带的回调接口,并携带这个一个临时参数,在controller中获得此参数后,携带secret,访问正式的三方登陆接口,会返回access_token,这个access_token就是 该微信用户,在本系统中,唯一的token,token和用户是一对一的关系,微信登陆完成。和登陆微信没关系,是用户的微信号,和我程序的程序编号(微信给的 目前用的老师的),去请求微信的接口,微信给这个用户一个token,这个token在本系统中 只和该用户对应。
2024-01-25 17:17:49 453
原创 maven多个module打包
1.打servicebase包时出现问题:找不到commonutils的jar包,但是commonutils包可以正常打,并且可以install到本地maven仓库。解决方式: servicebase 的pom.xml在引入commonutils时,指定本地的jar包依赖及地址,就可以打包。common是父组件,servicebase依赖于commonutils,如下图。因为servicebase包是纯配置包,没有启动类,所以需要在打包时设置下。
2024-01-19 17:14:16 687
转载 Linux常用命令
但这里面有个问题, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。w(write):对文件而言,具有修改文件内容的权限;r(read):对文件而言,具有读取文件内容的权限;可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。x(execute):对文件而言,具有执行文件的权限;可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容。可执行权限: 如果目录没有可执行权限, 则无法cd到目录中。
2023-12-01 11:29:24 84
原创 寝室项目踩坑
继承关系是一样的,我的userserviceimpl是userserviceimpl2的父类,使用@autowired既可以导入父类,也可以导入子类(向上转型),所以要使用@确定到底要导入父类还是子类。5.mybatis的xml查询,返回类是student,所有的result必须都在emp实体类中定义好了,如果没定义就是错的。3》double类型,直接输出运算的值 会得不到想要的,只是显示问题,实际的值是对的,如下。8.向ioc中注入类,如果没有写明注入类的名字,则默认是该类的类名的首字母小写。
2023-12-01 11:08:26 200
原创 线程基本方法
继承Thread类的线程,可以直接使用.setName()方法,设置线程名。也可以使用构造方法,需要注意java默认不继承构造方法,所以需要自己调用下父类的构造方法。但是不能使用构造方法,因为他不像上面继承Thread类的线程,他没有父类的构造方法可以调用。2. join方法 当前线程需要等待 调用join方法的线程执行完毕,当前线程才能继续执行。就像舔狗(守护线程)和女神(非守护线程),如果女神走了,那舔狗啥都不管,也走。守护线程:当其他非守护线程执行完毕,守护线程不管是否执行完毕,都会停止。
2023-11-27 22:33:06 146
原创 java线程三种方式
3.实现Callable接口 ,这种实现方式可以接收线程的返回值。2.实现Runnable接口 线程1.2交替执行。1.继承Thread类 线程1.2交替执行。
2023-11-27 21:51:28 216
原创 Hystrix断路器
如果参数是hello123 会引发异常,由消费端的fallbackError(String msg)方法捕获,注意,因为引发fallbackError(String msg)的accureError(String msg) 方法,有一个string类型的参数,所以异常处理参数也一定要有string类型的参数。会有触发延时,因为时长随机的,所以会随机超时,引发超时异常,由消费端的fallbackTimeOut()方法捕获。和controller和service。3.在服务提供者添加接口。
2023-09-20 16:38:20 67
原创 PostgerSql
如果两个查询结果有重复记录,union all会有两条相同记录,使用union关键词代替union all 会将重复记录去重。offset关键字 ,限制查询结果从哪里开始截取,下图是截取从第五条记录开始截取,截取五条。2.如果字符串和数字类型比较,会把数字类型转为字符串,再比较(如果是'2'=2.0 相等)查询排序,将排序字段为空的字段放在结果集的最后(last改为first可以放最前面)5.修改表的某个字段的名称。
2023-08-28 16:46:58 128
原创 JAVAfx11打包部署
4.执行maven 的 mvn package (不要clean,会构建失败,需要用到第三步idea运行时生成的一些文件)3.用idea运行AppLauncher类能正常显示界面,用idea启动原来的主类MainApp能正常显示界面。1.将默认打包工具删除,添加maven-shade-plugin依赖,如下。5.在targer文件中,运行那个没有original的 jar包即可。2.和继承了Application类的主类平级,新建一个启动类,如下。
2023-07-23 14:37:40 410
原创 Nacos配置中心
Nacos 可以与 Spring, Spring Boot, Spring Cloud 集成,并能代替 Spring Cloud Eureka, Spring Cloud Config。通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更。3.和application.yaml平级,设置bootstrap.properties。配置中心作用:避免重复写application.yaml文件,多个模块可以公用一个。
2023-07-05 10:55:29 313
原创 GetWay网关
4.启动后,访问nacos端口号,就可以访问到对应的微服务模块,访问。3.在application.properties中配置。2.配置启动类,添加服务发现注解。
2023-07-03 15:38:03 193
原创 微信支付前后端
点击支付按钮后,访问生成二维码的接口,跳转到支付页面,并每三秒查询一次支付状态接口,如果支付成功,就跳转到课程详情界面,如果正在支付则不处理。2》根据订单编号,生成微信支付二维码(返回二维码的链接,返回给前端,由前端处理,显示二维码)1.建表语句,一个支付日志,一个订单表。1》生成订单,返回订单的订单编号。3》查询订单支付状态。
2023-06-06 16:27:20 91
原创 springMvc常用的接收请求参数注解
用于接收json格式的请求体,有两种接收方式,一种是java实体类,会把json格式的请求体转为实体类。第二种方式是Map,会把请求体中的json格式转为map对象,如下。如果请求体中没有实体类对应的参数,则实体类中各个属性都为空。注意:不能接收form-data类型的请求,会报错,如下。
2023-02-12 10:59:24 243
原创 mytatis xml文件映射踩坑
3.4.6 版本mybatis,如果直接使用,会报错,如下,会找不到xml文件。配置xml文件地址,让mybatis自己去找,但是不好配置,我配置了不起作用。3.0.5版本,代码生成器生成的mapper和java文件在同一目录,如下。运行会报错,不在相同包下,找不到xml文件地址。将xml文件地址和java文件地址在同一个包下。谷粒学院的myabtisplus。mybatis -plus自动引入。代码生成器生成的mapper文件。如果规定只能用低版本。
2023-01-13 14:05:00 134
原创 MybatisPlus
Userserviceimpl实现类要继承自ServiceImpl1.不用写mapper.xml映射文件,让接口继承自basemapper即可。数据库中表的字段必须和user类中的字段一摸一样,数据库中的表必须叫user。userservice接口要继承自IService2.当实体类和表名不一致时,可以在实体类指定表名。第一个参数代表要使用哪个mappper映射文件。controller层调用的时候。第二个参数代表要操作的数据类型。只能进行简单的crud操作。
2022-12-29 17:20:21 1145
原创 Docker安装镜像,并运行成为容器
一个项目中,部署时需要依赖于node.js、Redis、RabbitMQ、MySQL等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突。给部署带来了极大的困难。而Docker确巧妙的解决了这些问题,Docker为了解决依赖的兼容问题的,采用了两个手段:将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包将每个应用放到一个隔离去运行,避免互相干扰。
2022-12-28 11:17:30 5360
原创 Docker安装
Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。如果之前安装过docker,可使用如下命令卸载1.2.安装docker首先需要虚拟机联网(如果是云服务器就不用了),安装yum工具更新本地数据源配置:然后输入命令:docker-ce为社区免费版本。稍等片刻,docker即可安装成功。Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议
2022-12-15 14:37:59 369
原创 RestClient 访问elasticsearch
1)引入es的RestHighLevelClient依赖:2)因为SpringBoot默认的ES版本是7.6.2,所以我们需要覆盖默认的ES版本:3)初始化RestHighLevelClient:初始化的代码如下:2.创建索引库和删除索引库存储的是新增索引库的语句新增和删除索引库操作 判断索引库是不是存在 索引库操作的基本步骤:初始化RestHighLevelClient创建XxxIndexRequest。XXX是Create、Get、Delete准备DSL( Cre
2022-12-14 00:28:37 461
原创 elasticsearch
如果根据id(索引列查询),速度会非常快,但是如果根据非索引列,并且模糊查询时,速度会非常慢,流程如下(比如id是索引列,title是要模糊查询的非索引列)1)用户搜索数据,条件是title符合"%手机%"2)逐行获取数据,比如id为1的数据3)判断数据中的title是否符合用户搜索条件4)如果符合则放入结果集,不符合则丢弃。回到步骤1。
2022-12-13 19:56:26 1149 1
原创 SpringBoot配置读取yaml文件
方式1:@value注解方式2:使用@configurationproperites注解我想获得的是school.name 和school.student @configurationproperites 的+ 类的变量名,就能获取到多级yaml属性
2022-12-04 16:36:23 606
原创 logback日志
1.在resource下新建一个logback-spring.xml 注意文件名一定要正确。2.在application.properites 添加。
2022-11-28 17:42:16 643
原创 mybatis一对多映射处理
因为是员工表和公司表联查,通过公司id关联,所以我查到一个公司id后,去员工表查这个公司id,并把员工表的查询结果放进公司类的属性中。我们要把这些结果放进一个公司对象中,公司对象中有个list属性,里面依次存放worker信息。如果只需要学生类的某个属性,那ofType="string"即可。所以就要用到collerction。公司表和人员表联查是这样的,
2022-11-19 02:43:14 526
原创 springboot打war包
SpringBoot项目打包成war包并部署到服务器上_lc11535的博客-CSDN博客_springboot项目打包war
2022-11-18 20:09:21 138
原创 jedis
jedis线程不安全,需要配合连接池使用- Jedis和Lettuce:这两个主要是提供了Redis命令对应的API,方便我们操作Redis,而SpringDataRedis又对这两种做了抽象和封装,因此我们后期会直接以SpringDataRedis来学习。- Redisson:是在Redis基础上实现了分布式的可伸缩的java数据结构,例如Map.Queue等,而且支持跨进程的同步机制:Lock.Semaphore等待,比较适合用来实现特殊的功能需求。1.引入依赖2.打开链接。
2022-11-04 02:02:46 180
原创 redies基本数据结构
nosql数据库 和sql结构的数据库1.结构化的,不设置表之间的结构2.没有主外键约束,之间没有关联3.nosql,其他的数据库不能使用redies的语法4.没有事务,不符合ACID5.redies存储在内存中,速度非常快是一个键值型的数据库,都是键值对的形式。1.用配置文件启动服务器redis-server redis.windows.conf 配置文件中设置了密码,为redis2.启动客户端1》redis-cli 链接客户端2》输入密码 auth "redis"
2022-11-03 20:02:32 758
原创 session管理(15毫秒没有操作就退出)
可以粗略的理解为认证信息,是放在session中的,可以手动新建session,设置session的过期时间,这样就实现了用户登录后,多长没有进行操作,就自动退出登录。1.需要自定义session管理器(15毫秒没有操作就退出)2.在securitymanger中绑定这个session。
2022-09-26 13:59:43 487
原创 Shiro的缓存
原因是每一个shiro标签都会执行一次权限查询,这对数据库的压力太大了,可以设置一个缓存,在用户登录之后,第一次查询出权限和 角色后,放入到缓存中,后面再需要,就从缓存中获取,不读取数据库。1.在自定义realm的doGetAuthorizationInfo方法,添加一个输出语句。在resouce目录下,创建一个xml文件,名字随便起,一般叫ehcache.xml。3.在securityManager添加自定义的缓存。发现 查询角色和权限信息执行了多次。
2022-09-26 13:56:16 1031
原创 Shiro权限管理
使用springboot的异常捕获器处理异常,会捕获所有在controller层发生的异常,返回值直接返回给用户,不需要controller层添加 对应的@RequestMapping,也不需要shiro过滤器开启对应页面的filertmap放行。只能用于前后端未分离项目。且只是不显示对应标签,用户如果在浏览器直接输入路径,还是能访问的,所以要配合第二三种使用。不同于前两种,必须要拦截一个路径,这种方法不需要拦截路径,所以可以用在service层,用户必须具有某个权。当权限不足时,跳转到如下页面。
2022-09-26 10:55:31 682
原创 shiro原理/流程(前后端不分离)
3》realm,相当于securitymanager的数据源,去数据库查询,将权限,是否登录成功等信息提供给secutirymanager。2》securitymanager负责进行校验用户名密码,权限等操作。1》subject 封装了用户名密码,用户权限,用户角色等信息。
2022-09-24 19:36:08 596
原创 JdbcRealm
2.在shiroconfig中配置 jdbcrealm,并将其作为realm绑定到SecurityManager,在查询时,shiro会自己链接数据源,查询登录和角色信息(前提是数据库的字段 表名要和规定的一致,看上面)1.在数据库中创建表,表名必须是users user_roles roles_permissions。调用不变,更换realm只是后面数据的来源变了,前面验证该怎么用还是怎么用。1.在application.yaml中配置数据库的数据源信息。同样的,登录成功不报错,不成功报错。
2022-09-24 16:57:47 683
原创 thymeleaf使用shiro标签
2 在shiroconfig.java文件中配置方言支持(就是将shrio的语法转为tymeleaf的语法)需要shiro的拦截器将该页面设置为未登录也可以访问,或者默认就是未登录可访问。4/用户的角色有某个权限就显示对应的字。thymeleaf使用shiro标签。1 设置不同的登录状态显示不同的标签。3/如果用户有某个角色就显示对应的字。3 在html中添加依赖。2.获取当前登录的用户名。
2022-09-24 16:54:27 794
spring框架手动提交事务,jdbctample
2022-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人