Spring Boot

Odpowiedz Nowy wątek
2019-11-06 17:34
0

Cześć, może mi ktoś sensownie wytłumaczyć na czym polega Spring Boot razem z jakimiś przykładami w jaki sposób on pomaga w pisaniu webówki w Springu?
To jest tak, że od początku się pisze w spring-boocie?

Pozostało 580 znaków

2019-11-06 17:38
1

SpringBoot to taki zestaw gotowych konfiguracji Springa do "standardowych zastosowań". Wrzucasz sobie w zależności jakiś spring-boot-starter-parent, robisz maina z @SpringBootApplication i magicznie różne rzeczy zaczynają się dziać same, beany się wykrywają aplikacja startuje servlet, kontrolery się mapują i takie tam. Automatycznie masz w kontekście dostepne różne ciekawe beany jak jakieś metryki na przykład. Dorzucasz spring-boot-starter-jdbc robisz plik properties z informacjami o data source i cyk pojawia sie bean z jdbctemplate skonfigurowanym pod tą bazę... ;]


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
edytowany 1x, ostatnio: Shalom, 2019-11-06 17:40

Pozostało 580 znaków

2019-11-06 19:08
1

Jak kolega wyżej napisał, Spring Boot autokonfiguruje beany na podstawie tego, co znajdzie na classpathie, w propertiesach itp.

Historycznie chodziło o to, aby w kolejnych projektach nie musieć od nowa konfigurować tych samych rzeczy (jak np. TransactionManager).

ALE każda „magia” ma swoją cenę i ja zawsze polecam nie zaczynać nauki Springa od Spring Boota, ale spróbować samemu skonfigurować taką aplikację od zera. Dlaczego tak? Bo potem pojawiają się pytania na forum pt. „Jakiej adnotacji mam użyć, aby osiągnąć X” :)

Pozostało 580 znaków

2019-11-06 22:10
0

A będąc już w temacie Springu, w jakiej skali używa się w dzisiejszej produkcji Spring AOP?

Pozostało 580 znaków

2019-11-06 22:11
2
piotrek2137 napisał(a):

A będąc już w temacie Springu, w jakiej skali używa się w dzisiejszej produkcji Spring AOP?

Oby w żadnej. Najgorsza magia w Springu jest pisana na aspektach


Pozostało 580 znaków

2019-11-06 22:26
2
piotrek2137 napisał(a):

A będąc już w temacie Springu, w jakiej skali używa się w dzisiejszej produkcji Spring AOP?

J/W
Spring sam w sobie dużo używa AOP (głównie security, transakcje) ale samemu lepiej korzystać albo z technik OOP (kompozycja, proxy/dekorator) albo z FP (higher order function)
Zamiast używac np. AOPa do cachowania lepiej stworzyć rzeczywista klase (nie mam na mysli dynamic proxy) która będzie przechwytywac wywowłanie metod z klasy której wyniki cachujemy zamiast polegac na cudach AOPa


Nie pomagam przez PM. Pytania zadaje się na forum.
Dzięki, myślałem, że dalej będę musiał się z tym zarzynać... - piotrek2137 2019-11-06 22:32
@piotrek2137: generalnie warto to trochę poćwiczyć, chociazby po to żeby wiedziec jakie moga być z tym kłopoty xD - scibi92 2019-11-06 22:40
Możesz nie lubić, ale jak spotkasz w pracy to będziesz musiał polubić :) chyba ze powiesz zespołowi, ze nie robisz AOP :) - Charles_Ray 2019-11-07 07:30

Pozostało 580 znaków

2019-11-07 00:19
1

Akurat z obecnością AOP w projektach komercyjnych parę razy się spotkałem. Głównie do logów audytowych i performance'owych, czasem do cache'owania. Moim zdaniem warto wiedzieć z czym się to je, aby znać wady i zalety tego podejścia.
Polecam też przesłuchać ( tutaj akurat raczej o wadach AOP na przykładzie adnotacji @Transactional, która z wykorzystaniem tegoż AOP działa):

edytowany 1x, ostatnio: pworoniecki, 2019-11-07 00:21

Pozostało 580 znaków

2019-11-07 07:29
0

Wbiję kij w mrowisko, ale pytanie było czy się używa i odpowiedz brzmi: tak. Jest to mechanizm służący do ogrywania tzw. cross-cutting concerns.

Użycie @Transactional, @PreAuthorize czy @HystrixCommand jest na porządku dziennym. Wszelkie odstępstwa to albo brak wsparcia biblioteki (np. Resilience4j, ale pewnie do czasu), albo próba ograniczenia magii (np. stosując prog. funkcyjne) - słuszne, ale nie jest to podejście powszechne IMHO.

Pozostało 580 znaków

2019-11-07 11:34
1

@Charles_Ray: "jedzmy gówno miliony much nie moga się mylić"
Akurat transactional łatwo opędzlować TransactionTemplate
Po za tym jeśli będziemy zgadzać się na syf w kodzie to syf zostanie, a mimo wszystko pewne idee coraz bardziej przebijają się do mainstreamu (np. o mockosturbacji)


Nie pomagam przez PM. Pytania zadaje się na forum.
edytowany 1x, ostatnio: scibi92, 2019-11-07 11:35

Pozostało 580 znaków

2019-11-07 11:48
0
  1. Nie słyszałem określenia "mockosturbacja", raczej "overmocking". Rozumiem, że wzorujesz się na @jarekr000000, który chyba jest autorem tego określenia.
  2. Overmocking to w większości przypadków (oczywisty) błąd, natomiast nie nazwałbym użycia annotacji błędem. To kwestia wyboru rozwiązania, które opiera się na różnych driverach. Świat nie jest czarno-biały.
  3. Mówiłem, że wbiję kij w mrowisko :)

Pozostało 580 znaków

2019-11-07 12:07
1

@Charles_Ray:
co jeśli na metodzie masz @cacheable i @transactional?
Będzie cachować a później robić transakcje czy najpierw robić transakcje i cachować?
A może będzie cachować i robić transakcje później?
A jesli masz 3 adnotacje, to która się wykona po której?


Nie pomagam przez PM. Pytania zadaje się na forum.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0