Spring MVC veya Spring Boot [kapalı]


114

Büyük bir şirket (web) projesi için Spring MVC veya Spring-Boot kullanmanızı önerir misiniz?

Spring-Boot, konfigürasyon açısından Spring MVC'ye göre çok kolaydır.

Spring-Boot kullanıp kullanmam, Spring MVC ile aynı avantajlara sahip olabilir mi?

Ne önerirsiniz?


29
Önyükleme MVC kullanabilir (ve otomatik olarak yapılandırabilir) çünkü seçim MVC ile Önyükleme arasında değildir . "Önyükleme veya Önyüklemesiz" mi demek istiyorsan? o zaman şirketinizin yeniliğe (ve ilişkili risklere) ne kadar açık olduğuna bağlıdır. Her iki durumda da öneri soran bir konu dışı burada.
kryger

Cevabınız için teşekkürler. Yaylı önyüklemenin yay mvc'ye yapılandırılabileceğini fark ettim. Ancak Spring-Boot veya Spring MVC kullanıp kullanmamaya kafam karıştı, her ikisi de aynı özelliklere sahip (Spring boot kolay kurulum). Kullandığınız deneyimlerinizden mi?
Diego

1
İlkbahar önyüklemesi, bir uygulamanın varsayılan çekirdeklerini yapılandırmak ve bağımlılıkları yönetmek için zaman kazandırır. Ancak, yaylı önyükleme ve yaylı mvc'nin farklı hedefleri vardır. Spring-mvc ile spring-boot kullanmak istiyorsanız, yapabilirsiniz ve özel yapılandırmayı geçersiz kılmak istemediğiniz sürece hiçbir şey ayarlamanıza gerek yoktur.
Eddú Meléndez

Cevabınız için teşekkürler. Gelecekteki projem için Spring -Boot kullanacak. Spring -Boot'u yapılandırmanın daha kolay olduğunu ve çok zaman kazandırdığını düşünüyorum.
Diego

2
Ve yaylı önyükleme, bir savaş ambalajı ve harici bir servlet kabı ile uyumlu değildir, bkz. 58.2 Yürütülebilir kavanoz ve savaş dosyalarını paketleme
Nicolas Labrot

Yanıtlar:


106

Kişisel tavsiyem, Spring Boot'u birçok nedenden dolayı kesinlikle kullanmanızdır.

  1. Birincisi Boot'un "Baharın geleceği" olduğudur. Bu, Boot ile Spring topluluğunun birçok taahhüdünden yararlanabileceğiniz anlamına gelir. Günümüzdeki Spring projelerinin çoğu Boot ile tamamen entegredir, hatta topluluk Boot'a dayalı birçok uygulama geliştirmeye başlar. Örneğin, yönetmek ve izlemek için. Spring Boot Admin'i görmeyi önerebilirim

  2. Spring Boot ile, çok kullanışlı olan üretime hazır özelliklerle uygulamanızı iyileştiren, yönetme ve izleme için aktüatör ve uzaktan kumanda kabuğu gibi çok güzel ve kullanışlı özelliklerden yararlanabilirsiniz.

  3. Çok hoş ve güçlü özellikler ve yapılandırma kontrolleri - uygulamanızı application.properties/yml önyükleme ile yapılandırabilir ve çok basit ve etkileyici bir şekilde genişletebilirsiniz, hatta yönetimi geçersiz kılma açısından bile çok güçlüdür.

  4. İlk mikro hizmete hazır platformlardan biri ve bence bugünlerde en iyisi! Önyükleme ile bir mikro hizmet projesi oluşturmasanız bile, yukarıda anlattığım tüm özelliklerden yararlanabilecek otomatik tutarlı bir jar'e sahip olduğunuz modern bir yaklaşımdan yararlanabilirsiniz veya tercih ederseniz, Klasik bir savaş olarak ambalajlayın ve savaşınızı istediğiniz herhangi bir konteynere yerleştirin.

  5. Projenizin başlatma ve yapılandırma aşamasını önemli ölçüde azaltan akıllı ve geleneksel bir yapılandırma yaklaşımının kullanılması. Aslında, bağımlılık yönetimini basitleştiren bir dizi başlangıç ​​Maven veya Gradle bağımlılığınız var. Daha sonra otomatik konfigürasyon özelliği sayesinde, 4. İlkbaharda Koşullu Konfigürasyon çerçevesi aracılığıyla tanıtılan birçok standart konfigürasyondan yararlanabilirsiniz. Sadece çekirdeğinizi içinde görebileceğiniz konvansiyona göre tanımlayarak özel konfigürasyonlarınızla geçersiz kılabilirsiniz. Önyükleme bağımlılığının otomatik yapılandırmalı JAR'ı. Spring'in açık kaynak olduğunu ve kodu görebileceğinizi unutmayın. Ayrıca bence belgeler de iyi.

  6. Yay başlatıcı, bu bağlantıdan elde edilebilecek harika bir araçtır: https://start.spring.io/ , projenizi çok hızlı bir şekilde oluşturmak için çok harika bir araçtır.


