2017-02-25 15 views
0

spring jdbcを使用する場合は、まずjdbcTemplateオブジェクトを作成するときにdataSource beanを定義して注入します。私が知りたいことは、プロトタイプスコープでこのdataSourceを定義する必要があるということです。アプリケーション全体でdataSourceオブジェクトが1つしかない場合を除きます。私はこれがアプリケーションのパフォーマンスを低下させることに影響すると思います。spring jdbcでデータソースをプロトタイプスコープにする必要があります

ここで私はスプリング構成ファイル内でdataSouceを定義しました。

<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/testdb" /> 
<property name="username" value="root" /> 
<property name="password" value="123" /> 
</bean> 

私のDAOクラスでは、私は以下のようにdataSOurceをautowiredしています。

@Repository 
public class RecordDAOImpl { 

JdbcTemplate jdbcTemplate = null; 

@Autowired 
public void setDataSource(DataSource dataSource) { 
    this.jdbcTemplate = new JdbcTemplate(dataSource); 
} 

} 

spring mvc WebアプリケーションのdataSourceを定義する最適な方法は何ですか。

答えて

1

私が知りたいことは、私たちにはありません、我々は必要としないプロトタイプのスコープに

をこのデータソースを定義する必要がありますされています。私はそれが良い考えではないだろうと思う、私たちは接続プールのデータソースとシングルトンスコープBeanのいくつかの種類を使用することができます。

複数のデータベースを持つこともできますし、それぞれ独自のデータソーススコープを提供することもできますが、問題はありません。

spring mvc WebアプリケーションのdataSourceを定義する最も良い方法は何ですか。

xmlファイルのデータソースを定義することは何も問題ありません(ただし、多くの開発者はxmlを避けるようですが)。私はそれが読みやすいように感じるので、私はjavaの設定を使用してそれを行うのが好きです。

ドライバとデータベースに依存して、多かれ少なかれ、そのようになります。

@Configuration 
class DatasourceConfig { 

    @Bean 
    DataSource datasource() { 
     PGPoolingDataSource dataSource = new PGPoolingDataSource(); 
     dataSource.setPassword("pass"); 
     dataSource.setPortNumber(123); 
     dataSource.setUser("user"); 
     dataSource.setMaxConnections(10); 
     return dataSource; 
    } 
} 
関連する問題