Java Springi blogi
Lehekülg 1, lehekülgi kokku 1 • Share
- whitedoodle
- Liitus : 24/02/2013
Postitusi : 219
Tsauki!
Minust
Mind huvitab Java ning Spring on selle keele populaarseim raamistik, mida võiks endale selgeks teha.
Kuidas ma seda tegema hakkan?
Teeksin läbi mõned õpetused, jagan lõpptulemust ja siis mõtleks välja mingi projekti, millega kuskile suunas liikuda.
Spring booti õpetusi, mida hakkan jälgima:
Deploy
Vaatab kaugele selle projektiga jõuab, võib-olla projekti jaoks teen eraldi teema hiljem. Tahaks selle Raspberry Pi 4 4GB peale deployda, kus docker peale pandud.
Kui kellelgi veel paremaid spring booti õpetusi, java developer kohta pakkuda või projekti ideid, siis hmu
Minust
Töötan hetkel vabakutselise arendajana. Teadmisi laialt, aga plaan on järgmisel aastal Java progejana kuskile tiimi liikuda. Tahaks selgeks saada Java Springi ja Teiega teekonda jagada. Olen omale 2 väiksemat projekti juba teinud - esimene oli Spring MVC'ga selline ToDo list, millele postmaniga saatsin päringuid ja teine Vue.js + Spring bootiga suhtlusportaali taoline lehekülg. Nendest juba tubli 1-2 aastat möödas ja mõtlesin, et saaks selle asja paremini selgeks. Tahaks ära kasutada veel tehnoloogiaid nagu Gradle, mis aitab ehitada hästi projekti ja Postgresql'i, sest tundub selline vabam Oraclega võrreldes. Kui fronti hakkan sellele miskipärast tegema, siis kasutaksin React.js.
Miks Spring?Mind huvitab Java ning Spring on selle keele populaarseim raamistik, mida võiks endale selgeks teha.
Kuidas ma seda tegema hakkan?
Teeksin läbi mõned õpetused, jagan lõpptulemust ja siis mõtleks välja mingi projekti, millega kuskile suunas liikuda.
Spring booti õpetusi, mida hakkan jälgima:
Deploy
Vaatab kaugele selle projektiga jõuab, võib-olla projekti jaoks teen eraldi teema hiljem. Tahaks selle Raspberry Pi 4 4GB peale deployda, kus docker peale pandud.
Kui kellelgi veel paremaid spring booti õpetusi, java developer kohta pakkuda või projekti ideid, siis hmu
Viimati muutis seda whitedoodle (02.07.20 20:29). Kokku muudetud 1 kord
- whitedoodle
- Liitus : 24/02/2013
Postitusi : 219
29.06.20
Hakkasin siis kõige algelisemat spring io tutoriali läbima. Natuke muutsin õpetuses soovitatavaid parameetreid. Genesin sellise springi projekti omale:
Sai kiire /hello mappingu tehtud parameetriga, mis siis tervitab.
+
The @RestController annotation tells Spring that this code describes an endpoint that should be made available over the web.
Proovime nüüd asjale vindi peale tõmmata. Tahaks, et tagastaks sama asja json kujul. Tõmbame lomboki külge build.gradle's:
Sai eraldi controller tehtud, kuhu tõstsin selle hello meetodi ka ümber. Kasutan praegu mingit AtomicLong objekti, et seda id'd kätte saada. Tulevikus tuleks see süsteem ära muuta.
Greeting objekt tuli selline
Hakkasin siis kõige algelisemat spring io tutoriali läbima. Natuke muutsin õpetuses soovitatavaid parameetreid. Genesin sellise springi projekti omale:
Sai kiire /hello mappingu tehtud parameetriga, mis siis tervitab.
- Kood:
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
+
The @RestController annotation tells Spring that this code describes an endpoint that should be made available over the web.
Proovime nüüd asjale vindi peale tõmmata. Tahaks, et tagastaks sama asja json kujul. Tõmbame lomboki külge build.gradle's:
- Kood:
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
Sai eraldi controller tehtud, kuhu tõstsin selle hello meetodi ka ümber. Kasutan praegu mingit AtomicLong objekti, et seda id'd kätte saada. Tulevikus tuleks see süsteem ära muuta.
- Kood:
@RestController
public class GreetingController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
@GetMapping("/greeting")
public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
return new Greeting(counter.incrementAndGet(), String.format(template, name));
}
.
.
Greeting objekt tuli selline
- Kood:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Greeting {
private long id;
private String content;
}
- whitedoodle
- Liitus : 24/02/2013
Postitusi : 219
30.06.20
Panen nüüd JPA ja H2 andmebaasi külge. Hiljem keevitaks postgre andmebaasi asemele.
Gradle'sse dependencied:
Tegin sellise Useri:
Töömaailmas praegu lambda funktsioonid fookuses, aga üritan springi tihti harjutada väikese hulga kaupa. Vaikselt asi areneb, olen enamus asjadest teadlik, aga kui basicud asjad üle vaadata, siis mingi infokild alati on kaasa võtta.
Panen nüüd JPA ja H2 andmebaasi külge. Hiljem keevitaks postgre andmebaasi asemele.
Gradle'sse dependencied:
- Kood:
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.h2database:h2'
Tegin sellise Useri:
- Kood:
@Entity
@Data
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String email;
private String password;
public User(String email, String password) {
this.email = email;
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", email='" + email + '\'' +
", password='" + password + '\'' +
'}';
}
}
- Kood:
public interface UserRepository extends CrudRepository<User, Long> {
List<User> findByEmail(String email);
User findById(long id);
}
- Kood:
@Bean
public CommandLineRunner demo(UserRepository repository) {
return (args) -> {
// save a few users
repository.save(new User("tonight@faval.eu", "enriqueIglesias<3"));
repository.save(new User("pilvik@faval.eu", "pilvedeEmbusesSinaJaMina"));
repository.save(new User("fvlbot@faval.eu", "loeks10000ni"));
repository.save(new User("whitedoodle@faval.eu", "mingiSpringB00ti6pib"));
log.info("Save user 'other@faval.eu': "+ repository.save(new User("other@faval.eu", "6ukokkutulekulekawe")).toString());
// fetch all users
log.info("Users found with findAll():");
log.info("-------------------------------");
for (User user : repository.findAll()) {
log.info(user.toString());
}
log.info("");
// fetch an individual user by ID
User user = repository.findById(2L);
log.info("User found with findById(1L):");
log.info("--------------------------------");
log.info(user.toString());
log.info("");
// fetch user by email
log.info("User found with findByEmail('tonight@faval.eu'):");
log.info("--------------------------------------------");
repository.findByEmail("tonight@faval.eu").forEach(tonight -> {
log.info(tonight.toString());
});
log.info("");
};
}
Töömaailmas praegu lambda funktsioonid fookuses, aga üritan springi tihti harjutada väikese hulga kaupa. Vaikselt asi areneb, olen enamus asjadest teadlik, aga kui basicud asjad üle vaadata, siis mingi infokild alati on kaasa võtta.
- whitedoodle
- Liitus : 24/02/2013
Postitusi : 219
1.07.20
Vaatan, kuidas React.js ja Rest omavahel töötab. Genen uue projekti:
Make jar not war
Siukse tuti tegin läbi: https://spring.io/guides/tutorials/react-and-spring-data-rest/
Ei hakka siin seda tutoriali lahti kirjutama. Tegin koodi enda arust paremaks kui seal õpetuses ja lühendasin lombokiga.
Pro tip, mille õppisin nortali õpetusest:
gradle dependency lühemaks tegemine (antud vs lühendatud) -
Põmst lisasin ühe tutoriali tarkuse siia lisaks, sest kõik apparently oskavad aint mavenit ju. Mõte selles, et tahaks gradlet kasutada ikka ja seal õpetuses mingi plugin teeb kõik su eest ära, et sa selle reacti sinna saaks installida. https://www.youtube.com/watch?v=2GPvZEfzy8A
Noo tuleb välja, et see ka väike komistuskivi, sest vennal mingid custom dependencied loodud ja siis ei saa õigesti buildida ja kirjutab ise skripti et buildida jne jne. Ühesõnaga, cancel see vidiju.
Bäkk to basics. Lähme teeme sama projekti Maveniga. Mis siin ikka aega kulutada, eks hiljem saab mõelda kui väga kiheleb gradle peale minna.
Leidsin siukse tutoriali: https://developer.okta.com/blog/2018/07/19/simple-crud-react-and-spring-boot
Väga kehv tutorial, midagi ei seleta. Tee ainult "copy-paste". Saan ise aru ja oskan googeldada kui millestki aru ei saa.. aga kui pole varem seda teinud, siis suht mõttetu tutorial imo. Aga vähemalt sai asja tööle. Mingid andmed ta sealt backist fronti siis luges, back ja front siis eraldi käima tõmmatud.
Eks homme näeb, kas lähen gradle peale tagasi või mitte, natukene rohkem sain pihta nüüd kuidas see töötab
Vaatan, kuidas React.js ja Rest omavahel töötab. Genen uue projekti:
Make jar not war
Siukse tuti tegin läbi: https://spring.io/guides/tutorials/react-and-spring-data-rest/
Ei hakka siin seda tutoriali lahti kirjutama. Tegin koodi enda arust paremaks kui seal õpetuses ja lühendasin lombokiga.
Pro tip, mille õppisin nortali õpetusest:
gradle dependency lühemaks tegemine (antud vs lühendatud) -
- Kood:
compile group: 'com.github.eirslett', name: 'frontend-maven-plugin', version: '1.10.0'
- Kood:
compile 'com.github.eirslett:frontend-maven-plugin:1.10.0'
Põmst lisasin ühe tutoriali tarkuse siia lisaks, sest kõik apparently oskavad aint mavenit ju. Mõte selles, et tahaks gradlet kasutada ikka ja seal õpetuses mingi plugin teeb kõik su eest ära, et sa selle reacti sinna saaks installida. https://www.youtube.com/watch?v=2GPvZEfzy8A
Noo tuleb välja, et see ka väike komistuskivi, sest vennal mingid custom dependencied loodud ja siis ei saa õigesti buildida ja kirjutab ise skripti et buildida jne jne. Ühesõnaga, cancel see vidiju.
Bäkk to basics. Lähme teeme sama projekti Maveniga. Mis siin ikka aega kulutada, eks hiljem saab mõelda kui väga kiheleb gradle peale minna.
Leidsin siukse tutoriali: https://developer.okta.com/blog/2018/07/19/simple-crud-react-and-spring-boot
Väga kehv tutorial, midagi ei seleta. Tee ainult "copy-paste". Saan ise aru ja oskan googeldada kui millestki aru ei saa.. aga kui pole varem seda teinud, siis suht mõttetu tutorial imo. Aga vähemalt sai asja tööle. Mingid andmed ta sealt backist fronti siis luges, back ja front siis eraldi käima tõmmatud.
Eks homme näeb, kas lähen gradle peale tagasi või mitte, natukene rohkem sain pihta nüüd kuidas see töötab
- whitedoodle
- Liitus : 24/02/2013
Postitusi : 219
02.07.20
Nüüd saab neid JUG'e nüüd muuta/lisada/kustutada. Õpetus läks veel edasi, et see okta api security sinna külge panna, aga selleks vaja sinna kasutaja teha, mis liiga suur hassle.
Täna siuke väiksem edasi liikumine. Vaatasin veel koodi üle, mis siin copy paste kästi panna ilma pikema jututa.
Nüüd saab neid JUG'e nüüd muuta/lisada/kustutada. Õpetus läks veel edasi, et see okta api security sinna külge panna, aga selleks vaja sinna kasutaja teha, mis liiga suur hassle.
Täna siuke väiksem edasi liikumine. Vaatasin veel koodi üle, mis siin copy paste kästi panna ilma pikema jututa.
- whitedoodle
- Liitus : 24/02/2013
Postitusi : 219
Panin spring booti, jpa ja postgre omavahel kokku. Siuke õpetus oli päris hää selle jaoks: https://www.callicoder.com/spring-boot-jpa-hibernate-postgresql-restful-crud-api-example/
Tegin natuke teisi klasse sinna, et mõttega asja läbi teeksin. Arendan seda veel kompleksemaks. Postmaniga testin päringuid, kohe ei hakka fronti ehitama, keskendun springile, siis liigun kiiremini asjaga edasi.
Postgre jaoks kasutan pgadminit:
- whitedoodle
- Liitus : 24/02/2013
Postitusi : 219
Uus päev, uued teadmised
Hakkasin nüüd sellele viimasele tutorialile teste kirjutama. Jamasin suht kaua ühe probleemiga ehk mu tester ei leidnud üles controlleri ja repo beanse. Lahenduse leidsin lõpuks siit: https://github.com/spring-projects/spring-boot/issues/15061
Praegu sain 2 testi tehtud, aga nüüd hakkavad need ludinal tulema.
Hakkasin nüüd sellele viimasele tutorialile teste kirjutama. Jamasin suht kaua ühe probleemiga ehk mu tester ei leidnud üles controlleri ja repo beanse. Lahenduse leidsin lõpuks siit: https://github.com/spring-projects/spring-boot/issues/15061
Praegu sain 2 testi tehtud, aga nüüd hakkavad need ludinal tulema.
- whitedoodle
- Liitus : 24/02/2013
Postitusi : 219
Kirjutasin juurde 2 integratsioonitesti ja projektide jaoks getmappingu et saab üksikult projekte vaadata ilma taskideta. Vasakult alt näeb umbes ära, mis testid olen kirjutanud.
- whitedoodle
- Liitus : 24/02/2013
Postitusi : 219
Kirjutasin juurde 1 integratsioonitesti. Lisatakse projekt ja kaks taski andmebaasi ja siis küsitakse projekti id järgi kõik taskid. Kontrollin, et tagastatud taskide arv on 2.
- whitedoodle
- Liitus : 24/02/2013
Postitusi : 219
Teen praegu läbi sellist tutoriali Udemys: https://www.udemy.com/course/spring-hibernate-tutorial
Nats üle 3h läbitud 41st
Ütleks, et võiks olla rohkem advanced, aga saan aru, et tegijad erinevate taustadega ja pealkirjas ka et algajatele (kuigi see pigem concept, millega 0 taustaga vend ei alustaks).
Nats üle 3h läbitud 41st
Ütleks, et võiks olla rohkem advanced, aga saan aru, et tegijad erinevate taustadega ja pealkirjas ka et algajatele (kuigi see pigem concept, millega 0 taustaga vend ei alustaks).
Soovid vestluses osaleda?
Selleks logi sisse või tee endale kasutaja.
Lehekülg 1, lehekülgi kokku 1
Permissions in this forum:
Sa ei saa vastata siinsetele teemadele