我有4個單身類與私人構造函數 和我想創建所有4類的bean屬性。春天(錯誤創建bean,沒有可見的構造函數)與私有構造函數的單身類
的主要問題是,我可以爲3類 和這3類創建bean有一個getInstance方法和 私有構造函數()(Singleton類),但第四和最後一個類似的結構 拋出異常(異常消息粘貼在下面)
請在下面找到getInstance方法,私有構造函數 和bean id聲明。在所有四個bean聲明中都是相同的
但是,如果我將構造函數從「Private」更改爲「Public」,則 我沒有收到錯誤。任何人都可以對發生的事情有所瞭解嗎?由於其他三個類有私有構造函數和他們的工作完全正常
的getInstance()方法
public static ApplicationConfiguration getInstance() throws IOException,
IllegalArgumentException, InconsistentDataException {
ApplicationConfiguration result = instance.get();
if (result == null) {
try {
// Check again if already created
result = instance.get();
if (result == null) {
result = new ApplicationConfiguration();
}
} finally {
// something here
}
}
return result;
}
的私有構造
private ApplicationConfiguration() throws Exception {
// call a method here
}
bean屬性聲明
<bean id="configManager" class="com.manager.ApplicationConfiguration" factory-method="getInstance" />
<bean id="configEnricher" class="com.enricher.ApplicationConfiguration" factory-method="getInstance" />
<bean id="configBussiness" class="com.validationservice.ApplicationConfiguration" factory-method="getInstance" />
以上三件作品
這個bean屬性引發錯誤
<bean id="configEviction" class="com.evictionservice.ApplicationConfiguration" factory-method="getInstance" />
異常消息
[#|2012-08-07 11:53:21,130|ERROR|RMI TCP Connection(226)-172.18.36.14|org.springframework.
web.context.ContextLoader||slodev-rhngp5.mblox.com|core-1|Context initialization failed|#]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'co
nfigEviction' defined in ServletContext resource [/WEB-INF/camel-context.xml]: Initializat
ion of bean failed; nested exception is org.springframework.aop.framework.AopConfigExcepti
on: Could not generate CGLIB subclass of class [class com.evictionservice.ApplicationConfiguration]:
Common causes of this problem include using
a final class or a non-visible class; nested exception is java.lang.IllegalArgumentExcepti
on: No visible constructors in class com.evictionservice.ApplicationConfiguration
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.do
CreateBean(AbstractAutowireCapableBeanFactory.java:526)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.cr
eateBean(AbstractAutowireCapableBeanFactory.java:455)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(Abstr
actBeanFactory.java:293)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingl
eton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(Abstrac
tBeanFactory.java:290)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractB
eanFactory.java:192)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstant
iateSingletons(DefaultListableBeanFactory.java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactor
yInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(Abstract
ApplicationContext.java:425)
:
你對com.evictionservice.ApplicationConfiguration類或其任何方法有任何註釋 - 比如@Transaction等。 – 2012-08-07 14:11:25
看起來這裏有4個不同的類(所有不同的包)。每個ApplicationConfiguration是否擴展一個通用接口?這是什麼樣子?在你的spring上下文中有什麼東西在com.evictionservice類上代理? – 2012-08-07 15:55:51