我是注释的新手。
我在类中使用@produces作为方法
@Produces
@Named("getCTIs")
public Map<String,TreeMap<String, List<String>>> getCTIs(){}
现在我想注入上面的bean。为此,我这样做:
@Inject
private Map<String,TreeMap<String, List<String>>> cTIs;
但是我收到以下错误消息
No qualifying bean of type [java.util.TreeMap] found for dependency
[map with value type java.util.TreeMap]: expected at least 1 bean which
qualifies as autowire candidate for this dependency.
我是框架的新手。如果不注入,你能告诉我如何使用上面的bean。我想在servlet中使用bean。在此先感谢:)
P.S。:我不想将@Produces更改为@Bean。
答案 0 :(得分:3)
使用@Bean
注释来注册bean。
@Bean
@Named("getCTIs")
public Map<String,TreeMap<String, List<String>>> getCTIs(){}
然后您可以使用@Autowired
或@Inject
连接bean。
@Produces注释用于指定资源可以生成并发送回客户端的MIME媒体类型或表示。
Spring MVC框架支持Producible Media Types作为控制器@RequestMapping
的属性。
如果您还想使用@Produces
,那么您可以保留原样,并使用@Configuration
和@Bean
注释将其设为bean,如下所示:
@Configuration
public class XYZ {
@Produces
@Bean
@Named("getCTIs")
public Map<String,TreeMap<String, List<String>>> getCTIs(){...}
}
阅读bootstrapping AnnotationConfigApplicationContext课程