मैजिक रिपॉजिटरी: स्प्रिंग डेटा-जेपीए और गूगल गुइसा इंटीग्रेशन

इतना समय नहीं है जब हबेरा पर स्प्रिंग डेटा-जेपीए परियोजना के लिए समर्पित एक अच्छी पोस्ट थी।
परियोजना ने वास्तव में मुझे प्रभावित किया, क्योंकि उन्होंने एक अच्छी तरह से डिजाइन किए गए भंडार समाधान का प्रस्ताव दिया।
इस विषय पर हमारे अपने विकास थे, लेकिन स्प्रिंग डेटा-जेपीए एक बहुत अधिक सुरुचिपूर्ण और कार्यात्मक समाधान था।
एक पकड़ थी - जिन परियोजनाओं के साथ मैं काम करता हूं वे Google Guice का उपयोग करके बनाए गए थे।
एक समय में, यह मेरी सचेत पसंद थी, और सामान्य तौर पर यह अभी भी परियोजना टीमों और ग्राहकों दोनों के लिए उपयुक्त है।

... लेकिन स्प्रिंग डेटा-जेपीए रिपॉजिटरी अवधारणा बहुत स्वादिष्ट थी ...


कुछ विचारों के परिणामस्वरूप, मानक Google Guice एकीकरण मॉड्यूल के सेट से स्प्रिंग डेटा-जेपीए और ग्लिस-पर्सिस्टेंट सबसिस्टम के बीच एक एकीकरण मॉड्यूल बनाने का निर्णय लिया गया।
स्प्रिंग डेटा-जेपीए की वास्तुकला अच्छी तरह से डिज़ाइन की गई है, जिससे यह एकीकरण संभव है।

इसका क्या आया?


एकीकरण मॉड्यूल की मुख्य विशेषताओं की सूची:


इसके साथ कैसे काम करें?


तीन मुख्य चरणों को यहां प्रतिष्ठित किया जा सकता है:

1. अपना रिपॉजिटरी विकल्प बनाएं:
public interface AccountRepository extends JpaRepository<Account, Long>,
EntityManagerProvider {

Account findAccountByUuid( String uuid);

@Query( "select a from Account a where a.name = :name" )
Account findAccountByName(@Param( "name" ) String name);
}



2. एकीकरण गिटार मॉड्यूल स्थापित करना:
install( new JpaRepositoryModule( "my-persistence-unit" ) {
protected void configureRepositories() {
bind(AccountRepository. class ).toProvider( new JpaRepositoryProvider<AccountRepository>());
}
});



3. इंजेक्शन और उपयोग:
public class AccountService {

@Inject
private AccountRepository accountRepository;

public void registerUser( String login, String password) throws RegistrationException{
// ... some checks & etc
accountRepository.save( new Account(login, password));
// ... something else
}

public Account findAccount( String login) throws FinderException{
return accountRepository.findAccountByLogin(login);
}
}



उपयोग के लाइव उदाहरण परियोजना के JUnit परीक्षणों में पाए जा सकते हैं:
http://code.google.com/p/guice-repository/source/browse/tags/1.0.0/src/test/java/com/google/code/guice/repository/

उपयोग के अधिक विस्तृत पहलुओं को परियोजना प्रलेखन में वर्णित किया गया है:
http://code.google.com/p/guice-repository/wiki/DevGuide

परियोजना अपाचे लाइसेंस 2.0 लाइसेंस के तहत सभी के लिए उपलब्ध है:
http://code.google.com/p/guice-repository/

केंद्रीय मावेन भंडार में कलाकृति:
< dependency >
< groupId > com.google.code.guice-repository </ groupId >
< artifactId > guice-repository </ artifactId >
< version > 1.0.0 </ version >
</ dependency >



मुझे खुशी होगी अगर परियोजना आपके लिए उपयोगी है :)
आपका ध्यान के लिए धन्यवाद!

Source: https://habr.com/ru/post/In141995/


All Articles