小编Sem*_*kov的帖子

Spring Autowired 在创建代理之前工作

据我了解,SpringAutowiredAnnotationBeanPostProcessorpostProcessBeforeInitialization舞台上管理自动装配机制。但它如何注入应该在postProcessAfterInitialization舞台上创建的代理呢?

编辑1

假设我有这个 Spring 配置

@Service
class RegularBean {
    // injected on postProcessBeforeInitialization stage
    @Autowired
    private TransactionBean tBean;
    
    // invoked in between of postProcessBeforeInitialization and postProcessAfterInitialization
    @PostConstruct
    void init() {
        tBean.transactionMethod();
    }
}


@Service
class TransactionBean {
    // transactional proxy is created on postProcessAfterInitialization stage
    @Transactional
    public void transactionMethod() { ... }
}
Run Code Online (Sandbox Code Playgroud)

事务代理是在postProcessAfterInitialization舞台上创建的。但@PostConstruct在它之前被调用。注入是否tBean包含事务代理?如果是这样,那为什么呢?因为不应该这样。如果不包装,那么以后的交易将如何处理?

假设我用构造函数注入替换字段注入。它会以某种方式改变行为吗?

spring dependency-injection spring-mvc spring-aop

6
推荐指数
1
解决办法
1467
查看次数

Aerospike 测试容器:2 个命名空间

我正在使用官方Aerospike Docker 映像与 Testcontainers 一起运行它。我可以指定默认名称空间作为环境变量。不幸的是,我无法在容器启动时创建 2 个命名空间。

有什么方法可以实现吗?

testing integration-testing docker aerospike testcontainers

3
推荐指数
1
解决办法
500
查看次数