问题描述:使用@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的理解: