2017-02-09 18 views
11

Ben açısal2 için yeni, olası açısal 2 ile SpringMVC4 için olası dosya yapısı nedir bilmek ister misiniz? resimde görüldüğü gibi, Açısal 1.x ama Açısal 2 dosya yapısı için çalışacakAçısal 2 ile Spring4MVC'yi tek bir sunucuda çalıştırın

enter image description here

oldukça farklıdır ve bileşen tahrik ve enter image description here

aşağıda verildiği gibi ben açısal 2 dosya yapısı kullanıyorum

Çok fazla aradım ve Ön uç (açısal2 kullanarak) ve arka uç (sunucu kullanarak yay/yaylı bot) ayrı ayrı kullanabileceğimizi buldum, ancak uygulamayı çalıştırmak için 2 sunucuya ihtiyacımız var. Örneğin , Kullanıcı arabirimi: 192.168.100.1:4200 Ve Arka uç: 192.168.100.1:8080

Yani aynı sunucuda hem angular2 ve spring4MVC çalıştırmak için herhangi bir yolu ya da genel dosya yapısı vardır (192.168.100.1:8080 benzeri) ?

Şimdiden teşekkürler. Cevaplar takdir edilecektir!

cevap

9

Şimdiye kadar cevap yok, sorun yok. Nasıl yaptım

2 bağlama ihtiyacınız var.

(1) Açısal 2 projesi ve

(2) tek bir sunucuda SPRINGMVC + Angular2 çalıştırmak için, ana hedefe ulaşmak için adımlar aşağıda Bahar MVC

Takip.

  1. Normal Dinamik web projesi oluşturun.
  2. İlkbahar veya kullanıcı için gerekli tüm bağımlılıkları ekleyin maven pom.xml
  3. CMD'yi açın, angular2 uygulamasına gidin. komutu Hit

    npm yükleyip sonra

    ng oluşturmak veya

bu komutu bir "dist" klasörü oluşturacaktır, tüm kopyalama ng inşa üretimi için --prod kullanmak tüm klasörler dahil dosyalar.

  1. Bu dosyaları ve klasörleri WebContent dizinine yapıştırın.

  2. Son şey, index.html dosyasındaki basehref = "./" dosyasını değiştirmeniz gerekiyor. Artık sunucuyu çalıştırmaya hazırsınız veya savaş dosyasını dağıtabilir ve tomcat veya başka sunucularla sunabilirsiniz.

sen istirahat webservices kullanarak ve tek bir sunucuda angular2 ve bahar çalıştırmak istiyorsanız

,

Eğer ev url göre webServiceEndPointUrl koymak gerekir.Örneğin, eğer localhost: 8080 üzerinde bir uygulama çalıştırıyorsanız, url

webServiceEndPointUrl = "http://localhost:8080/api/user"; açısal tarafta. Bundan sonra WebContent klasörünüze yapıştırma ve kopyalama yapabilirsiniz.

springMVC + ANGULAR2 için, Image altında Dosya yapısını görün

enter image description here

Orada tek bir sunucu üzerinde uygulama çalıştırmak için bu yolu kullanmak için birçok dezavantajları vardır, ancak zorunlu olmalıdır eğer bu takip edebilirsiniz biliyorum

.

Açısal tarafta herhangi bir şeyi değiştirirseniz, her seferinde yapıştırma diski klasörünü kopyalamanız ve ardından dağıtabilirsiniz!

+0

5. adımda basehref = "./" öğesini index.html dosyasında değiştirmek için yazdınız. Ne değişmesi gerekiyordu? –

+2

Eğer açısal 2 uygulamanızı çalıştırıyorsanız, localhost: 4200 deyin, o zaman basehref = "/" ifadesini kullanacaksınız, burada basehref özniteliğini src/app/index.html dosyasında bulabilirsiniz. Şimdi bunu springMVC (normal konfigürasyonlar * modeli) ile çalıştırmak istiyorsanız, dist klasörünün tüm dosyalarını webapps veya WebcContent klasörüne koyacaksınız. Burada ilkbaharın oluşturulmaya başlayabileceğini söylemelisiniz. [(dot-slash) ./ geçerli dizini gösterir] [(eğik çizgi)/root dizini]. Başka bir konfigürasyonunuz varsa, atlayabilirsiniz. Genel mimaride başarılı bir şekilde denedim ve uyguladım. Hatta/ve ile deneyebilirsiniz./ – BeingCoders

+1

5. nokta için teşekkürler, işe yaradı./& ./ arasındaki fark gerçekten anlamak gerekiyor. –

5

Sen çözümünü otomatik hale getirebilirsiniz - sadece (hangi ile nodejs yüklemek ve açısal projeyi inşa edebilirsiniz) önyüzü-maven-plugin kullanabilir ve maven-kaynaklar-eklenti/açısal/dist içeriğini kopyalamak için/.war dosyasının kök içine dizin

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-resources-plugin</artifactId> 
     <version>3.0.2</version> 
     <executions> 
     <execution> 
      <id>default-copy-resources</id> 
      <phase>process-resources</phase> 
      <goals> 
      <goal>copy-resources</goal> 
      </goals> 
      <configuration> 
      <overwrite>true</overwrite> 
      <outputDirectory>${project.build.directory}/${project.artifactId}-${project.version}/</outputDirectory> 
      <resources> 
       <resource> 
       <directory>${project.basedir}/angular/dist</directory> 
       </resource> 
      </resources> 
      </configuration> 
     </execution> 
     </executions> 
</plugin> 

(ayrıca this article bakınız) Ve (geliştirirken) o zaman Angular CLI aracıyla ng serve koşucu nodejs sunucusunda sıcak yükle özelliğini kullanabilirsiniz.