【发布时间】:2021-02-19 07:35:17
【问题描述】:
我现在需要的是一个普通的抽象类及其子类。这些 bean 需要注入到抽象类中。它们只是普通的对象,但有一些 ioc 管理的 bean 来执行操作。我需要将它们序列化为redis。保存,然后从redis中取出来反序列化,但是取出时这些bean都变成了null。本来想手动一一注入,但可能有嵌套问题。我不能那样做。不递归配置bean很麻烦,所以找了很多解决办法,找到了@Configurable注解,但是想用的时候,没有完整的文档,很难,需要配置aspectJ ,LTW,aspectj-maven -plugin,重启的时候还需要用-javaagent:/path/to/spring-instrument.jar,完全糊涂了,不知道怎么用,太麻烦了,找不到完整的@Configurable用例,我根本不想用-javaagent:/path/to/spring-instrument.jar,发现很多类似的文章,甚至提到了bytebuddy。但是它们不全面,不能使用,这让我很头疼
- https://blog.csdn.net/crazypandariy/article/details/108172434#comments_15058136
- Spring boot @Configurable
- how to reattach singleton Spring beans upon deserialization
我想这样使用它
@Data
@NoArgsConstructor
@Slf4j
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)
@JsonSubTypes(
value = {
@JsonSubTypes.Type(value = SinglePipeLink.class),
@JsonSubTypes.Type(value = SequencePipeLink.class),
@JsonSubTypes.Type(value = SplitFlowPipeLink.class),
@JsonSubTypes.Type(LoopPipeLink.class)
})
@Accessors(chain = true)
@Configurable(autowire = Autowire.BY_NAME, preConstruction = true)
public abstract class BasePipeLink implements Serializable {
private static final long serialVersionUID = -5308571029549664750L;
protected String copyFrom;
@Resource @JsonIgnore protected transient RedisService redisService;
}
【问题讨论】:
-
请提供MCVE,最好是 GitHub 上的 Maven 项目。这个问题没有足够的信息来回答它。
-
友情提示:请按要求提供更多信息。谢谢。
-
我知道了,谢谢
-
您在将近一年后才回答,然后答案就很神秘了。有人可以这么懒吗?你得到了什么?
-
对不起,我换了工作忘记了
标签: spring-boot aspectj aspectj-maven-plugin