SpringMVC temel yapılandırması (ek açıklamalar aracılığıyla yapılandırma, xml dışı yapılandırma)

SpringMVC nedir ve ne kadar popüler? Artık burada uzun soluklu olmayacağım. SpringMVC'yi kullanmak Struts2'ye göre çok daha kolay. Okuldayken ikisiyle de okulda kişisel olarak iletişime geçtim. Karşılaştırmadan sonra kararlı bir şekilde SpringMVC'yi seçtim ve daha sonra Android uygulama geliştirmeye başladım. Ara sıra bir arka uç hizmeti oluşturmam gerektiğinde, ilk tercihim olarak SpringMVC'yi seçmekte tereddüt etmedim. Ancak, daha önce SpringMVC kullanıldığında, yapılandırma için xml dosyaları kullanıldı, bu nedenle burada, Java açıklamaları aracılığıyla SpringMVC çerçevesini yapılandırmanın bir yolunu değiştirmek istiyorum.

Tamam, saçma sapan konuşma, o zaman başlayalım.

Proje oluştur

Neden projelerin yaratılmasından bahsediyoruz? Bunun nedeni, daha önce Web için STS kullanmamdır. Daha sonra, Android Studio bunu uzun süredir yaptığı için IntelliJ IDEA'ya derinden aşığım, bu nedenle Web geliştirme IntelliJ IDEA'ya taşındı, ancak bu şey Web geliştirmeye pek aşina değil. , Bir proje tarafından oluşturulan bir çukura düştü, işte diğer arkadaşların çukura düşmesini önlemek için projenin yaratılma sürecinden biraz bahsedelim.

1. Normal bir Web Uygulaması oluşturun

Oluştururken, web.xml oluştur seçeneğini iptal edin, çünkü burada SpringMVC'yi xml yoluyla değil, ek açıklamalar yoluyla yapılandıracağım, ikincisi projeyi adlandırmak ve ardından bir sonraki adıma kadar.

2. Maven desteği ekleyin

Proje başarıyla oluşturulduktan sonra, projeyi seçin, sağ tıklayın, ikinci öğeyi seçin Çerçeve Desteği Ekle ve ardından yeni açılan sayfada Maven'i seçin ve aşağıdaki gibi Tamam'a tıklayın:

Bu şekilde Maven tarafından yönetilen bir Web projesi başarıyla oluşturulur.

Tamam, proje oluşturma sürecini tartışmanın daha iyi bir yolu varsa, lütfen tartışma için bir mesaj bırakın.

Bağımlılık kitaplığı ekleyin

Burada biraz daha bağımlı kitaplıklar var, bir bakalım:

< özellikleri >

< Spring-framework.version > 4.3.4. YAYIN < /spring-framework.version >

< /özellikleri >

< bağımlılıklar >

< bağımlılık >

< Grup kimliği > javax < /Grup kimliği >

< artifactId > Java-api < / artifactId >

< versiyon > 7.0 < / version >

< ! --http: //blog.csdn.net/daihui05/article/details/7476976-- >

< dürbün > sağlanan < /dürbün >

< /bağımlılık >

< bağımlılık >

< Grup kimliği > org.springframework < /Grup kimliği >

< artifactId > Spring-webmvc < / artifactId >

< versiyon > $ {spring-framework.version} < / version >

< /bağımlılık >

< bağımlılık >

< Grup kimliği > javax.servlet < /Grup kimliği >

< artifactId > javax.servlet-api < / artifactId >

< versiyon > 3.1.0 < / version >

< dürbün > sağlanan < /dürbün >

< /bağımlılık >

< bağımlılık >

< Grup kimliği > javax.servlet < /Grup kimliği >

< artifactId > jstl < / artifactId >

< versiyon > 1.2 < / version >

< /bağımlılık >

< bağımlılık >

< Grup kimliği > javax.servlet.jsp < /Grup kimliği >

< artifactId > jsp-api < / artifactId >

< versiyon > 2.2 < / version >

< dürbün > sağlanan < /dürbün >

< /bağımlılık >

< bağımlılık >

< Grup kimliği > org.springframework < /Grup kimliği >

< artifactId > Spring-tx < / artifactId >

< versiyon > $ {spring-framework.version} < / version >

< /bağımlılık >

< bağımlılık >

< Grup kimliği > org.slf4j < /Grup kimliği >

< artifactId > slf4j-api < / artifactId >

< versiyon > 1.7.21 < / version >

< /bağımlılık >

< bağımlılık >

< Grup kimliği > log4j < /Grup kimliği >

