Spring 中手动注入 @Autowired 字段
自己 new 出来的对象如何让 Spring 帮我们注入其中依赖的对象?可以使用以下方法:
1 | Bean bean = new Bean(); |
自己 new 出来的对象如何让 Spring 帮我们注入其中依赖的对象?可以使用以下方法:
1 | Bean bean = new Bean(); |
@Mapping
是 MapStruct
的核心注解,用于定义不同名字的属性之间的映射。
JavaDoc:
Configures the mapping of one bean attribute.
配置一个 bean 属性的映射
@BeanMapping
用于控制整个映射方法。你可以通过设置 @BeanMapping
的 NullValueCheckStrategy
使整个方法都生效。
JavaDoc:
Configures the mapping between two bean types
配置两个 bean 类型的映射
Bean 属性映射中如何满足以下场景:
MapStruct
是一个 Bean 映射工具,通过配置的注解,可以生成 Java 代码进行 Bean 映射。
由于是通过两个 Bean 的信息生成 Java 代码,并通过调用属性的 Getter/Setter 方法来实现的功能,性能上比其它通过反射实现的 Bean 映射工具要高很多,相当于自己手写代码复制对象。
本文主要介绍 MapStruct
的几种对象映射场景,方便使用时选用。
Kafka 中将 Topic 分为 partition,消费者从 partition 中消费消息。消息是怎么确定发住哪个 partition 呢?其实默认有两种分区选择策略:
工作流开发中经常有一种回退的需求,审批回退、驳回、撤回等都需要。
在 Activiti 中流程底层没开放对应的接口,而在 Flowable 中已经提供了支持节点跳转的功能。同时我们也可以像在 Activiti 中通过实现自己的 Command 来实现任意节点跳转的需求。
下面我们先介绍一下 Flowable 提供的内置跳转功能,最后我们再手动实现任务跳转的 Command。
Java 程序员最喜欢的就是造轮子了,后端开发中时常要自己造一些轮子,一个工具包、封装一些开源组件、功能定制化等等,太常见了。
在 Spring 的自造轮子最常见的莫过于设计个注解,然后扫描到后在 BeanPostProcessor
中处理该注解对象,并根据注解组装一个新的对象然后注册到 Spring 中。
场景如《Quartz 动态调度 Job》所述那样,现在对文中 @ScheduledJob
注解的实现做详细说明。
如果需要要启动后向 Spring 容器个注册一个动态创建的对象,可以通过以下几个方式实现:
数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。事务的使用是数据库管理系统区别文件系统的重要特征之一。
一次性删除数据库中数据最快的方法就是直接 Drop 掉 DB,重新建一个,但是在 Drop 时可能会报占用的错误。
1 | There is 1 other session using the database. |
出现上诉错误时可以用以下方法解决,方法来自 stackoverflow。