sping加载bean都发生了些什么

问题描述:使用@Autowired注入的类,没有实例化

//Controller
@RequestMapping(value="/deepblue")
@Controller
public class AController{

    @Autowired
    private BService bService;

    public void test(){
        bService.test();
    }    
}

//Service
@Service
public class BService{
    public void test(){
        new CService().test();   
    }
}

//Service
@Component
public class CService{
    @Autowired
    private DataService dataService;  // null

    @Value(${data.service.ticket})
    private String dataServiceTicket;  // null
}

上述代码debug,发现@Autowired @Value注入为null,依次检查application.properties和dubbo-spring.xml文件,@Value变量和dubbo bean都有注入

解决问题的过程:

解决问题都过程放在spring容器启动都时候是否扫描类DataService,是否注入;

如何解决的问题:

反思问题产生的原因:不是单例,又重新new了一个对象;

You should autowire your PersonService class in your controller instead of making it as an object

总结spring加载bean的理解:

原文地址:https://www.cnblogs.com/RunForLove/p/6568327.html