Umarım bu düşüncenin en iyi çözümün ne olduğuna karar vermenize yardımcı olur.


1
Cevap için teşekkür ederim. Burada biraz kafa karışıklığım var. persistence.xmlKonfigürasyon dosyası ve diğer birçok özelliği kullanmak zorunda kalmayacağım için projemde Spring 4 kullanmak istiyorum . Spring boot'da Spring 4'ün özelliklerini alabilir miyim? Cevabınız evet ise nasıl yapılır
engerek

2
Oldukça vanilyalı şeyler yapmayı planlıyorsanız, hemfikir olurum. Önyüklemeye gitmeye çalıştığım zamanların miktarı baş ağrısına neden oluyor ve ekranda bağırmam çünkü önyükleme, sahip olduğum bağımlılıklar konusunda çok akıllı olmaya çalışıyor ve işleri kapatmak için işleri açmaktan daha fazlasını yapmak zorunda kalıyor. Önyükleme gerektirmeyen bir proje kullanarak. Kabusa dönüşen birkaç şey, bir db önbelleğine ihtiyaç duyulduğunda LDAP ile çalışmaya çalışmak veya birden fazla DataSource yapılandırmak, JdbcTemplate oluşturmaya ve benden habersiz hazırda bekletme örnekleri oluşturmaya ve hatta h3 veritabanını kendi başına başlatmaya çalışıyor.
Brett Ryan

1
Mülk yapılandırması da nasıl kontrol edeceğimi çözemediğim bir şey. Önyükleme gerektirmeyen projelerde, JSP ve SpEL'de kullanabildiğim, ancak aynı şeyi önyüklemeyle nasıl yapacağımı bulamadığım uygulama özellikleri dosyamdaki özellikleri okumak için aşırı yüklenmiş bir AppConfig sınıfı oluşturabilirim.
Brett Ryan

1
Bu cevap hala geçerli mi (altı ay sonra) Bunu araştırıyorum ve hala insanların harika Spring Boot'a sahipken neden hala Spring'i kullandıklarını anlamıyorum? Yani Spring Boot'u çok seviyorum, kendini yapılandıran akıllı yazılım fikri benim için çok harika ama kafam çok karıştı! yine insanlar harika Spring Boot'a sahipken neden hala Spring'i kullanıyor?
Ahmad Hajjar

1
@AhmadHajjar, yeni bir proje için kesinlikle Spring Boot ile giderdim. Şu anda tamamen olgun bir araçtır. Ancak, insanların hala basit Spring projelerini sürdürmeleri gerektiğini unutmayın, bunlardan bazıları Boot'a geçmek için basit olabilir ve diğerleri muhtemelen o kadar büyük ki geçiş sürecini bir acı haline getirebilir.
Xtreme Biker

39

Spring Boot, Spring MVC'yi kullanıyor! Sadece otomatik olarak yapılandırılır ve spring-boot-starter-web jar'i içe aktardığınızda kullanıma hazırdır. Yani temelde Spring Boot kullanıp kullanmayacağınızdan veya Spring Uygulamanızı manuel olarak kurup kurmayacağınızdan bahsediyorsunuz ...


4
Evet _ + 1, Spring boot sadece otomatik
konfigürasyon

@Plain_Dude_Sleeping_Alone Spring MVC'nin bir çerçeve olduğunu anlıyorum. Spring Boot'un sadece bir otomatik yapılandırma aracı olduğunu söylüyorsunuz, aynı zamanda bir Çerçeve olarak da düşünülebilir mi?
Jesse

