Error creating bean with name 'blockChainService' defined in class path resource

定义BlockChainServiceConfig类时

@Configuration
public class BlockChainServiceConfig {

    @Bean
    BlockChainService blockChainService(){
        return new BlockChainService();
    }
}

BlockChainService 类如下

public class BlockChainService {

    @Autowired
    private RedisService redisService;


    public BlockChainService() {
        redisService.create("test2", "你好");
     
    }

}

我在BlockChainServiceConfig类中用@Configuration和@Bean注入BlockChainService的构造方法,但是报错Error creating bean with name 'blockChainService' defined in class path resource ,后来我发现在BlockChainService的的构造方法里不能使用

@Autowired

private RedisService redisService;

所以不要在构造方法里使用@Autowired注解导入的bean

如果需要这么做,就把@Autowired的bean在config里导入

@Configuration
public class BlockChainServiceConfig {
    @Autowired
    private RedisService redisService;

    @Bean
    BlockChainService blockChainService(){
        return new BlockChainService(redisService);
    }
}
public class BlockChainService {
    public BlockChainService(RedisService redisService) {
        redisService.create("test2", "你好");
    }
}

这样就能正确处理了。

同时注意@Service(或者@Component、@Controller、@Repository、@Configuration这些用来定义Bean的注解)注解一定要注释掉或者删掉,这样才能够让自己手动构建的Bean起作用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值