2016-04-24 22 views
0

私はSpring MVCを使用しています。 DriverManagerDataSourceでjdbcに接続しようとしています。私は @Bean注釈を使用しています。私は基本的に注釈を使用してXMLファイルでこれを達成しようとしています。Spring MVCで@Beanを使ってjdbcに接続するには?

<bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" value="jdbc:mysql://localhost:3306/jcg" /> 
    <property name="username" value="root" /> 
    <property name="password" value="toor" /> 
</bean> 

構成クラスで@configurationアノテーションを使用しています。構成ファイルで@Beanを使用して接続するためです。

@Bean 
public DriverManagerDataSource dataSource(){ 
    Properties jdbcProperties = PropertyUtils.getProperties(profile, "jdbc"); 

    DriverManagerDataSource ret = new DriverManagerDataSource(); 
    ret.setDriverClassName(jdbcProperties.getProperty("driverClassName")); 
    ret.setUsername(jdbcProperties.getProperty("username")); 
    ret.setPassword(jdbcProperties.getProperty("password")); 
    ret.setUrl(jdbcProperties.getProperty("url")); 
    return ret; 
} 

これを別のstackoverflow質問で見ました。これは正しい方法ですか? しかし、私はエラーを取得しています。

プロパティは、私はこれらをインポートすることができますどのように確認していない

PropertyUtilsが

を解決することはできません解決することはできませんか?また、私はここでプロファイルが何を表しているのか理解していませんか?あなたは助けてもらえますか?

+0

を使用してこれを解決することができます。代わりに[PropertySourcesPlaceholderConfigurer](http://docs.spring.io/spring/docs/3.2.6.RELEASE/javadoc-api/org/springframework/context/support/PropertySourcesPlaceholderConfigurer.html)を使用してください。 – Bunti

答えて

0

profileについて何かについての情報が不十分で、PropertyUtilsクラスをインポートしていないような変数メッセージとエラーメッセージが表示されます。

プロパティをSpringアプリケーションにインポートする適切な方法の1つは、コメントで述べたようにPropertySourcesPlaceholderConfigurerを使用することです。このように、あなたの設定クラスでBeanを宣言してください。

@Bean 
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { 
    return new PropertySourcesPlaceholderConfigurer(); 
} 

を入力し、設定クラスでプロパティファイル名を指定し、クラスパスに設定ファイルを配置します。プロパティファイルで指定されたプロパティを使用するためには

@Configuration 
@PropertySources({@PropertySource("classpath:database.properties")}) 
public class YourConfig {...} 

、あなたはEnvironmentインスタンスを注入する必要があります。

@Resource 
private Environment environment; 

次に、プロパティ値を取得するために使用します。

@Bean 
public DriverManagerDataSource dataSource(){ 
    DriverManagerDataSource ret = new DriverManagerDataSource(); 
    ret.setDriverClassName(environment.getRequiredProperty("driverClassName")); 
    ret.setUsername(environment.getRequiredProperty("username")); 
    ret.setPassword(environment.getRequiredProperty("password")); 
    ret.setUrl(environment.getRequiredProperty("url")); 
    return ret; 
} 
+0

ありがとうBunti、私はこれを解決することができました。ご協力いただきありがとうございます。 – sachin

0

私はあなたがSpringアプリケーションのプロパティをインポートするために(私が推測するにApache Commonsのから)PropertyUtilsを使用する必要はありません。この

@Bean 
public DriverManagerDataSource dataSource(){ 
    DriverManagerDataSource ret = new DriverManagerDataSource(); 
    ret.setDriverClassName("driverClassName"); 
    ret.setUsername("username"); 
    ret.setPassword("password"); 
    ret.setUrl("url"); 
    return ret; 
} 
関連する問題