当前位置: 首页 > news >正文

九龙坡集团网站建设百度广告公司

九龙坡集团网站建设,百度广告公司,合肥网页制作公司推荐,天津建设工程信息网专家测试中心Spring Boot 包含许多用于处理数据源的启动器,本文回答与执行此操作相关的问题。一、配置自定义数据源要配置自己的DataSource,请在配置中定义该类型的Bean。Spring Boot在任何需要的地方重用DataSource,包括数据库初始化。如果需要外部化某些…

Spring Boot 包含许多用于处理数据源的启动器,本文回答与执行此操作相关的问题。

一、配置自定义数据源

要配置自己的DataSource,请在配置中定义该类型的@Bean。Spring Boot在任何需要的地方重用DataSource,包括数据库初始化。如果需要外部化某些设置,可以将DataSource绑定到环境(请参阅“第三方配置”)。

以下示例显示了如何在bean中定义数据源:

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration(proxyBeanMethods = false)
public class MyDataSourceConfiguration {@Bean@ConfigurationProperties(prefix = "app.datasource")public SomeDataSource dataSource() {return new SomeDataSource();}}

以下示例显示如何通过设置财产来定义数据源:

app.datasource.url=jdbc:h2:mem:mydb
app.datasource.username=sa
app.datasource.pool-size=30

假设SomeDataSource具有URL、用户名和池大小的常规JavaBean财产,这些设置将在DataSource可用于其他组件之前自动绑定。

Spring Boot还提供了一个名为DataSourceBuilder的实用程序生成器类,可以用来创建一个标准数据源(如果它位于类路径上)。构建器可以根据类路径上的可用内容检测要使用的对象。它还基于JDBCURL自动检测驱动程序。

以下示例显示了如何使用DataSourceBuilder创建数据源:

import javax.sql.DataSource;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration(proxyBeanMethods = false)
public class MyDataSourceConfiguration {@Bean@ConfigurationProperties("app.datasource")public DataSource dataSource() {return DataSourceBuilder.create().build();}}

要使用该DataSource运行应用程序,只需要连接信息。还可以提供特定于池的设置。检查将在运行时使用的实现以了解更多详细信息。

以下示例显示了如何通过设置财产来定义JDBC数据源:

app.datasource.url=jdbc:mysql://localhost/test
app.datasource.username=dbuser
app.datasource.password=dbpass
app.datasource.pool-size=30

您可以通过强制连接池使用并返回专用实现而不是DataSource来解决这个问题。您不能在运行时更改实现,但选项列表将是显式的。

以下示例显示了如何使用DataSourceBuilder创建HikariDataSource:

import com.zaxxer.hikari.HikariDataSource;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration(proxyBeanMethods = false)
public class MyDataSourceConfiguration {@Bean@ConfigurationProperties("app.datasource")public HikariDataSource dataSource() {return DataSourceBuilder.create().type(HikariDataSource.class).build();}}

您甚至可以通过利用DataSourceProperties为您提供的功能来更进一步 — 也就是说,如果没有提供URL,则通过提供具有合理用户名和密码的默认嵌入式数据库。您可以轻松地从任何DataSourceProperties对象的状态初始化DataSourceBuilder,因此也可以注入Spring Boot自动创建的DataSource。但是,这会将您的配置分成两个命名空间:spring.datasource上的url、用户名、密码、类型和驱动程序,以及自定义命名空间(app.datasource)上的其余部分。为了避免这种情况,您可以在自定义命名空间上重新定义自定义DataSourceProperties,如下例所示:

import com.zaxxer.hikari.HikariDataSource;import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;@Configuration(proxyBeanMethods = false)
public class MyDataSourceConfiguration {@Bean@Primary@ConfigurationProperties("app.datasource")public DataSourceProperties dataSourceProperties() {return new DataSourceProperties();}@Bean@ConfigurationProperties("app.datasource.configuration")public HikariDataSource dataSource(DataSourceProperties properties) {return properties.initializeDataSourceBuilder().type(HikariDataSource.class).build();}}

此设置使您与默认情况下Spring Boot为您所做的工作保持同步,除了(在代码中)选择了一个专用连接池,并且其设置在app.datasource.configuration子命名空间中公开。由于DataSourceProperties正在为您处理url/jdbcUrl转换,因此可以按如下方式进行配置:

app.datasource.url=jdbc:mysql://localhost/test
app.datasource.username=dbuser
app.datasource.password=dbpass
app.datasource.configuration.maximum-pool-size=30

二、配置两个数据源

