Spring Boot

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

Rejestracja: 3 miesiące temu

Ostatnio: 1 minuta temu

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
Moderator

Rejestracja: 16 lat temu

Ostatnio: 20 minut temu

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

Rejestracja: 11 lat temu

Ostatnio: 1 godzina temu

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” :)


„Pomysł wart jest tylko 1 zł + VAT”

Pozostało 580 znaków

2019-11-06 22:10

Rejestracja: 3 miesiące temu

Ostatnio: 1 minuta temu

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

Rejestracja: 1 rok temu

Ostatnio: 22 minuty temu

Lokalizacja: Silesia

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

Rejestracja: 5 lat temu

Ostatnio: 1 godzina temu

Lokalizacja: Warszawa

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

Rejestracja: 9 miesięcy temu

Ostatnio: 3 tygodnie temu

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

Rejestracja: 11 lat temu

Ostatnio: 1 godzina temu

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.


„Pomysł wart jest tylko 1 zł + VAT”

Pozostało 580 znaków

2019-11-07 11:34

Rejestracja: 5 lat temu

Ostatnio: 1 godzina temu

Lokalizacja: Warszawa

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

Rejestracja: 11 lat temu

Ostatnio: 1 godzina temu

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 :)

„Pomysł wart jest tylko 1 zł + VAT”

Pozostało 580 znaków

2019-11-07 12:07

Rejestracja: 5 lat temu

Ostatnio: 1 godzina temu

Lokalizacja: Warszawa

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

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