Кодду жазуу - согуштун жарымы. Ал дагы эле туура иштеши керек. IDE жана мүчүлүштүктөрдү оңдоо куралдары бул жагынан бизге көп жардам берет.
Мисал катары IntelliJ IDEA колдонуу менен, ал иштегенде codeубузга эмне болорун кантип билсек болору менен таанышууну сунуштайм. Мүчүлүштүктөрдү оңдоо - кеңири тема, андыктан бул карап чыгуу суучул сыяктуу терең сууга түшүүнү сунуш кылbyte. Бирок сноркингге ишенем)
Андан кийин биз serverде тандап алган долбоорду иштетишибиз керек. Бул процесс долбоордун өзүнөн таба турган кичинекей documentацияда сүрөттөлөт:
Андан кийин, server журналында биз жаңы долбоор кантип "орноштурулганын" көрө алабыз:
Андан кийин, биз баракка барабыз жана биз " Мүчөлөрдү каттоо
Эгер баары жакшы болсо, биз төмөндө бул тууралуу билдирүүнү көрөбүз:
Табылган булакка өтүү үчүн Enter баскычын басыңыз:
Ошентип, биз каттоодон өтүп жатканда, memberController.register деп аталганын көрүп жатабыз, сыягы, бул кандайдыр бир java классы болушу керек. Басыңыз
Чынында эле, мындай класс бар. Келгиле, ага киришели. Сыягы, реестр ыкмасы болушу керек. чыкылдатып
Чынында, биз аны таптык. Кыязы, каттоо бул жерде, memberRegistration.register пайда болот . Ctrl баскычын басыңыз жана ага "жыгылып кетүү" ыкмасын басыңыз:
Келгиле, азыр "тыныгуу чекити" же Break чекити белгилейли. Бул codeдун аткарылышы кайсы жерде тыным керек экенин көрсөткөн маркер. Бул учурда биз көптөгөн кызыктуу нерселерди үйрөнүүгө мүмкүнчүлүк алабыз. Аны коюу үчүн, саптын номеринин оң жагындагы жерди басышыңыз керек.
http://localhost:8080/wildfly-hibernate4 бетинде талааларды толтуруп, Каттоо баскычын басыңыз. Панелдеги идея сөлөкөтү өчүп калат:
Идеяга өтүп, мүчүлүштүктөрдү оңдоо панелинде көптөгөн кызыктуу маалыматтар бар экенин көрө аласыз:
Бул жерде сиз an objectтин талааларынын маанисин көрө аласыз. Мисалы, катталган мүчө эмнеден турат:
Абдан жакшы. Дагы эмне кылсак болот? Биз контексттик менюну ачып, ошол жерден Экранды баалоону тандайбыз (же меню аркылуу Run -> Баалоо туюнтмасы). Дагы жакшы, мүчүлүштүктөрдү оңдоочу башкаруу панелинде:
Бул токтоо чекитиндеги супер сонун жөндөм, ал codeдук чекит кире алган бардык нерсеге жетүү, ошол учурда аткарыла турган codeду аткаруу. Мисалы:
Мүчүлүштүктөрдү оңдоочу башкаруу панелинде программанын агымын башкарууну каалаган жерге жылдыргыңыз келген башкаруу баскычтары да бар. Бул сыйкыр эмеспи?) F8 (Step Out) баскычын басуу менен биз методдорду киргизбестен codeду басып өтөбүз. F9 баскычын басуу менен, биз мүчүлүштүктөрдү оңдоочу менен code саптары аркылуу жүрүүнү токтотуп, мүчүлүштүктөрдү оңдоочуга программанын аткарылышын көзөмөлдөөнү беребиз. Эгерде биз F7 (Step Into) баскычын бассак, анда биз жолдо жолуккан ар бир ыкманы киргизип, codeдон өтөбүз. Айтмакчы, бул маалымат блогуна өзгөчө көңүл буруңуз:
Бул биз турган жипти жана учурдагы жиптин стекиндеги ыкмаларды көрсөтөт. Бирок бул баары эмес. Ыңгайлуу болуу үчүн, алHowтар өтмөгүн ачсаңыз болот. Бул үчүн, ал иштетorши керек:
Азыр алHowтар кошумча барагында биз ыкмадан методго өтүү жөнүндө маалыматты көрөбүз, анткени Step Into аркылуу code аркылуу жүрө баштады.
Көрүнүп тургандай, биз дайыма эле программа аткарылып жаткан жерге которула албайбыз. Биз азыр "getDelegate:469, AbstractEntityManager(org.jboss.as.jpa.container)" деген жердебиз. Бирок иш жүзүндө биз ишке ашыруудабыз. Бул бул тарабынан көрсөтүлгөн класс менен тастыкталат:
Келгиле, муну карап көрөлү. Белгилүү болгондой, ал учурдагы an objectти көрсөтөт. Биз TransactionScopedEntityManagerдебиз. Эмне үчүн Idea бизге codeду көрсөтө алbyte? Чындыгында IntelliJ Idea учурда эч кандай TransactionScopedEntityManager жөнүндө билбейт, анткени ал биздин долбоорго байланыштуу эмес (ал долбоордун көз карандылыктарында эмес). Колдонмо serverи иштеп жатканда, анын ичинде көптөгөн, ар кандай китепканалар иштейт. Бирок биз алар жөнүндө абдан аз билебиз, анткени... жалпысынан, биз ички иштерге киришүүнүн кереги жок, биз жөн гана иштешибиз керек. Бирок кээде жумуш же спорттук кызыкчылык муну талап кылат. Андан кийин, класс codeун кайдан алууну бorши үчүн, бул китепкана жөнүндө Ideaга маалымат беришиңиз керек.
Эми жыйынтыкты күтөлү. Ал сени күтпөйт)
Эми биз анын баштапкы codeун бир жерден табышыбыз керек. Жана 2 вариант бар:
Эми көз карандылыкты сүрөттөөгө өтөлү. Бул баракта сиз баштапкы codeду жүктөп алсаңыз болот. Жакшы, азыр бизде code жүктөлүп алынды. Болгону китепкананы туташтыруу гана калды. Бул абдан жөнөкөй байланыштырат. Биз долбоордун жөндөөлөрүн ачышыбыз керек:
Ал жерден биз "Китепканаларды" тандап, алынган баштапкы codeдорду "Булактар" бөлүмүнө кошобуз, ал эми "Класстар" бөлүмүндө биз Far Manager аркылуу тапкан WildFly каталогунан китепкана jar файлын көрсөтөбүз. Андан кийин, биз F7 аркылуу чабыттаганда, биз AbstractEntityManager жана TransactionScopedEntityManager класстарынын мазмунун көрөбүз, ошондой эле Ctrl+N аркылуу класстар боюнча издөө аркылуу жеткorктүү болот.
Эми токтотуу чекити аты Максимorан болгондо гана күйөт. Көбүрөөк баскычын чыкылdateу менен, Break Points орнотууларынын кеңейтилген топтому сизге жеткorктүү болот.
Жана тандалган өзгөчө түрү үчүн жаңы эреже түзүү:
Мисалы, NPE үчүн:
#Вячеслав
Киришүү
Кодду жазуунун бир бөлүгү аны оңдоо болуп саналат. Жана эгер сиздин тапшырмаларыңызда code колдоо камтылса, мүчүлүштүктөрдү оңдоо дагы көп болот. Мындан тышкары, мүчүлүштүктөрдү оңдоонун жардамы менен сиз колдонулган китепканалардын жана фреймворктордун ишин башка бирөөнүн codeунун джунглиине чөмүлүүгө мүмкүн болушунча терең изилдей аласыз. Биздин сууга түшүү үчүн бизге керек болот:- Өнүгүү чөйрөсү: Free IntelliJ Idea Community Edition
- Maven орнотулду
- WildFly Application Server 12.0.0.Final
- Расмий мисалдар үчүн булак codeу: Quick Start Source Code
bin\standalone.bat
(же *nix системалары үчүн standalone.sh) колдонуп баштайбыз. (!) --debug параметринен баштоо маанилүү.Биз serverдин башталышын күтөбүз. жылы башталганын жазып, убактысын көрсөтүп беришет. Ал төмөнкүдөй көрүнөт:
\hibernate4\README.adoc
Бул documentацияда көрсөтүлгөндөй, биз hibernate4 каталогунда буйрукту иштетишибиз керек: mvn clean package wildfly:deploy
Биз куруу ийгorктүү аяктады деген билдирүүнү күтүп жатабыз:
http://localhost:8080/wildfly-hibernate4
" формасы менен баракты көрсөтүшүбүз керек . Ошентип, эксперименттерге даярдыгыбыз аяктады жана биз баштай алабыз)) Алдыда ачык-айкын болушу үчүн көптөгөн сүрөттөр болот, андыктан даярданыңыз)
Remote Debug
Ошентип, биз Debug режимин конфигурациялашыбыз керек, биздин IDE колдонмо serverинде codeдун аткарылышын көзөмөлдөйт. IntelliJ Idea эки versionда келет: бекер (Коомчулук) жана акы төлөнүүчү (Ultimate). Акыркысы расмий түрдө EAP түрүндө сыналышы мүмкүн. Ultimate versionсында бардыгы жөнөкөй - тиркеме serverин мүчүлүштүктөрдү оңдоо режиминде түздөн-түз IDEден ишке киргизүүгө болот. Бирок Коомчулуктун versionсында сиз бир нече нерсени кол менен жасашыңыз керек. Ошондуктан, бир кыйла татаал ишти карап көрөлү, б.а. Коомдоштук versionсында жөндөө. Коомчулуктун versionсында кээ бир чектөөлөр бар. Атап айтканда, сиз андан колдонмо serverин иштете албайсыз. Бирок сиз алыстан мүчүлүштүктөрдү оңдоону (Remote Debug) орното аласыз, качан өзүнчө жерде бизге керектүү тиркеме менен иштеп жаткан server бар. Келгиле, бул жерден орнотуунун сүрөттөлүшүн колдонолу: IntelliJ Idea коомчулугунун чыгарылышында Wildflyди алыстан оңдоо (8787 порту үчүн Remote Run конфигурациясын орнотуу). Конфигурациялангандан кийин, биз жаңы конфигурациябызды Debug режиминде ишке киргизебиз:Мүчүлүштүктөрдү оңдоо процесси
Жазууну сактоо менен мүчүлүштүктөрдү оңдойлу. Бул үчүн биз биринчиден кайсы жерди изилдей турганыбызды чечишибиз керек. Терезеден караганда, бизге "Катталуу" баскычы керек. Келгиле, аны codeдон табалы. Демек, бизге элемент керек, ал текст болушу керек: "Каттоо". Же ага кандайдыр бир тиешеси болушу керек. ЧыкылдатыпCtrl+Shift+F
, тырмакчанын ичинде Каттоо дегенди издеңиз. index.xhtmlде бирөө бар экенин көрүп жатабыз.
Ctrl+N
жана издеңиз:
Ctrl+F12
, каттоо ыкмасын изде
Мүчүлүштүктөрдү оңдоо үчүн үчүнчү тараптын китепканаларын туташтыруу
Биринчиден, биз өзүбүз түшүнүшүбүз керек, бул кандай китепкана туталышы керек. Биринчи жол абдан татаал - Интернетте издөө. Натыйжаларды табуу ылдамдыгы жана натыйжасы долбоордун канчалык жакшы башкарылганына көз каранды. Мисалы, WildFly ачык репозиторийге ээ. Ошентип, биз Google "TransactionScopedEntityManager" болгондо, https://github.com/wildfly/wildfly/tree/master/jpa/subsystem дарегине өтүп , бизге wildfly-jpa керек экенин табабыз. Экинчи ыкма туура. Сервер кайда, ошол жерден караңыз. Буга ар кандай каражаттар жардам берет. Мисалы, Windowsта ал Far Manager болушу мүмкүн . Төмөндө издөө алгоритминин мисалы келтирилген. Аны орнотуп, ишке киргизгенден кийин, табулатураны колдонуңуз , өтмөктөрдүн бирине өтүңүз,Alt+F1
сол өтмөктү же Alt+F2
оңду колдонуп, катуу дисктен бизге керектүү бөлүмдү тандаңыз. Орнотуудан кийин Far Manager каталогунун өзү Far Managerде ачык болушу толук мүмкүн. Дисктин тамырына өтүү үчүн, басыңыз Ctrl + \
. Колдонуу менен, Alt+F
издөө терезесин ачып, каталогдун атын терип баштаңыз жана каталог табылгандан кийин Enter баскычын басыңыз. Бул издөө акылдуу жана издөө текстине дал келген каталогдорду баса белгилейт. Эгер сиз папкалары жок белгилерди киргизсеңиз, анда мындай белгилерди киргизүүгө болбойт. Бул жол менен биз колдонмо serverинин каталогуна барабыз. Модулдар serverде кайда жайгашканын билбейбиз дейли. Балким, бул жашооңузда биринчи жолу WildFly жөнүндө угуп жаткандырсыз. Ошондуктан, Alt+F7
файлдарды издөө үчүн дароо бул жерди басыңыз. Демек, логика айтат: бизге китепкана менен файл керек. Башкача айтканда, бизге банка керек. Ичинде TransactionScopedEntityManager классы болушу керек. Анткени класс = файл, андан кийин "камтыган" издеңиз. Башкача айтканда, мындай нерсе:
- Супер пайдалуу versioneye.com
- Борбордук Maven репозиторий
GO TO FULL VERSION