मैंने वास्तव में जेबॉस सीम एप्लिकेशन ढांचे को पसंद किया है। चूंकि जेएसएफ/ईजेबी/जेपीए के बीच इंजेक्शन/आउटजेक्शन और कड़े एकीकरण की धारणा जावा अनुप्रयोग ढांचे के बीच अपेक्षाकृत दुर्लभ है, इसलिए मैं इस ढांचे का उपयोग करने के लिए डिजाइन पैटर्न और सर्वोत्तम प्रथाओं के लिए कुछ अच्छे संसाधनों की तलाश में था। मैंने इस विषय पर उदाहरणों और कई पुस्तकों को डाला है। हालांकि, मुझे वास्तविक दुनिया के डिजाइन पैटर्न में अधिक दिलचस्पी है जो परंपरागत जे 2 ईई डिजाइन पैटर्न की तुलना में है। उदाहरण के लिए, पारंपरिक डीएओ बनाम EntityHome/EntityQuery। व्यापार तर्क कहां किया जाना चाहिए? एक्शन क्लास में? या समर्पित सेवा कक्षाओं में? मैं वास्तव में अनुभवी सीम डेवलपर्स दे सकते हैं किसी अंतर्दृष्टि की सराहना करता हूं। धन्यवाद!जेबॉस सीम डिजाइन पैटर्न?
उत्तर
आपके द्वारा उपयोग किए जा सकने वाले कई उपयोगी पैटर्न हैं।
पारंपरिक दृष्टिकोण
view >> controller >> service >> domain
कौन सा
/**
* view
*/
<h:commandButton value="Deposit" action="#{accountController.removeAccount(account)}"/>
/**
* controller
*/
@Name("accountController")
public class AccountController implements Serializable {
/**
* Usually a plain POJO or EJB
*/
private @In AccountService accountService;
public void removeAccount(Account account) {
accountService.removeAccount(account);
}
}
/**
* service
*/
@Name("accountService")
public class AccountServiceImpl implements AccountService {
private @In EntityManager entityManager;
public void removeAccount(Account account) {
entityManager.remove(account);
}
}
में अनुवाद किया जा सकता है आप कुछ कार्रवाई जो JSF घटकों में हेरफेर करने के लिए सर्वर साइड पर की जरूरत है, तो के रूप में ऊपर दिखाए गए एक नियंत्रक का उपयोग एक अच्छा विचार हो सकता है
आप
का भी उपयोग कर सकते हैंview >> service >> domain
यह मूल रूप से एक ही दृष्टिकोण ऊपर, लेकिन नियंत्रक
बिना या द्वारा का उपयोग कर का उपयोग कर EntityHome/EntityQuery
view >> domain
रजिस्टर अपने EntityHome रूप /वेब इस प्रकार से निर्मित मध्यस्थ पैटर्न से पता चला है -INF/घटक.xml
<framework:entity-home name="accountHome" entity-class="br.com.ar.seam.Account"/>
अब आप कारखाने तत्व का उपयोग किसी और
<factory name="account" value="#{accountHome.instance}"/>
/**
* view
*
* Notice account will be evaluated as accountHome.instance
*/
<h:commandButton value="Deposit" action="#{account.remove}"/>
कुछ भी नहीं द्वारा एक उपनाम बना सकते हैं। जब या तो EntityHome (जेपीए) या HibernateEntityHome (हाइबरनेट) का उपयोग ध्यान रखें कि आप आमतौर पर कुछ तरीकों को ओवरराइड करने के प्रदर्शन में सुधार करने के रूप में
@Name("accountHome")
public class AccountHome extends EntityHome<Account> {
/**
* Override any method you want right here
*/
}
व्यापार तर्क के बारे में इस प्रकार की जरूरत है ??? आप इसे अपनी सेवा परत के अंदर रख सकते हैं या आप डोमेन-संचालित-डिजाइन दृष्टिकोण का उपयोग कर सकते हैं। here देखें जो आप चाहते हैं कि बेहतर
परीक्षण: सीम बंडल परीक्षण घटकों का उपयोग करें। सीम उदाहरणों पर एक नज़र डालें निर्देशिका एक सिंहावलोकन प्राप्त करने के लिए आप तैनाती के बिना परीक्षण कैसे कर सकते हैं
यदि संभव हो, तो अपनी परियोजना उत्पन्न करने के लिए सीम-जेन का उपयोग करें। सीम इन एक्शन बुक, अध्याय 2, सीम-जेन क्षमताओं को स्टार्टअप करने के लिए एक अच्छी अंतर्दृष्टि प्रदान कर सकता है। ध्यान से पढ़ें।किसी भी सीवन पीढ़ी उत्पन्न परियोजना खोला जा सकता है और NetBeans और ग्रहण में परीक्षण किया गया
JSF घटकों: here
पर एक नजर डालें वहाँ अधिक है: अब और @ बाहर jection प्रयोग न करें। इसके बजाय @ फैक्टरी का प्रयोग करें। @ फैक्ट्री विधि के पक्ष में @ आउट-जेक्शन को बहिष्कृत किया जाएगा।
आई थिंक प्रश्नों बेहतर एक बाहरी फ़ाइल में संग्रहीत किया जाता है क्योंकि
- यह पठनीय है
- यह पोषणीय है
रूप
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<query name="GIFT_CARDS_WITH_BUYER">
<![CDATA[
from
GiftCard c
left join fetch
c.buyer
where
c.recipientNotificationRequested = 1
]]>
</query>
<query name="GIFT_CARDS_WITHOUT_NO_RELATIONSHIP">
<![CDATA[
from
GiftCard
]]>
</query>
</hibernate-mapping>
अच्छा एक प्रकार है, डॉन ' टी
,210एक और संसाधन यहाँ जाता है (पीडीएफ प्रारूप)
- 1. जेबॉस सीम ट्यूटोरियल
- 2. जेबॉस सीम से सीडीआई (जेईई 6)
- 3. सजावटी डिजाइन पैटर्न और आगंतुक डिजाइन पैटर्न
- 4. डिजाइन पैटर्न - रणनीति पैटर्न
- 5. सीम फ्रेमवर्क
- 6. डिजाइन पैटर्न
- 7. डिजाइन पैटर्न
- 8. डिजाइन पैटर्न?
- 9. असंभव तकनीकी ढेर? जेबॉस/सीम/रीस्टेसी/हाइबरनेट/मेवेन
- 10. क्वेरी वस्तु पैटर्न (डिजाइन पैटर्न)
- 11. दुरुपयोग डिजाइन पैटर्न
- 12. OO डिजाइन पैटर्न मान्यता
- 13. समग्र पैटर्न डिजाइन प्रश्न
- 14. सजावट डिजाइन पैटर्न
- 15. रेल में डिजाइन पैटर्न
- 16. प्रमाणीकरण डिजाइन पैटर्न
- 17. डिजाइन पैटर्न? (एमवीसी विकल्प)
- 18. रणनीति डिजाइन पैटर्न
- 19. डेकोरेटर डिजाइन पैटर्न
- 20. वास्तुशिल्प डिजाइन पैटर्न
- 21. नेटवर्क संचार डिजाइन पैटर्न
- 22. डिजाइन पैटर्न: बिल्डर
- 23. PHP memcache डिजाइन पैटर्न
- 24. डिजाइन पैटर्न की क्षमता
- 25. डिजाइन पैटर्न स्विच बयान
- 26. संदेश डिजाइन पैटर्न
- 27. डीएओ डिजाइन पैटर्न
- 28. पायथन डिजाइन पैटर्न
- 29. डिजाइन पैटर्न से परे?
- 30. डिजाइन पैटर्न वीडियो व्याख्यान
वाह! अब यह एक विस्तृत उत्तर है। आपकी अंतर्दृष्टि के लिए बहुत बहुत धन्यवाद! – Shadowman
दाएं, आर्थर यहां सीम लड़का है :) – BalusC
अच्छा जवाब। लेकिन मैं सीम एप्लीकेशन फ्रेमवर्क से दूर रहूंगा। (EntityHome, EntityQuery आदि) –