合集-springboot(1)
摘要:为接口添加动态代理,不需要添加接口实现,通过定义FactoryBean的方式实现,将自定义业务在InvocationHandler接口实现即可 ImportBeanDefinitionRegistrar ImportBeanDefinitionRegistrar注入FactoryBean到Sprin
阅读全文
摘要:首先,后端项目springboot,前端项目VUE,两个都是运行在docker容器里,通过k8s进行编排的。 获取真实的客户端IP地址 一 需要在前端VUE的宿主nginx中,添加请求头规则 location /api { proxy_set_header Host $http_host; prox
阅读全文
摘要:kafka需要zookeeper的支持,我们可以使用docker-compose简单的部署一个环境,在部署时,kafka需要我们为它配置一个hostname,这个名称是每个kafka节点(broken)的名称,也是很容易被忽视的地方,通过kafka客户端工具可以看到你当前部署kafka时的hosts
阅读全文
摘要:@RequestParam中的Date类型的参数,如果前端给一个2001-01-01在后端默认是不认的,我们在后端需要对这种情况进行适配,我们可以通过@ControllerAdvice注解来拦截请求,然后对Date参数进行转换,最终实现我们的需求。 实现org.springframework.cor
阅读全文
摘要:实事上keycloak框架使用了freemaker进行页面部署,在页面上使用了vue进行了渲染,还是比较跟的上技术前沿的,只不过,keycloak没有使用spring框架,可能是因为它是redhat公司推出的产品吧。 依赖引用 <dependency> <groupId>org.springfram
阅读全文
摘要:非前后分离项目,后端页面想使用前端vue的mvvm思想,想使用iview强大的交互性,这时,可以使用thymeleaf+vue来实现,thymeleaf提供了后端页面引擎,vue支持在html页面上直接编译执行。 后端依赖 <dependency> <groupId>org.springframew
阅读全文
摘要:Disruptor Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。 Java内置队列的问题 介绍Disruptor之前,我们先来看一看常用的线程安全的内置队列有什么问题。Java的内置队列如下
阅读全文
摘要:早在很多年前,我曾经封装过关于.net unity aop的缓存[https://www.cnblogs.com/lori/p/5169420.html],面向方法的缓存,而如今,spring早已经集成了这个技术,并且得到了广大的应用。 添加依赖 <dependency> <groupId>org.
阅读全文
摘要:功能 某个rest接口是公开的,它的feign服务的接口需要授权 重写一个HttpServletRequestWrapper,实现模拟登录之后把header头进行填充 接口请求上下文里的token,通过Feign拦截器转给每个feign请求上下文 完成对feign接口的自动授权访问 # 重写Http
阅读全文
摘要:WildFly,原名 JBoss AS(JBoss Application Server) 或者 JBoss,是一套应用程序服务器,属于开源的企业级 Java 中间件软件,用于实现基于 SOA 架构的 Web 应用和服务。 WildFly 包含一组可独立运行的软件。 WildFly采用积极的方法进行
阅读全文
摘要:openfeign介绍 在微服务设计里,服务之间的调用是很正常的,通常我们使用httpClient来实现对远程资源的调用,而这种方法需要知识服务的地址,业务接口地址等,而且需要等他开发完成后你才可以去调用它,这对于集成开发来说,不是什么好事 ,产生了A业务与B业务的强依赖性,那么我们如何进行解耦呢,
阅读全文
摘要:jackson是springboot中集成的序列化方式,是默认的json序列化方式,当然你可以使用其它的序列化工具代替它,不过今天我们还是说一下它,使用jackson进行序列化一个类,然后再把它的JSON字符反序列化为它的接口对象。 现实 这种方式默认是不行的,因为接口不能被自动实例化 使用redi
阅读全文
摘要:scope授权思路 通过实现JsonSerializer抽象类的serialize方法来进行指定类型的序列化,在序列化中对持有ScopeSet注解的字段进行解析,当没有对象的scope时, 对字段不进行渲染,从而保护了字段资源。 之前的尝试MappingJackson2HttpMessageConv
阅读全文
摘要:在进行非WEB项目(Springboot)进行开发时,使用classLoader进行动态加载jar,并使用接口进行强类型转换是没有问题的,它们使用JVM下的URLClassLoader进行实现,而在基于tomcat的容器里使用它时,出现了类型无法找到的问题,原因如下: tomcat有个叫webApp
阅读全文
摘要:在使用keycloak集成springboot的过程中,对于需要授权访问的接口,它会跳到keycloak里进行登录,之前有个redirect_uri,登录成功后会跳回本客户端,而这个地址默认没有修改的地方,需要我们手动开发,这块不是很方便。 # 自定义redirect_uri 一 重写BeanPos
阅读全文
摘要:ConfigurationProperties主要用来对格式化配置信息进行整理,将多个相关的配置信息整理到一个类里,这个类可以被@ConfigurationProperties修饰,如果希望它启用,需要添加@Configuration这些注解,如果没有添加@Configuration注解,那么在启动
阅读全文
摘要:IOC,把控制反转到业务端,这句话没什么问题,在springboot框架里,对象的管理是通过spring ioc来实现的,而开发人员的开发原则里总是说“面向接口编程”,而为什么要面向接口却没几个人能说出来,今天在写一个基于redis的手动分布锁时,对这个面向接口和控制反转又有了一个体会。 底层代码更
阅读全文
摘要:annotation就是注解的意思,在我们使用的拦截器时,可以通过业务层添加的某个注解,对业务方法进行拦截,之前我们在进行统一方法拦截时使用的是execution,而注解的拦截我们使用@annotation即可,我们可以做个例子,比如搞个防止重复提交的注解,然后在拦截器里去写防止重复提交的逻辑就好了
阅读全文
摘要:对于springboot操作hbase来说,我们可以选择官方的依赖包hbase-client,但这个包的google类库很多时候会和你的项目里的google类库冲突,最后就是你的程序缺少类而无法启动,解决这个问题的方法很多,而最彻底的就是自己封装一个shade包,或者使用人家封装好的shade包,s
阅读全文
摘要:@ConditionalOnMissingBean,它是修饰bean的一个注解,主要实现的是,当你的bean被注册之后,如果而注册相同类型的bean,就不会成功,它会保证你的bean只有一个,即你的实例只有一个,当你注册多个相同的bean时,会出现异常,以此来告诉开发人员。 代码演示 @Compon
阅读全文