我正在將我的應用程序從spring 3.x升級到4.3。我正在刪除xml配置並使用它的註釋。我得到以下異常:哪個註釋將列表值注入列表屬性?
Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanInitializationException: Properties 'authorities' and 'username' are required for bean 'getJobUsingQuartz'
什麼是下面的XML代碼註釋:
<bean id="mcn"
class="quartzJobs.jobs.MyClassName">
<property name="username" value="CronUser"/>
<property name="authorities">
<list>
<value>ROLE_SYSTEM</value>
</list>
</property>
</bean>
我想用註釋注入上述價值的財產。我試圖像以下:
MyClassName.java
@Configuration
@ComponentScan(basePackages = "quartzJobs.jobs")
public class MyClassName{
@Autowired
@Value("CronUser")
private String username;
@Autowired
@Value(value = "{ROLE_SYSTEM}")
private List<String> authorities;
@Required
public
void setUsername(final String aUsername)
{
username = aUsername;
}
@Required
public
void setAuthorities(final List<String> aAuthorities)
{
authorities = aAuthorities;
}
}
我做錯了什麼?請幫幫我。
如果我沒記錯,你不能注入使用集合了'@ Value'註解。但你可以在任何地方創建一個列表,並使用@ Component註解將它變成一個bean:@Component(「authorities」)private List authorities = new ArrayList(){{add(「ROLE_SYSTEM」);}};/*不好的風格* /'然後你可以從內存中注入它,我認爲是這樣的:'@Resource(name =「authorities」)private列表權限;'同時檢查Spring表達式語言(SpEL);它可能會提供一些幫助你的東西。 :) –
Christian
@Christian,謝謝你的迴應。我嘗試了你的建議,但沒有運氣。仍然有相同的例外 –