< artifactId > log4j < / artifactId >

< versiyon > 1.2.17 < / version >

< /bağımlılık >

< bağımlılık >

< Grup kimliği > org.slf4j < /Grup kimliği >

< artifactId > jcl-over-slf4j < / artifactId >

< versiyon > 1.7.21 < / version >

< /bağımlılık >

< bağımlılık >

< Grup kimliği > ch.qos.logback < /Grup kimliği >

< artifactId > logback-klasik < / artifactId >

< versiyon > 1.1.8 < / version >

< /bağımlılık >

< bağımlılık >

< Grup kimliği > ch.qos.logback < /Grup kimliği >

< artifactId > logback-çekirdek < / artifactId >

< versiyon > 1.1.8 < / version >

< /bağımlılık >

< bağımlılık >

< Grup kimliği > ch.qos.logback < /Grup kimliği >

< artifactId > logback erişimi < / artifactId >

< versiyon > 1.1.8 < / version >

< /bağımlılık >

< / bağımlılıklar >

< inşa etmek >

< eklentiler >

< Eklenti >

< Grup kimliği > org.apache.maven.plugins < /Grup kimliği >

< artifactId > maven-derleyici eklentisi < / artifactId >

< versiyon > 3.6.0 < / version >

< /Eklenti >

< Eklenti >

< Grup kimliği > org.apache.maven.plugins < /Grup kimliği >

< artifactId > maven-war-eklentisi < / artifactId >

< versiyon > 3.0.0 < / version >

< konfigürasyon >

< failOnMissingWebXml > yanlış < / failOnMissingWebXml >

< / configuration >

< /Eklenti >

< / plugins >

< /inşa etmek >

Ama aslında, her bağımlı kütüphanenin kullanışlılığı çok açık, slf4j ve LogBack esas olarak günlükleri yazdırmak için kullanılıyor, jstl sayfa oluşturmayı destekliyor, bunlar JavaEE'de çok yaygın kütüphaneler, onları tekrar etmeyeceğim Yukarı.

Demo sayfası oluşturun

Bu yazı dizisi nedeniyle, esas olarak Spring Boot kullanımını tanıtmak istiyorum, bu yüzden burada jsp dosyasını src / main / resources / views / dizininde oluşturuyorum. Aşağıda gösterildiği gibi:

Kaynaklar dizininde ayrıca bir logback.xml dosyası vardır.Bu dosya günlükleri yazdırmak için kullanılır.Bu dosya bir süre sonra doğrudan arkadaşlar tarafından indirilebilir.

< % @ page contentType = "text / html; charset = UTF-8" language = "java"% >

< html >

< baş >

< Başlık > Merhaba SpringMVC < /Başlık >

< / kafa >

< vücut >

< h1 > SpringMVC dünyasına hoş geldiniz! < / h1 >

< /vücut >

< / html >

Bu jsp sayfası çok basit, sadece bir metin satırı.

SpringMVC yapılandırması

Lao Tzu'nun "Tao De Jing" in 64. bölümü: "Sarılma odunu değirmenin sonunda doğar; dokuz katlı platform temel topraktan başlar; bin millik yolculuk tek bir adımla başlar."

Burada ilk olarak SpringMVC'deki en temel ve basit konfigürasyona bakacağız ve ardından bitirdikten sonra karmaşık konfigürasyona bakacağız.

@Yapılandırma

@Evleneceksen

@ComponentScan ("org.sang")

public class MyMVCConfig {

@Fasulye

public InternalResourceViewResolver viewResolver () {

InternalResourceViewResolver viewResolver = new InternalResourceViewResolver ();

//Önek

viewResolver.setPrefix ("/ WEB-INF / sınıflar / görünümler /");

// son ek

viewResolver.setSuffix (". jsp");

viewResolver.setViewClass (JstlView.class);

return viewResolver;

}

}

Tamam, @EnableWebMvc, SpringMVC'de bazı varsayılan yapılandırmaları etkinleştirmek anlamına gelir. ViewResolver, SpringMVC görünüm oluşturmanın temel mekanizmasıdır. SpringMVC çerçevesinde bir ViewResolver arayüzü vardır. Arayüz, resolViewName adlı bir yönteme sahiptir. Bu yöntem bir View nesnesi döndürür. İstek ve yanıt nesneleri, oluşturulmuş görünümü tarayıcıya döndürür. Oluşturulan görünüm HTML, json, xml, PDF vb. Olabilir. Ek olarak, proje derlemeden sonra çalıştırıldığında index.jsp dosyası / WEB-INF / classes / views / dizininde olduğundan, önek / WEB-INF / classes / views / şeklindedir.