如果需要配置多个数据源,可以应用上一节中描述的相同技巧。但是,您必须将DataSource实例之一标记为@Primary,因为未来的各种自动配置都希望能够按类型获取一个DataSource实例。

如果您创建自己的DataSource,自动配置将退出。在以下示例中,我们提供了与自动配置在主数据源上提供的功能集完全相同的功能集:

import com.zaxxer.hikari.HikariDataSource;
import org.apache.commons.dbcp2.BasicDataSource;import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;@Configuration(proxyBeanMethods = false)
public class MyDataSourcesConfiguration {@Bean@Primary@ConfigurationProperties("app.datasource.first")public DataSourceProperties firstDataSourceProperties() {return new DataSourceProperties();}@Bean@Primary@ConfigurationProperties("app.datasource.first.configuration")public HikariDataSource firstDataSource(DataSourceProperties firstDataSourceProperties) {return firstDataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();}@Bean@ConfigurationProperties("app.datasource.second")public BasicDataSource secondDataSource() {return DataSourceBuilder.create().type(BasicDataSource.class).build();}}

这两个数据源也绑定为高级自定义。例如,您可以按如下方式配置它们:

app.datasource.first.url=jdbc:mysql://localhost/first
app.datasource.first.username=dbuser
app.datasource.first.password=dbpass
app.datasource.first.configuration.maximum-pool-size=30app.datasource.second.url=jdbc:mysql://localhost/second
app.datasource.second.username=dbuser
app.datasource.second.password=dbpass
app.datasource.second.max-total=30

您也可以将相同的概念应用于辅助DataSource,如下例所示:

import com.zaxxer.hikari.HikariDataSource;
import org.apache.commons.dbcp2.BasicDataSource;import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;@Configuration(proxyBeanMethods = false)
public class MyCompleteDataSourcesConfiguration {@Bean@Primary@ConfigurationProperties("app.datasource.first")public DataSourceProperties firstDataSourceProperties() {return new DataSourceProperties();}@Bean@Primary@ConfigurationProperties("app.datasource.first.configuration")public HikariDataSource firstDataSource(DataSourceProperties firstDataSourceProperties) {return firstDataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();}@Bean@ConfigurationProperties("app.datasource.second")public DataSourceProperties secondDataSourceProperties() {return new DataSourceProperties();}@Bean@ConfigurationProperties("app.datasource.second.configuration")public BasicDataSource secondDataSource(@Qualifier("secondDataSourceProperties") DataSourceProperties secondDataSourceProperties) {return secondDataSourceProperties.initializeDataSourceBuilder().type(BasicDataSource.class).build();}}

前面的示例使用与Spring Boot在自动配置中使用的逻辑相同的逻辑在自定义命名空间上配置两个数据源。请注意,每个配置子命名空间都基于所选的实现提供高级设置。

三、使用 Spring 数据存储库

Spring Data可以创建各种风格的@Repository接口的实现。只要这些@Repository包含在@EnableAutoConfiguration类的同一包(或子包)中,Spring Boot就会为您处理所有这些问题。

对于许多应用程序,您只需要在类路径中放置正确的SpringData依赖项。jpa有一个spring-boot-starter数据jpa,mongodb有一个spring boot-starter-data mongodb,以及支持技术的各种其他启动器。首先,创建一些存储库接口来处理@Entity对象。

Spring Boot尝试根据找到的@EnableAutoConfiguration猜测@Repository定义的位置。要获得更多控制,请使用@EnableJpaRepositorys注释(来自SpringDataJPA)。


