2011-11-04 25 views
3

我是新來的Spring編程和當前Spring 3.1的Java基礎的Configuraion掙扎」我已經創建了以下配置類基於Spring的Java配置不是爲我工作

@Configuration 
@ImportResource("classpath:/resources/jdbc.properties") 
public class AppConfig { 

    @Autowired 
    Environment env; 
    private @Value("${jdbc.url}") 
    String url; 
    private @Value("${jdbc.username}") 
    String username; 
    private @Value("${jdbc.password}") 
    String password; 

    @Bean 
    public DataSource dataSource() { 
     System.out.println("Creating data Source."); 
     return new DriverManagerDataSource(url, username, password); 
    } 

    @Bean 
    public SessionFactory sessionFactory() throws Exception { 
     return new AnnotationSessionFactoryBuilder().setDataSource(dataSource()).setPackagesToScan("com.argusoft.loginmodule.domain").buildSessionFactory(); 
    } 
} 
現在,當我嘗試運行項目

我得到以下錯誤。

輸出

SEVERE: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/springframework/core/env/EnvironmentCapable

陷了進去,並不能解決它.....我FOLL由於Spring Source Blog

請也提出了一些很好的教程中,Spring的最新的基於Java的配置是通過簡單易懂的例子解釋...

由於提前,

回答

2

從異常的角度來看:

java.lang.NoClassDefFoundError: org/springframework/core/env/EnvironmentCapable 

這個問題是等於一個問題:Spring class EnvironmentCapable

所以,正確的答案可能是:original answer

I think that need use version 3.1.0 - in package org.springframework.core-3.1.0.M2.jar this class presents.

通過user810430這裏給出。

+0

由於OP提到了Spring 3.1,所以對前一個問題的引用不是答案。 – Jason

1
you can puth configuration like this 
inside application context: 
    <bean id="propertyConfigurer" 
     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
     <property name="locations"> 
      <list> 
       <value>/WEB-INF/configuration.properties</value> 
      </list> 
     </property> 
    </bean> 

<import resource="db-config.xml" /> 

and 
db-config.xml is: 
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 
     destroy-method="close"> 

     <property name="driverClass"> 
      <value>${jdbc.driver.className}</value> 
     </property> 
     <property name="jdbcUrl"> 
      <value>${jdbc.url}</value> 
     </property> 
     <property name="user"> 
      <value>${jdbc.username}</value> 
     </property> 
     <property name="password"> 
      <value>${jdbc.password}</value> 
     </property> 
    </bean> 
    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" autowire="byName"> 
     <property name="dataSource"> 
     <ref bean="dataSource" /> 
     </property> 
     <property name="packagesToScan" value="com.huawei.sa.album" /> 
     <property name="hibernateProperties"> 
       <props> 
           <prop key="hibernate.dialect">${jdbc.hibernate.dialect}</prop> 
       <prop key="hibernate.hbm2ddl.auto">update</prop> 
       <!-- uncomment this for first time run--> 
       <prop key="hibernate.show_sql">false</prop> 
      </props> 
     </property> 

    </bean> 


    <bean id="transactionManager" 
     class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
     <property name="sessionFactory"> 
      <ref bean="sessionFactory" /> 
     </property> 
    </bean> 

     <tx:annotation-driven /> 

</beans> 
+0

配置屬性:jdbc.driver.className = com.mysql.jdbc.Driver jdbc.url = JDBC:MySQL的://本地主機:3306/albumserver jdbc.username =根 jdbc.password = 1234 JDBC。 hibernate.dialect = org.hibernate.dialect.MySQLDialect –

+0

我真的很感謝你的快速幫助....但我需要使用Annotations ...請建議我使用Spring的最新註釋完成此操作的方法.... – aProgrammer

相關問題