2013-01-07 18 views
10

, ben kongre saygı düşünüyorum çünkü ben genellikle, aşağıdaki dosyalar organizasyonu kullanın:WebApp dosya organizasyonu kongre (geliştirme yapı) Ben geliştiriyorum webapps için

src 
|-- main 
    |-- resources 
    | |-- *.properties 
    | |-- *.xml 
    | |-- spring 
    |  |-- applicationContext.xml (main application context config file) 
    |-- webapp 
     |-- WEB-INF 
      |-- spring 
      | |-- spring-mvc.xml (web application context config file, delegated to manage only the web part) 
      | |-- spring-security-http.xml (web security config) 
      |-- static 
      | |-- *.css 
      | |-- *.js 
      |-- views 
      | |-- *.jsp 
      |-- web.xml (deployment configuration) 

ben denemek istiyorum ne aşağıdaki yapısına göre dosyalarımı organize etmektir: webapp ambalaj zaman gereken yer tabii

src 
|-- main 
    |-- resources 
    | |-- *.properties 
    | |-- *.xml 
    | |-- web.xml 
    | |-- spring 
    |  |-- applicationContext.xml 
    |  |-- spring-mvc.xml 
    |  |-- spring-security-http.xml 
    |-- webapp 
     |-- WEB-INF 
      |-- static 
      | |-- *.css 
      | |-- *.js 
      |-- views 
       |-- *.jsp 

, dosyalar taşınacaktır (örn WEB-INF klasörü içinde web.xml) . Webapps'i yukarıdaki gibi yeniden düzenlemek istediğimden dolayı, bazı * .xml config dosyalarının burada ve bazılarında burada olmak yerine aynı konuma sahip olmasını daha uygun buluyorum. İlk yapmamı kırmak senin fikrinde kötü bir fikir mi? Evet ise neden? WEB-INF klasöründeki tüm web yapılandırma dosyalarına sahip olmak neden bu kadar önemli?

PS: Teknik olarak, webapp'ın sınıf yolundaki tüm dosyaları nasıl bağlayacağımı biliyorum. Soru, kişisel/profesyonel deneyimlerden gelen kongre ve geri bildirimler hakkında daha fazladır.

cevap

10

Java Web projesini, tipik Java Web uygulama yapısını görmek için Eclipse, NetBeans, IntelliJ IDEA gibi bazı popüler IDE oluşturabilirsiniz.

geliştirme yapısı ve paketleme yapısı arasında bir fark vardır.
Bir uygulama geliştirirken, hoşunuza giden yapıyı kullanabilirsiniz. Ama siz , Java EE web uygulamasını belirli kurallara göre paketlemelisiniz. Ayrıntılar için resmi Java EE eğitimde

Görünüş:
Java EE 7 Tutorial: Packaging
Java EE 6 Tutorial: Packaging Applications
Java EE 6 Tutorial: Example Directory Structure

(burada sadece NetBeans ile ilgili bilgi görmezden) Ayrıca burada yapılandırma uygulamaları için tavsiye edilen kurallar Java 2 kullanılarak geliştirilen olduğunu Platform, Enterprise Edition (tarihli olmasına rağmen yararlı olabilir):
Java Blueprints Guidelines. Project Conventions for Enterprise Applications

Ve burada Yukarıdaki Java planları bir örnek: Web Applications: Recommended Directory Structure


GÜNCELLEME İşte

Bahar ile benim Java Web uygulaması proje birinden örneğidir. Örneğin, Spring ile ilgili tüm yapılandırma dosyalarını, yayın klasöründe WEB-INF içinde sakladım. Ve bahar klasöründe uygulamanızı daha iyi düzenlemek için daha fazla klasör oluşturdum. Yine, olası seçeneklerden sadece biri, yani kişisel tercihler meselesidir.

Spring project structure example

+0

Cevabınız için teşekkür ederiz. Geliştirme yapısından bahsediyordum, ambalajlama sırasında web.xml dosyasının WEB-INF klasöründe olması gerektiğini biliyorum. Bahsettiğiniz tipik yapıyı verebilir misiniz? Springfuse.com'daki ilk yapıyı buldum. – sp00m

+0

@ sp00m Resim ekle – informatik01

+0

Dizin yapıları ile ilgili ilk ifademi silme olağandışı. @AndresOlarte'ın not ettiği gibi gerçekten standart Maven yapısıdır (http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html). Maven yapısını düşünmedim üzgünüm. Sadece Mavenized olmayan dizin yapıları hakkında yazdı ... – informatik01

4

Web.xml dosyasının WEB-INF dizininde olması gerekir. Uygulama sunucuları bunun için bakacakları tek yer. Bunun dışında, bahar xml dosyaları kaynaklarda (sınıf yolunda sona erecek) olabilir.

+0

Doğru, teşekkürler! Ve geliştirme sırasında web.xml'yi src/main/resources içine koymak ve paketlemede WEB-INF klasörüne yerleştirmek ne demektir? – sp00m

+2

Paketleme sırasında kesinlikle taşıyabilirsiniz. Bununla birlikte, uygulamanıza bakan birisine karşı sezgisel olabilir. Yapınıza baktığımızda standart Maven webapp yapısı gibi görünüyor. Eşyaları doğal yerlerinde tutmaktan hoşlanırdım. –