Advertisement
Guest User

Untitled

a guest
Dec 7th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.74 KB | None | 0 0
  1. @EnableScheduling
  2. - springov ugradjeni schedule
  3. - moram main anotirati time ako hocu da koristim
  4. - trenutak u vremenu kada se metoda poziva -cron
  5. - u properties to definise, greetings.cron = */30 * * * * * (ovo znaci na svakih 30sec bilo kog dana/sata)
  6. - npr da subotom pozivam odgovarajucu metodu
  7. - svaki dan odredjeni cenovnik aktivan
  8. - taj rasporedjivac ne pokrece novi thread za fju i izvrsice se u tom trenutku pod uslovom da thread nije tad zauzet
  9. - initial delay stream i fixed rate stream, drugi nacin da se radi schedule bez crona, isto u app properties fajlu
  10.  
  11.  
  12. Validacija:
  13. - ogranicenja vrednosti atributa, na nivou modela
  14. - @NotEmpty anotacija na primer
  15. - min, max vrednosti
  16. - @CustomAnnotaiton - pravljenje anotacije, pravi se kao interfejs, u paketu validator
  17.  
  18. Baza:
  19. -Instalirati MySql
  20. -username i password treba uneti - svi clanovi tima istu sifru i username
  21. -moze i profili u springu
  22. -u app propertires fajlu se podesava
  23. -app-uros.properties
  24. -run configuration profile uros
  25. -Startuj MySqlServer
  26. -Instaliraj program koji pristupa bazi, MySql workbench
  27. -schema.sql, izvrsava se samo na pocetku, ovo se aktivira automatski, nakon toga ide data.sql u src/main/resources folder, preko data.sql, ubacim neke inicijalne podatke
  28. -svi komuniciraju preko repository, jdbc template-a
  29. - UserRepository, radi sa User beanom, query vraca tabelu, moram da je mapiram na java objekat
  30. - KeyHolder klasa, cuva vrednost kljuca koji je baza izgenerisala
  31. -Ovo zaboravi, koristices HIBERNATE
  32. -Nikako for petlja pri obracanju bazi, hibernate dozvoljava da se kao parametar prosledi lista
  33. -ako menjam objektni model, uradi create bar jednom, inace moze da stoji update da bi se cuvali podaci
  34. -Entity anotacija za klasu koju hocu da bude tabela
  35. -@Id anotacija znaci da obelezje ulazi u primarni kljuc
  36. -Set ne prihvata duplikate za razliku od liste
  37.  
  38. -PROJEKAT
  39.  
  40. -VEZBA TEST
  41. - cascade atribut -> none - ne radi nijednu kaskadnu operaciju,persist snima novokreirane objekte
  42. - fetch eager kaze da se ucitava sve zivo, sve zavisne entitete odmah ucita, lazy preporucljiv kad ima dosta kolekcija
  43. - Repository koncept u springu, za citanje podataka iz baze, Spring Data to omogucava
  44. - nigde ne implementiraj interfejs koji oznacis sa @Repository, samo se pisu nazivi metoda, Spring na osnovu tih naziva generise sql upite
  45. - imaju gotovi interfejsi (CrudRepository)
  46. - za svaki entitet pravim repozitorijum
  47. - findOneByIndex - samo za id je ugradjeno, ako hocu ovako, klasa mora da ima atribut "index"
  48. - za svaki atribut posle By mogu da navedem caseInsensitive
  49. - BillingDetails primer - ima README.txt umesto prezentacije u okviru projekta
  50. - async - example -> ima ovde email servis, pogledaj za projekat
  51. - google nalog - enable less secure apps
  52. - u app properties ide ono podesavanje
  53. - handluj lepo exception za mail
  54. VEZBA TESTIRANJE
  55. - Trebace nam jedinicno i integraciono testiranje, ona dva ne
  56. - @Transactional anotacija, sva obracanja bazi se izvrsavaju u jednoj trasakciji, da ne bi doslo do nekonzistentnosti u bazi, kad se zavrsi test metoda, kad se test zavrsi, te izmene se ponistavaju!!!!
  57. - @Test expected za exception moze da se definise, pa ako se desi exception, test je uspesan
  58. - Moze da se definise skroz druga baza za testove
  59. - Test/java, test/resources
  60. - Coverage as Junit test
  61. - Unit testove za 1 servis napisati, za ove klase sto su hibernate, za ove koje nisu hibernate, njega treba istestirati
  62. - MockMvc salje http request, u integracionom testu vlaidiram da li odgovor servera sadrzi sve informacije oje ocekujem
  63. CACHE EXAMPLE
  64. - bolje umeso liste korisiti set
  65. - hibernate ima L1 i L2 kesiranje
  66. - L1 direkno podrzano, postoji na nivou sesije
  67. - ako u istoj sesiji citam objekat koji sam vec procitao iz baze, procitacu ga iz kesa, necu opet ici u bazu, postoji u jednom tredu
  68. - EH cache externi keser, da bi enable L2 kesiranje
  69. - Cache ne mora na projektu da se implementira, ali treba procitati o njemu zbog onog paper-a za 10ku
  70. CONNECTION POOLING
  71. - ne treba za projekat, ali isto za onaj paper bi bilo pametno
  72. - Ako se ukluci Hikari u aplikaciju onda ona dosta brze radi :D
  73. - kad ukljucim jpa, ukljuci se tomcat automatski
  74. - iskljucim ga iz jpa, pa onda uklucim hikari
  75. - dokumentovanje api odgovora i cuda, api response dokumentuje odg servera, neka swagger dokumentacija, api docs
  76. WEB SOCKETI od proslih vezbi
  77. - Server moze da bude taj koji inicira komunikaciju sa klijentom
  78. - slican kao obican rest
  79. - ima konfiguracionu klasu, sluzi za conf message brokera/servisa
  80. - publisher posalje brokeru, on zna kojim subscirberima treba da posalje
  81. - sockJS za angular, mogu a ne moraju na projektu
  82. TRANSAKCIJE - VRLO BITNO NA PROJEKTU
  83. - commit trajno cuva promene na bazi
  84. - sve promene pre komita su vidljive samo u okviru te transakcije
  85. - ACID - VRLO BITNO cetiri svojstva transakcija, bitno na intervjuima za posao npr
  86. - Cim jedna transakcija selektuje entitet, ostali nmg da mu pristupe, (to je taj neki nivo izolacije) nivo posle kaze sve isto, ali resava i problem phantom read
  87. - pesimisticko zakljucavanje zakljucava celu tabelu i za pisanje i za citanje
  88. - procitaj projekat da vidis gde koje da se implementira
  89. - optimisticko zakljucavanje- tek prilikom snimanja izmenjenog podatka u bazu se proverava da li je podatak menjan ili nije u medjuvremenu
  90. - autokomit - izbegavati, svaki sql upit posebna transakcija
  91. -@Transactional anotacija, oznacava granicu transakcije - ne zakljucava automatski entitete, trba jos stvari odraditi oim ove anotacije
  92. -@Version anotacija, nemoj je zaboravaljati, bas skida ocenu ako se zaboravi
  93. - za sledece vezbe iscitaj projekat vidi gde moze primena transakcija
  94. MESSAGE QUEUE - ne treba za projekat, razmisliti o njemu da li ima gde da se primeni ono za 10, moze pomoci da se resi jedan od problema za veliki broj korisnika
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement