XML vs Java config w springu

XML vs Java config w springu
azalut
  • Rejestracja:około 12 lat
  • Ostatnio:ponad rok
  • Postów:1129
0

siemacie
pisze aplikacje, dla nauki, zabawy i ćwiczenia i właśnie pojąłem decyzje, że tym razem nie bede używał javaconfig i spring boota, jak w poprzednich projektach, a polece oldschoolem z XMLem (web.xml + configi springa w xml).

Doszedłem do któregoś tam momentu w projekcie i zastanawiam się czy mnie nie pogięło, że uzywam dependencies springa 4.x.x, a configi mam w xml..

a zrobiłem to tylko po to, zeby sobie przejrzeć ten XML, zobaczyć czy może jakiś kruczek-różnice znajde miedzy javaconfig a xmlem; w końcu jest szansa, że będzie mi dane prowadzić jakiś starszy projekt z xml'ami, no to ciekawość wzięła górę

wyprowadźcie mnie prosze z błędu albo dobijcie, ze mnie pogieło; którą konfiguracje wybralibyście do projektu teraz?
czy doesnt matter?

edytowany 1x, ostatnio: azalut
niezdecydowany
niezdecydowany
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 9 lat
  • Lokalizacja:Bieszczady
0

Z poziomu ficzerów springa - raczej bez znaczenia - według mnie czytelność jest zdecydowanie lepsza w przypadku konfiguracji przez xml'a.

Chociaż spring security ładniej wygląda w konfiguracji javovej, te method chaining wygląda ślicznie.


"Perhaps surprisingly, concurrent programming isn’t so much about threads or
locks, any more than civil engineering is about rivets and I-beams."
0

Oczywiście, że Java config - bo działa CTRL + Spacja i nie można po prostu walnąć się wstukując jakiegoś propertiesa. Jest bardziej przejrzyście.

Ale mając Spring Boota i Java Config, to faktycznie - pogięło Cię.

Shalom
W xmlu też działa ...
azalut
  • Rejestracja:około 12 lat
  • Ostatnio:ponad rok
  • Postów:1129
1

@niezdecydowany
mam to samo zdanie jeśli chodzi o czytelność - xml jest znacznie lepszy i troche nie rozumiem pchania tego wszystkiego w klasy javowe - to sie kupy nie trzyma na moje oko

jednak zgodze się też, że security troche ładniej wygląda i wygodniej sie konfiguruje "klasowo"

po coś jednak te javaconfig wymyślili i chodzi mi po głowie, żeby przepisać to bez xmla, poki mam jeszcze szanse

@nie mam konta
dlaczego pogięło z bootem + javaconfig? przecież tam aż sie prosi żeby nie używać XML
jedna adnotacja zastępuje kilka/kilkanaście adnotacji

edytowany 1x, ostatnio: azalut
Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
2

A ja tam jestem oldschoolowy i uważam że główną konfiguracje w xmlu a reszta adnotacjami w kodzie :P


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
azalut
a przypuśćmy: konfiguracja spring security w xmlu, a klasa UserDetailsService implementowana jako klasa javowa np @Component i podłączona w XMLu - przeszłoby takie coś? czy chodzi ci tylko o adnotacje typu @Transactional
Shalom
Byłoby to mocno mylące dla czytelnika jakbyś w xmlu wstrzykiwał coś co deklarujesz adnotacją typu @Component
azalut
no to okej, napisze klase i zrobie bean w xml, wtedy przejdzie?
Shalom
To już prędzej :)
azalut
  • Rejestracja:około 12 lat
  • Ostatnio:ponad rok
  • Postów:1129
0

czyli finalnie: XML z springiem 4+ jest akceptowalny? czy lepiej zmieniać na javaconfig
jest jakiś ficzer który widnieje pod javaconfig, a pod xml nie?

niezdecydowany
niezdecydowany
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 9 lat
  • Lokalizacja:Bieszczady
0

ja bym się zapytał dla aplikacji która ma ~4 lata - javaconfig jest akceptowalny ...


"Perhaps surprisingly, concurrent programming isn’t so much about threads or
locks, any more than civil engineering is about rivets and I-beams."
azalut
ale jak widać np @Shalom wciąż pozostaje przy xml dla tej najważniejszej części
niezdecydowany
niezdecydowany
i ja się z tym zgadzam, i jednym z ważniejszych elementów tej zabawy jest to że konfiguracji xml'owej nie musisz ... kompilować :D szachmat
M9
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 6 lat
0

Dla typowej konfiguracji preferuje XML. Nie widzę wartości dodanej w konfiguracji z poziomu Javy, poza modą (moda to może być coś niezwykle głupiego). Nie rozumiem tego demonizowania XML-a. Zwłaszcza, że konfiguracja Java wymaga ponownej rekompilacji projektu (nie wystarczy podmienić pliku konfiguracyjnego dla drobnej zmiany).

Zdarzało mi się korzystać z konfiguracji z poziomu Javy dla takich rzeczy jak WebSockets, STOMP over WebSockets. Głównie dlatego, ze były niezłe sample i już nie chciało mi się tego tłumaczyć na XML (byle szybko uruchomić).

Co do konfiguracji klas czy maja być zarządzalne z poziomu Springa prawie zawsze adnotacje.

edytowany 1x, ostatnio: margor90
KR
  • Rejestracja:około 14 lat
  • Ostatnio:prawie 3 lata
  • Postów:353
0

W domu preferuje jednak konfiguracje javowa. Zadnego xmla do konfiguracji w projekcie. Korzystam z JRebel i wiekszosc konfiguracji da sie przeladowac w locie. Po prostu jest to dla mnie czytelniejsze niz xml. Najwazniejsze wartosci moge sobie zczytac uzywajac springowego PropertySource, zeby nie trzymac ich na stale w kodzie. Jesli chodzi o glowna konfiguracje springa, kontrolery, serwisy, repozytoria to tylko adnotacje. Szybciej mi sie porusza w samym kodzie javy niz skaczac przez xmle.

Wszystko kwestia gustu :)

azalut
  • Rejestracja:około 12 lat
  • Ostatnio:ponad rok
  • Postów:1129
0

to widze, ze zdania sa mocno podzielone ;)
a jak to wyglada w korpo warunkach? nowe projekty chetniej sa stawiane na xml czy javaconfig?

moze ktos z was ma te przyjemnosc pisac od nowa, a nie naprawiac :P

niezdecydowany
niezdecydowany
korpowarunki i nowe produkty heszheszheszheszhe
Koziołek
Moderator
  • Rejestracja:około 18 lat
  • Ostatnio:22 dni
  • Lokalizacja:Stacktrace
  • Postów:6821
0

A ja się wyłamię i powiem adnotacje.

Po pierwsze compilation-time check potrafi zrobić dużo dobrego.
Po drugie konfiguracja testów integracyjnych jest znacznie prostsza, bo runner potrafi sobie dobrać odpowiednie rzeczy.
Po trzecie JRebel lepiej działa z konfiguracją javową.
Po czwarte xml bywa nieczytelny w przypadku gdy odetnie nas od IDE.


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
Zobacz pozostałe 9 komentarzy
airborn
Dlatego w mojej piaskownicy każdy kawałek kodu przechodzi przez review niezależnie od stopnia seniorowatości ;)
azalut
@airborn a xml czy java? :D
airborn
chciałem tego uniknąć... adnotacje, bo nie uważam siebie za masochistę
azalut
;) w sensie, że adnotacje są krótsze i czytelniejsze niz xml?
azalut
  • Rejestracja:około 12 lat
  • Ostatnio:ponad rok
  • Postów:1129
0

no dobra, a jak bardzo złe byłoby użycie XML do pewnej części, a JavaConfig do drugiej, w zależności co wygodniej i czytelniej?

niezdecydowany
niezdecydowany
ale takie dzielenie nie jest czytelne, w ogóle po co te dywagacje, UŻYJ TEGO CO CI WYGODNIEJ

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.