通过Spring xml数据源配置postgresql驱动程序

Aso*_*oub 5 java sql postgresql spring

我一直在尝试配置使用xml Spring配置文件中声明的postgresql数据源建立的连接.

<bean id="myDataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="org.postgresql.Driver" />
        <property name="url" value="jdbc:postgresql://localhost:5432/dbname" />
        <property name="username" value="postgres" />
        <property name="password" value="" />
        <property name="socketTimeout" value="10"/>
    </bean>
Run Code Online (Sandbox Code Playgroud)

我知道,我不应该DriverManagerDataSource从春天开始使用这个课程(我们很快会转到C3p0或DBCP)因为它不是真正的汇集.我正在尝试设置postgresql连接的socketTimeout值(在此处描述https://jdbc.postgresql.org/documentation/head/connect.html)但当然,"socketTimeout"不是数据源的属性,所以它不起作用.

是否可以通过datasource xml的配置来实现?或者我应该在别处做什么?因为数据源管理连接我不认为我能做到

props.setProperty("timeout",30);
Connection conn = DriverManager.getConnection(url, props);
Run Code Online (Sandbox Code Playgroud)

我甚至可以使用DriverManagerDataSource执行此操作吗?我试图搜索,但我找不到任何有用的东西,因为没有很多人真正使用它.

Aso*_*oub 9

谢谢M. Deinum,我能够找到.实际上,即使知道该属性被命名为"connectionProperties",我也没有找到很多答案(也许人们很少这样使用它?).所以我发布了它:

<bean id="myDataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="org.postgresql.Driver" />
        <property name="url" value="jdbc:postgresql://localhost:5432/dbname" />
        <property name="username" value="postgres" />
        <property name="password" value="" />
        <!--<property name="socketTimeout" value="10"/>-->

        <property name="connectionProperties">
            <props>
                <prop key="socketTimeout">10</prop>
            </props>
        </property>
   </bean>
Run Code Online (Sandbox Code Playgroud)

如果有人有更好/更完整的答案,我会检查出来;)