making / hajiboot-samples

書籍「はじめてのSpring Boot」のサポートページ
133 stars 67 forks source link

Log4JDBC用のDataSourceの定義方法について #10

Closed kazuki43zoo closed 9 years ago

kazuki43zoo commented 9 years ago

メソッド引数を定義しておくと、作成済みのオブジェクトがDIされてくるみたいなので、こんか感じにしてみました。 依存するオブジェクトが明確になるし、記述もスマートかな〜と思ったのですが、Spring-BootというかJavaConfig的にはどうなんですかね?

package com.example;

import net.sf.log4jdbc.Log4jdbcProxyDataSource;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

@Configuration
public class AppConfig {

    @Bean
    DataSource realDataSource(DataSourceProperties dataSourceProperties) {
        return DataSourceBuilder.create(dataSourceProperties.getClassLoader())
                .url(dataSourceProperties.getUrl())
                .username(dataSourceProperties.getUsername())
                .password(dataSourceProperties.getPassword())
                .build();
    }

    @Bean
    DataSource dataSource(DataSource dataSource) {
        return new Log4jdbcProxyDataSource(dataSource);
    }

}
making commented 9 years ago

まあ、趣味の問題の範囲かと・・