Истифодаи ConnectionFactory
Spring пайвасти R2DBC ба базаи додаҳоро тавассути ConnectionFactory
месозад. ConnectionFactory
як қисми спецификацияи R2DBC аст ва ба сифати нуқтаи умумии вуруд барои драйверҳо хизмат мекунад. Ин ба контейнер ё framework имконият медиҳад, ки масоили ба пул пайваст кардани пайвастҳо ва идоракунии амалиётҳоро аз рамзи барнома пинҳон кунад. Ба ту ҳамчун таҳиягар лозим нест, ки муфассал бидонӣ, ки чӣ гуна бо базаи додаҳо пайваст шудан мумкин аст. Барои ин администратор масъул аст, ки ConnectionFactory
-ро танзим мекунад. Эҳтимолан, ту ҳар ду нақшро иҷро мекунӣ, зеро ки рамзро таҳия ва санҷиш мекунӣ, вале ба ту ҳатман лозим нест, ки бидонӣ, ки манбаи додаҳои истеҳсолӣ чӣ гуна танзим шудааст.
Агар ту сатҳи R2DBC-ро аз Spring истифода барӣ, пас метавонӣ худро тавассути татбиқи пули пайвастҳо, ки тарафи сеюм пешкаш мекунад, танзим кунӣ. Татбиқи маъруф пул R2DBC (r2dbc-pool
) мебошад. Татбиқи дар дистрибутиви Spring танҳо барои мақсадҳои санҷиш пешбинӣ шудаанд ва пули пулаксозиро таъмин намекунанд.
Барои танзим намудани ConnectionFactory
:
-
Пайвастшавӣ ба
ConnectionFactory
-ро ба мисли он ки одатанConnectionFactory
-ро аз R2DBC мегирӣ, ташкил намо. -
URL-адреси R2DBC-ро нишон диҳед (арзиши дурустро дар ҳуҷҷатҳои драйвери худ бинед).
Дар мисоли зерин нишон дода шудааст, ки чӣ тавр ConnectionFactory
-ро танзим кардан мумкин аст:
ConnectionFactory factory = ConnectionFactories.get("r2dbc:h2:mem:///test?options=DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE");
val factory = ConnectionFactories.get("r2dbc:h2:mem:///test?options=DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE");
Истифодаи ConnectionFactoryUtils
Синфи ConnectionFactoryUtils
– ин синфи кулай ва пурфунксионалӣ мебошад, ки роҳи осонро барои пайвастҳо аз ConnectionFactory
ва пӯшидани пайвастҳо (ҳангоми зарурат) таъмин мекунад.
Он пайвастҳоро бо Context
обуначӣ, масалан, R2dbcTransactionManager
дастгирӣ мекунад.
Истифодаи SingleConnectionFactory
Синфи SingleConnectionFactory
татбиқи интерфейси DelegatingConnectionFactory
мебошад, ки як Connection
-ро пӯшонида, пас аз ҳар истифода пӯшида намешавад.
Агар кадом як рамзи муштарӣ close
-ро даъват кунад, ба асосе ки пул пайвастҳо мавҷуд аст (ба мисли ҳангоми истифодаи абзорҳои дастгирии нигаҳдории доимии додаҳо), бояд амволи suppressClose
-ро ба true
насб намояд. Ин параметр проксиеро бармегардонад, ки пӯшида шудани физикиро пинҳон мекунад. Огоҳ бошед, ки дигар онро ба Connection
-и нативӣ ё чизи монанд интиқол додан мумкин нест.
SingleConnectionFactory
пеш аз ҳама синфи санҷишӣ мебошад ва метавонад барои талаботи махсус, ба мисли тағйиравӣ истифода шавад, агар драйвери R2DBC-и шумо чунин истифода бурданро иҷозат диҳад. Бар хилофи пулакии ConnectionFactory
, он истифодаи пайвасти яксонро ҳар вақт иҷозат медиҳад, ки ин аз эҷоди физикии аз ҳад зиёди пайвастҳо пешгирӣ мекунад.
Истифодаи TransactionAwareConnectionFactoryProxy
TransactionAwareConnectionFactoryProxy
ин прокси барои ConnectionFactory
-и ҳадаф мебошад. Прокси ин ConnectionFactory
-и ҳадафро пӯшонида, сатҳи мувофиқати онро бо амалиёти идорашавандаи Spring баланд мекунад.
ConnectionFactoryUtils
барои идоракунии манбаъҳо ҳамроҳ намоӣ.
Маълумоти бештарро дар javadoc оид ба TransactionAwareConnectionFactoryProxy
мебинед.
Истифодаи R2dbcTransactionManager
Синфи R2dbcTransactionManager
ин татбиқи ReactiveTransactionManager
барои манбаъҳои алоҳидаи додаҳои R2DBC мебошад. Он пайвастшавии R2DBC-ро аз фабрикаи пайвастшавии муайяншуда ба Context
обуначӣ баста мекунад, ки метавонад ба як пайвасти обуначӣ барои ҳар фабрикаи пайвастшавӣ иҷозат диҳад.
Коди барнома лозим аст, ки пайвастшавии R2DBC-ро тавассути ConnectionFactoryUtils.getConnection(ConnectionFactory)
бигирад, на ба таври стандартӣ барои R2DBC ConnectionFactory.create()
.
Ҳама синфҳои фреймворк (ба мисли DatabaseClient
) ин стратегияро ба таври ноаён истифода мебаранд. Агар стратегияи ҷустуҷӯ бо ин менеҷери амалиёт истифода нашуда бошад, пас он мисли оддӣ рафтор мекунад. Аз ин рӯ, дар ҳар сурат онро истифода бурдан мумкин аст.
Синфи R2dbcTransactionManager
сатҳҳои изолятсияи мушаххасро дастгирӣ мекунад, ки ба пайвастшавӣ татбиқ карда мешаванд.
GO TO FULL VERSION