Web yapılandırması

public class WebInitializer, WebApplicationInitializer {

public void onStartup (ServletContext servletContext) ServletException {

AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext ();

ctx.register (MyMVCConfig.class);

ctx.setServletContext (servletContext);

ServletRegistration.Dynamic servlet = servletContext.addServlet ("dispatcher", new DispatcherServlet (ctx));

servlet.addMapping ("/");

servlet.setLoadOnStartup (1);

}

}

Buradaki kod, xml yapılandırmasıyla karşılaştırıldığında da iyi anlaşılmıştır. İlk olarak, özel sınıfımız WebApplicationInitializer arabirimini uygular ve arabirimde onStartup yöntemini uygular. Bu yöntem, Spring kapsayıcı başladıktan sonra otomatik olarak çağrılır ve ardından AnnotationConfigWebApplicationContext örneğini oluşturur ve yükler SpringMVC konfigürasyon dosyamız, bu adım aslında xml dosyası yüklenerek tamamlanabilir, elbette bu başka bir konu. Son olarak, DispatcherServlet oluşturulur ve eşleme yöntemi ve başlangıç zamanlaması ayarlanır.

Basit bir denetleyici oluşturun

@Kontroller

@RequestMapping ("/ dizin1")

public class HelloController {

@RequestMapping ("/ dizin2")

public String hello (HttpServletRequest isteği) {

System.out.println (request.getParameter ("kullanıcı adı"));

"indeks" döndür;

}

}

Önce @Controller açıklamasını kullanarak bunun bir denetleyici olduğunu beyan edin. Önceki makalede, @Controller ve @Service'in karıştırılabileceğini söylemiştik, ancak SpringMVC'yi bir denetleyici bean'i bildirmek için kullanırken yalnızca @Controller'ı kullanabilir ve sonra kullanabilirsiniz @RequestMapping, URL'ler ve yöntemler arasındaki eşleme ilişkisini yapılandırır. @RequestMapping ek açıklaması sınıflar veya yöntemlerde kullanılabilir. Yöntemlerde kullanılırsa, yöntem üzerindeki yol, sınıftaki yolu miras alır. Bir yandan, @RequestMapping ile açıklamalı yöntemler de istek veya yanıt parametreleri ekleyebilir.

Projeyi dağıtın ve çalıştırın

Tamam, yukarıdaki adımları tamamladıktan sonra projeyi çalıştırabiliriz. Sonuçlara bir bakalım:

Orijinal: https://blog.csdn.net/u012702547/article/details/53674867

"Kara turist destinasyonu" etiketinden kurtulmak isteyen Çernobil nükleer santrali gezginler için gerçekten güvenli mi?
önceki
Evdeki fayanslar ne kadar kirli olursa olsun, zemindeki çatlakları kolayca temizlemek için bu numarayı size öğretin.
Sonraki
Çamaşır makinesini çamaşır yıkamak için kullanırken bunları ekleyin, çamaşırlara zarar vermez ve çok temiz yıkar
JAVA ile ilgili temel bilgiler: yansımayla ilgili bazı özet
Balık çorbası buharda pişirilirken bütün balık haşlanır veya kesilir ve haşlanır mı? Yanlış olanı seçerseniz balık çorbasının balıklı olması ve balığın yaşlı olması şaşırtıcı değil
Haşlanmış Crucian tofu çorbasına kaynar su veya soğuk su eklemeli miyim? Bu çorbanın güçlü beyaz bir tadı var ve çok lezzetli
Ekran penceresi çok kirli ve temizlenmesi zor mu? Bu yöntemler ile sökülmeden yeni gibi temiz ve parlak olabilir.
Hangzhou'da 14 yaşındaki bir kız evden kaçtıktan sonra tren istasyonunda bulundu ve polis onu arıyor.
Mutfak ocağına şişe ve kavanoz koymayın, çok dağınık! Bu 3 pozisyonu kullanın, temiz ve güzel
Mutfağın büyüklüğünden bağımsız olarak dekorasyon yaparken yağ ve kirliliği önlemek için bu noktalara dikkat edin, alanın yarısından tasarruf edin
Lingdingyang'da çivi gibi deldi
Çay tatmak, bu çay setleri vazgeçilmezdir
Erken okuma: Yeni bir gün bu haber kahvaltı ile başlar
Yatak odası nasıl daha sıcak ve güzel hale getirilir? Bu küçük süslemelerle güzel ve pratik
To Top