摘要:
我们常用到的动态特性主要是反射,在运行时查找对象属性、方法,修改作用域,通过方法名称调用方法等。在线的应用不会频繁使用反射,因为反射的性能开销较大。其实还有一种和反射一样强大的特性,但是开销却很低,它就是Javassist。 Javassist其实就是一个二方包,提供了运行时操作Java字节码的方法 阅读全文
摘要:
在项目中,当访问其他人的接口较慢或者做耗时任务时,不想程序一直卡在耗时任务上,想程序能够并行执行, 我们可以使用多线程来并行的处理任务,也可以使用spring提供的异步处理方式@Async。 Spring异步线程池的接口类,其实质是java.util.concurrent.Executor Spri 阅读全文
摘要:
项目中经常会出现需要同时连接两个数据源的情况,这里基于MyBatis来配置两个数据源,并演示如何切换不同的数据源。 通过自定义注解+AOP的方式,来简化这种数据源的切换操作。 初始化数据库 这里我们需要创建两个数据库,初始化脚本如下: 可以看到我创建了两个数据库pos和biz,同时还初始化了用户表, 阅读全文
摘要:
很多时候,我们需要在每天的某个固定时间或者每隔一段时间让应用去执行某一个任务。 为了实现这个需求,通常我们会通过多线程来实现这个功能,但是这样我们需要自己做一些比较麻烦的工作。 接下来,让我们看看如何使用Spring scheduling task简化定时任务功能的实现。 默认,springboot 阅读全文
摘要:
对于观察者模式,其实Java已经为我们提供了已有的接口和类。对于订阅者(Subscribe,观察者)Java为我们提供了一个接口,JDK源码如下: 上述仅提供一个update方法用于接收通知者的通知做出相应改变。 Java还为我们提供了一个通知者(Publish,发布者),JDK源码如下: 首先,使 阅读全文
摘要:
AOP(面向切面编程)是Spring的两大核心功能之一,功能非常强大,为解耦提供了非常优秀的解决方案。 现在就以springboot中aop的使用来了解一下如何使用aop。 写几个简单的Spring RESTful服务接口方法,实现方法前面或后面打印日志。 AOP术语定义 Spring的AOP中有几 阅读全文
摘要:
Spring Boot由众多Starter组成,随着版本的推移Starter家族成员也与日俱增。在传统Maven项目中通常将一些层、组件拆分为模块来管理, 以便相互依赖复用,在Spring Boot项目中我们则可以创建自定义Spring Boot Starter来达成该目的。 可以认为starter 阅读全文
摘要:
1、spring-boot maven打包,一般pom.xml文件里会加 这样打的jar里会多一个目录BOOT-INF。 2.引起问题,程序包不存在。 3.解决办法,如果A子模块包依赖了B子模块包,在B子模块的pom文件,加入 阅读全文