@Jesse, her ikisi de araçlar veya çerçeveler olarak düşünülebilir. Ancak burada insanların empoze ettiği şey, yaylı önyüklemenin daha çok Spring mvc web çerçevesi için bir araç olduğudur. Spring mvc için ihtiyaç duyulan hazır bir konfigürasyonu sağlayacaktır, ancak ganimetin kendisi bir çerçeve formundadır. Son olarak, ingilizcem o kadar kötü ki yüzünü çoktan yakabilir. Hehe
Plain_Dude_Sleeping_Alone

24

Spring Boot için kesinlikle gidebilirsiniz. Kurumsal uygulama oluşturmak için Spring Boot'u kullanmaya zaten başladık. Aşağıda birkaçını listeleyen birçok avantajı vardır:

  1. Proje yapılandırmanız oldukça basit olacak. XML dosyasını tutmanıza gerek yok, bilmeniz gereken tek şey application.properties dosyasını ne kadar verimli kullanabileceğinizdir .

  2. Birçok varsayılan uygulama sağlar, örneğin bir e-posta göndermeniz gerekiyorsa, varsayılan olarak JavaMailSender

  3. Spring Hibernate ve JPA entegrasyonu oldukça basit olacak.

Bunun gibi birçok var, ihtiyaçlarınıza göre keşfedebilirsiniz.


Açıklamanız için çok teşekkürler
Diego

Spring boot her zaman tercih edilir çünkü ayrıntılı XML ile uğraşmak zorunda değilsiniz ve mikro hizmet mimarilerinden yararlanıyorlar
JorgeTovar

10

@Kryger'ın dediği gibi Spring MVC'yi Spring boot ile kullanabilirsiniz, bunlar arasında münhasır değildir ve konfigürasyon daha kolay olacaktır, ayrıca şablon framework olan http://www.thymeleaf.org/ kullanmanızı tavsiye ederim . Bununla çalışmak JSP ile çalışmak gibidir, ancak thymeleaf HTML ile sorunsuz bir şekilde bütünleşir, bu nedenle kodunuz çok temiz görünür ve birçok yararlı özellik ekleyebilirsiniz.


8

Spring Boot'un MVC'den daha kullanışlı olduğunu düşünüyorum, çünkü birçok avantajı ve onu MVC'den daha güvenilir kılan dahili özellikleri var. Spring Boot'da çoğu şey otomatik olarak yapılandırılır ve bu xml'leri MVC'de yaptığımız gibi yazmaya gerek yoktur, bu da zamandan tasarruf sağlayabilir.

Spring Boot, Tomcat gibi sunucu çalışma zamanına sahip bir savaş dosyası paketler. Bu, web uygulamalarının kolay dağıtımına ve dağıtımına olanak tanır. Sektör konteyner tabanlı dağıtımlara doğru ilerlediğinden, Spring Boot bu bağlamda da faydalıdır.

Spring MVC, web uygulama çerçevesidir. Spring'te her şeyi Spring Boot olmadan yapabilirsiniz, ancak Spring Boot işleri daha hızlı halletmenize yardımcı olur.

Spring boot, Spring bağımlılıklarınızı basitleştirir, daha fazla sürüm çarpışması olmaz, bir uygulama konteyneri olmadan doğrudan bir komut satırından çalıştırılabilir, daha az kodla daha fazla derleme yapılabilir - XML'e, hatta web.xml'ye, otomatik konfigürasyona, çalıştırma için kullanışlı araçlara gerek yoktur üretimde, veritabanı başlatma, ortama özel yapılandırma dosyaları, toplama ölçümleri.

Spring Boot ile ilgili temel bilgiler burada bulunabilir


Cevap için teşekkür ederim. Yaylı botu anlamak için çok yardımcı oldu. Kafam karışan bir şey, kullandığım yay versiyonunu değiştirmek zorunda kalırsam, bunu yaylı botla nasıl yapacağım? Yay versiyonunun tanımlandığı hiçbir yerde göremiyorum.
viper

Projenizde maven kullanmadınız mı? @viper
erginduran

evet maven kullandım. ama yaylı önyükleme kullanarak orada yay bağımlılıklarını göremiyorum.
viper
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.