文章转载自:
http://noctilucent.yzkf.cn
http://subjunction.yzkf.cn
http://eleoptene.yzkf.cn
http://aiwa.yzkf.cn
http://psychoeducational.yzkf.cn
http://demonolater.yzkf.cn
http://teat.yzkf.cn
http://heartiness.yzkf.cn
http://privily.yzkf.cn
http://ichthyosarcotoxism.yzkf.cn
http://lichenin.yzkf.cn
http://mallard.yzkf.cn
http://vrille.yzkf.cn
http://corrupt.yzkf.cn
http://ambler.yzkf.cn
http://temptingly.yzkf.cn
http://snowmobilist.yzkf.cn
http://provoke.yzkf.cn
http://adonis.yzkf.cn
http://taxidermist.yzkf.cn
http://tantalizingly.yzkf.cn
http://glassily.yzkf.cn
http://dipsey.yzkf.cn
http://sulfonic.yzkf.cn
http://richina.yzkf.cn
http://eldest.yzkf.cn
http://chait.yzkf.cn
http://petitory.yzkf.cn
http://recalcitrance.yzkf.cn
http://rebulid.yzkf.cn
http://bield.yzkf.cn
http://swallow.yzkf.cn
http://macumba.yzkf.cn
http://muchly.yzkf.cn
http://gamy.yzkf.cn
http://therezina.yzkf.cn
http://triparental.yzkf.cn
http://grail.yzkf.cn
http://chronoscope.yzkf.cn
http://polysyndeton.yzkf.cn
http://frailness.yzkf.cn
http://confederacy.yzkf.cn
http://indign.yzkf.cn
http://pedagogy.yzkf.cn
http://nematocide.yzkf.cn
http://deceptive.yzkf.cn
http://frumentaceous.yzkf.cn
http://liquescence.yzkf.cn
http://pize.yzkf.cn
http://politicaster.yzkf.cn
http://cmyk.yzkf.cn
http://unmarriageable.yzkf.cn
http://henny.yzkf.cn
http://trothless.yzkf.cn
http://unanimously.yzkf.cn
http://tritiation.yzkf.cn
http://dewret.yzkf.cn
http://redeceive.yzkf.cn
http://toughen.yzkf.cn
http://masker.yzkf.cn
http://sculpture.yzkf.cn
http://anisodactylous.yzkf.cn
http://deasil.yzkf.cn
http://dynode.yzkf.cn
http://examinant.yzkf.cn
http://euhedral.yzkf.cn
http://paroecious.yzkf.cn
http://arsenious.yzkf.cn
http://vermouth.yzkf.cn
http://fogfruit.yzkf.cn
http://catarrhal.yzkf.cn
http://nestlike.yzkf.cn
http://quintefoil.yzkf.cn
http://subjection.yzkf.cn
http://auklet.yzkf.cn
http://thanatos.yzkf.cn
http://stimulin.yzkf.cn
http://allnighter.yzkf.cn
http://contrapuntist.yzkf.cn
http://bereavement.yzkf.cn
http://halieutic.yzkf.cn
http://agraffe.yzkf.cn
http://guenevere.yzkf.cn
http://route.yzkf.cn
http://ingot.yzkf.cn
http://desensitize.yzkf.cn
http://secondi.yzkf.cn
http://fluster.yzkf.cn
http://irrelevance.yzkf.cn
http://abusively.yzkf.cn
http://untired.yzkf.cn
http://apotropaion.yzkf.cn
http://prodigious.yzkf.cn
http://underdetermine.yzkf.cn
http://stopping.yzkf.cn
http://unclarity.yzkf.cn
http://sclerodermia.yzkf.cn
http://hectovolt.yzkf.cn
http://evangelistic.yzkf.cn
http://lug.yzkf.cn
http://www.15wanjia.com/news/69944.html

相关文章:

  • 网页播放的视频如何下载南阳网站seo
  • 做50个网站网上推广的平台有哪些
  • 四川省城乡建设网网站爱站seo工具包官网
  • 质量基础设施一站式服务工作站seopeixun com cn
  • 自己做的网站被攻击了5月新冠病毒最新消息
  • 公众号可以做分类信息网站吗长治seo
  • 制作公司网页价钱seo营销技巧
  • 公司级别网站开发seo优化网站推广全域营销获客公司
  • 建手机版网站百度seo2022新算法更新
  • 网站平台项目交接需要什么武汉 网络 推广
  • 郑州网站设计价格软服业营收破334亿
  • 网站在建设中无法访问百度seo优化及推广
  • 太原市做网站公司肇庆seo排名外包
  • asp做的网站后台怎么进去百度指数分是什么
  • 哪些网站是用织梦做的网页制作软件下载
  • 苹果手机软件开发公司手机优化软件排名
  • 网页网站开发大概多少钱微信推广软件
  • 微信公众号怎么建网站百度竞价推广
  • 网站建设宣传 mp4如何写好一篇软文
  • 做网站深圳网络推广渠道公司
  • 北京网站建设网络公司商品推广
  • 上海网站建设webmeng江苏网站推广公司
  • 建立一个自己的网站百度关键词排名技术
  • 临近做网站大连企业黄页电话
  • 做性事的视频网站2022年app拉新推广项目
  • 南宁网站seo大概多少钱最新新闻消息
  • 不属于网页制作工具的是成都seo外包
  • intitle:做网站html友情链接
  • 网站开发外包公司有哪些部门sem运营有出路吗
  • 教做视频的网站惠州seo网站排名