Java SDK动态代理类怎么调用到invoke()方法?

Java SDK动态代理的demo代码:import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class JDKDynamicProxyDemo { static interface Iservice { void sayHello(); } static class Service i
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

五十六.领取采购单功能编写

PurchaseController类添加相关接口,如下: /** * 领取采购单 * * @return */ @PostMapping(/received) public R received(@RequestBody List<Long> ids) { purchaseService.received(ids); return R.ok(); }PurchaseService类添加
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

五十七.采购完成功能代码编写

先准备完成采购功能所需的几个参数实体,如下:PurchaseDoneQo:import lombok.Data;import javax.validation.constraints.NotNull;import java.util.List;@Datapublic class PurchaseDoneQo { @NotNull private Long id;//采购单id private List<PurchaseItemDoneQo> items;}_productfeignservice#info(long)
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

五十八.查询SPU规格

AttrController类添加如下接口: @GetMapping(/base/listforspu/{spuId}) public R baseAttrlistforspu(@PathVariable(spuId) Long spuId) { List<ProductAttrValueEntity> entities = productAttrValueService.baseAttrlistforspu(spuId); retur
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

五十九.修改SPU规格

AttrController添加如下接口: @PostMapping(/update/{spuId}) public R updateSpuAttr(@PathVariable(spuId) Long spuId, @RequestBody List<ProductAttrValueEntity> entities) { productAttrValueService.updateSpuAttr(spu
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

简单了解一下Cglib动态代理

相比起Java SDK动态代理只能够对接口进行代理,同时返回的代理对象也只能转换到某个接口类型,Cglib动态代理能够做到直接代理类。Cglib动态代理demo代码:import org.springframework.cglib.proxy.Enhancer;import org.springframework.cglib.proxy.MethodInterceptor;import org.springframework.cglib.proxy.MethodProxy;import java
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

进程一定要分布在不同主机上,才能叫做分布式系统么?

不管多个进程是不是部署在同一台机器上,只要这多个独立的进程逻辑上组成一个系统,一起对外提供服务,就能叫做分布式系统。
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

什么样的分布式系统可以称为微服务架构?

每个服务都是由多个独立的进程组成的,这些进程可以部署在不同的物理机上,这样除非所有物理机都宕机,否则总能保证至少有一个进程能对外提供该服务。系统不再是一个巨大的单体系统,而是有多个微服务有机组成,统一对外提供服务的分布式系统。...
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

有限的存储空间,哪些类型的数据适合缓存?

一旦生成就基本不会变的数据计算代价很大的数据频繁访问的热点数据_缓存适合存储什么数据
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

Idea配置,设置当import的类数量大于多少时,采用*代替

打开idea设置,参考以上截图修改数量,这样可以防止只导入几个类时,就变成import *。_idea import 个数
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

设计微服务接口时,尽量考虑接口兼容性

设计微服务接口时,尽量考虑接口兼容性,这话怎么理解,比如有以下的一个微服务接口,一开始定义的参数只要userName以及id:void sayHello(String userName, String id);但是之后需要再加个参数age,就变成接下来这样了:void sayHello(String userName, String id, String age);这时候,由于接口被改变了,该接口所对应的微服务模块就要重新编译发布,同时有调用该接口的微服务也需要修改接口对应的参数,否则参数不对应
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

为什么说++value不是原子性的操作

demo:public class CountTest { private int value; public void add() { ++value; }}使用javac编译CountTest.Java文件javac CountTest.java 获得CountTest.class文件。再使用javap -c命令反编译CountTest.class文件javap -c CountTest.class看看它的汇编代码,如下:从汇编代码中可
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

怎么让线程运行具有有序性

多线程运行,基于CPU的时间片调度机制,线程运行的情况也会不同,优先级也不能够做到控制线程之间的运行顺序,所以如果需要让几个线程间有序的执行,需要根据运行的规则,自己定义一个线程类。代码demo:public class SortThread extends Thread { //锁 private Object lock; //要打印的字母 private String printChar; //需要打印字母的顺序所对应的取余值 private int_怎么保证线程有序
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

通过线程组实现批量停止线程

代码demo:import java.util.concurrent.TimeUnit;public class StopMuchThread { static class MyThread extends Thread { private ThreadGroup group; private String name; public MyThread(ThreadGroup group, String name) {
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

简单理解什么是非阻塞异步编程方法

非阻塞异步编程方法使用一个监听器,在使用回调的过程中,能够自动感知到调用结果,从而实现高并发的调用方法,简单的理解就是,使用了非阻塞异步编程方法,可以让我们在发起一个回调方法后,配合上一个自动监听机制,在回调方法执行完成后,主动且及时的通知调用者,这样就实现了一个非阻塞的回调方法了。...
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

在缓存设计时,需要遵循哪些原则?

在数据写入时,先写数据库,再写缓存在读取数据时,先读缓存,如果缓存不存在,再读数据库,同时将数据写入缓存中在更新数据时,先删除缓存,再更新数据,最后再把新数据写入缓存在删除数据时,先删除缓存,再删除数据库中的数据..._缓存设计原则
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

不想学存储过程和触发器了,即使面试如果要问

数据库的存储过程等编程方式是面相过程的,开发效率低,扩展性也很差,对需求无法做到快速响应。相反的,Java是面对对象编程的,就会灵活了许多,同时如果是作为Java开发人员,对Java语言的掌控能力应该会强于sql,选择自己的长处来做编程,出现bug以及需要优化时,也会容易许多。如果选择使用存储过程等来实现复杂业务,那么当出现问题时,自然会需要定位异常和错误,相比起Java完善的日志体系和监控告警机制,数据库端的这些能力就显得逊色很多,会加大开发排查的难度。因为用的是数据库的功能,那么就可能会耗费数据库.
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

map转bean,bean转map

有一个UserInfo类,如下:public class UserInfo { private int id; private String userName; public int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUserName() {
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

同一线程组下的线程,一个线程的异常会影响其他线程运行么?

测试demo:public class Test { static class MyThread extends Thread { private String number; public MyThread(ThreadGroup group, String name, String number) { super(group, name); this.number = number; }
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0

线程组内的某个线程出现异常,如何停止其他的线程运行?

首先自定义一个遇到异常可以有中断能力的线程组,如下:package com.example.springboot.codedemo;public class MyThreadGroup extends ThreadGroup { public MyThreadGroup(String name) { super(name); } @Override public void uncaughtException(Thread t, Throwable e
分类: 其他 发布时间: 08-08 13:32 阅读次数: 0