ConnectionFactory
пайдалану
Spring ConnectionFactory
арқылы R2DBC қосылымын дерекқорға орнатады. ConnectionFactory
R2DBC спецификациясының бөлігі болып табылады және драйверлер үшін жалпы кіру нүктесін білдіреді. Ол контейнер немесе фреймворкке қосылымдарды пулға біріктіру және транзакцияларды басқару мәселелерін қосымша кодтан жасыруға мүмкіндік береді. Дамуышы ретінде сізге дерекқорға қалай қосылу керектігін егжей-тегжейлі білу қажет емес. Бұл үшін ConnectionFactory
-ны орнататын әкімші жауапты. Сіз, бәлкім, екі рөлді де атқарасыз, себебі сіз кодты әзірлеп және тестілеп жатырсыз, бірақ өндіріс дерек көзін қалай бапталғанын білудің қажеті жоқ.
Егер сіз Spring арқылы R2DBC деңгейін пайдалансаңыз, онда сіз өзіңіздің жеке қосылымдар пулын конфигурациялай аласыз, ол үшін үшінші тарап ұсынған реализацияны қолдануыңызға болады. Танымал реализациялардың бірі - R2DBC пул (r2dbc-pool
). Spring дистрибуциясындағы реализациялар тек тестілеу мақсатында қолданылады және олардың құралуы пулға біріктірілмейді.
ConnectionFactory
конфигурациялау үшін:
-
Сіз R2DBC-ден
ConnectionFactory
әдеттегідей алатын секілді оны қосыңыз. -
R2DBC URL-ін көрсетіңіз (дұрыс мәнді драйверіңіздің құжаттамасына қараңыз).
Төмендегі мысалда 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
-ден қосылымдарды орнату және қажет болған жағдайда оларды жабу үшін статикалық әдістерді ұсынады.
Ол R2dbcTransactionManager
сияқты, Context
жазылушыға бекітілген қосылымдарды қолдайды.
SingleConnectionFactory
пайдалану
SingleConnectionFactory
класы - бұл DelegatingConnectionFactory
интерфейсінің реализациясы, ол бір Connection
-ды орауыштайды, әр қолданудан кейін жабылмайды.
Егер қандай да бір клиенттік код close
шақыратын болса және қосылымдар пулы бар деп есептейтін болса (постоянды сақтау құралдарын қолдау құралдарымен), онда suppressClose
қасиетін true
етіп орнату қажет. Бұл параметр физикалық қосылымды орауыштайтын жабуды басатын прокси қайтарады. Енді оны тікелей Connection
немесе ұқсас объектке ауыстыруға болмайтынын назарға алыңыз.
SingleConnectionFactory
негізінен тесттік класс және ол драйверіңіз R2DBC-де мұндай мүмкіндік берсе, құбырлайтын арнайы талаптар үшін қолданылуы мүмкін. ConnectionFactory
пулынан айырмашылығы, ол барлық уақытта бір қосылымды қайта пайдалану мүмкіндігін береді, бұл физикалық қосылымдарды артық құрудан аулақ болуға мүмкіндік береді.
TransactionAwareConnectionFactoryProxy
пайдалану
TransactionAwareConnectionFactoryProxy
- бұл мақсатты ConnectionFactory
үшін прокси. Прокси осы мақсатты ConnectionFactory
-ды орауыштап, оның Spring арқылы басқарылатын транзакциялармен үйлесімділігін арттырады.
ConnectionFactoryUtils
арқылы ресурстарды басқаруға қол жеткізу үшін R2DBC клиентін дұрыс интеграциялау артықшылықты.
TransactionAwareConnectionFactoryProxy
туралы қосымша ақпаратты javadoc-тан қараңыз.
R2dbcTransactionManager
пайдалану
R2dbcTransactionManager
класы - бұл R2DBC дерекқорлардың дербес дерек көздері үшін ReactiveTransactionManager
реализациясы. Ол берілген қосылу фабрикасынан R2DBC қосылымын жазылушының Context
етіп байлап, әрбір қосылу фабрикасы үшін бір жазылушы қосылымын қабылдауға мүмкіндік береді.
Қосымша коды ConnectionFactory.create()
стандартты R2DBC орнына ConnectionFactoryUtils.getConnection(ConnectionFactory)
арқылы сәйкес R2DBC қосылымын алуы қажет.
Барлық фреймворк кластар (мысалы, DatabaseClient
) бұл стратегияны автоматты түрде пайдаланады. Егер іздеу стратегиясы бұл транзакция менеджерімен бірге пайдаланылмаса, ол әдеттегідей жұмыс жасайды. Сол себептен ол кез келген жағдайда қолдануға болады.
R2dbcTransactionManager
класы қосылымға қолданылатын қосымша оқшаулау деңгейлерін қолдайды.
GO TO FULL VERSION