今天碰到一个坑,如何挖了很多东西出来,记录一下。
问题一:在HSF demo 里面遇到了这种注解无法解析的情况
在同事的提醒下,总结原因:
首先,我的HelloService 类不是在.xml文件中配置的bean, 而是在 HsfConfig里面,用Configuration注解装配的(hsf服务的统一个Config类,在其它需要使用的地方,直接@Autowired注入即可)。所以IDEA 编译器进行解析的时候,找不到对应的bean进行注入,所以会显示错误。但是在实际运行的时候能够扫描到,所以能够正常运行。
问题二:在我的HsfConfig 中只有一个HelloService ,不用@Qualifier注解不行吗?
我先把这个注解去掉,只保留一个@Autowired注解,运行报错,显示可能有多个HelloService 。
后来把 HelloService service 变成
helloservice ;编译运行成功。
所以个人理解为,除了在Configuration 里面装配的bean,还有一个默认的啥也不加的HSF注解的HelloService 存在(之前就存在接口), 需要用@Qualifier来显示的唯一指定才能注入,不然会出现以下的情况,编译器不知道给service注入哪一个。