gpt4 book ai didi

azure - 在 Azure 应用服务中部署的 Spring Boot Web 应用中配置 SQL 连接池

转载 作者:行者123 更新时间:2023-12-05 07:34:04 29 4
gpt4 key购买 nike

我在 Spring Boot 中实现了 REST API,并将其部署在 Azure 应用服务(Java 8、Tomcat 8.5)实例中。此应用程序连接到 Azure SQL 实例。

注意:这不是嵌入式 Web 服务器,而是基于 PaaS 的 Azure 应用服务 Tomcat 平台

我试图弄清楚如何使用 Java Config 在 Spring Boot 应用程序的引导主类中设置数据库连接池,以便它可以自动连接到注释的 @Repository 中类,因此可以使用连接池促进的 DataSource 实例设置相应的 JdbcTemplate 实例。

目前,我正在 Spring Boot 的 application.properties 中设置数据库属性,它自动设置DataSource:

spring.datasource.url=jdbc:sqlserver://<azure-sql-connection-string>
spring.datasource.username=dbadmin
spring.datasource.password=dbpassword
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver

这允许我在 @Repository 带注释的 DAO 实现类中自动连接 JdbcTemplate:

@Autowired
private NamedParameterJdbcTemplate jdbcTemplate;

然后,我可以使用JdbcTemplate与数据库进行交互。由于应用程序使用的 SQL 查询的动态特性,此时不涉及 JPA/ORM...标准 SQL。

如何设置连接池?我知道这将显着提高数据库性能。

最佳答案

我在@SpringBootApplication( Bootstrap )主类中添加了以下方法级注释@Bean:

@Bean
public DataSource dataSource(Map<String,String> dbProps) {

DataSourceBuilder factory = DataSourceBuilder.create()
.driverClassName(dbProps.get("SQLDriverClassName"))
.type(BasicDataSource.class)
.url(dbProps.get("SQLDatabaseUrl"))
.username(dbProps.get("SQLDatabaseUsername"))
.password(dbProps.get("SQLDatabasePassword"));

return factory.build();
}

我的 Spring Boot 应用程序的 POM 中需要以下依赖项:

    <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.1.0.jre8</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
</dependency>

这似乎有效。不确定这是否是推荐的配置方式。

关于azure - 在 Azure 应用服务中部署的 Spring Boot Web 应用中配置 SQL 连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50339414/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com