2011-11-04 27 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

相关问题