它似乎在注释中具有特殊含义 - 它允许您在实例化注释时跳过参数名称.
@Foo(bar = "abc") // a normal instantiation of an annotation
@Foo("abc") // if bar were renamed 'value'
Run Code Online (Sandbox Code Playgroud)
这记录在哪里?是value关键字还是没有?另见.
我想在测试中注入DeMorgenArticleScraper。
@RunWith(SpringJUnit4ClassRunner.class)
public class DeMorgenArticleScraperTest {
@Autowired
private DeMorgenArticleScraper deMorgenArticleScraper;
...
}
Run Code Online (Sandbox Code Playgroud)
DeMorgenArticleScraper组件本身具有一些配置,但是IDE /编译器没有抱怨它们。
@Component
public class DeMorgenArticleScraper extends NewsPaperArticleScraper {
@Autowired
public DeMorgenArticleScraper(
@Qualifier("deMorgenSelectorContainer") SelectorContainer selector,
GenericArticleScraper genericArticleScraper,
@Qualifier("deMorgenCompany") Company company) {
super(selector, genericArticleScraper, company);
}
...
}
Run Code Online (Sandbox Code Playgroud)
用@Qualifier注释的构造函数参数在具有@Bean的Config.class中定义。该类本身具有@Configuration。我认为问题不在这里。
IDE已经警告过我,找不到bean ...必须在bean中定义自动装配的成员。但据我所知,它是在具有@Component批注的bean中定义的。当Spring Boot应用程序可以启动时(当我注释掉测试类时),所有其他bean连接似乎都可以。