proje etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
proje etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

25 Temmuz 2014 Cuma

Tomcat'i restart etmeden intelliJ de değişikliklerin algılanması

Merhaba,
bugün kü yazımın konusu  intelliJ ile geliştirme yaparken tomcati restart etmeden değişikliklerin algılanmasını sağlamak olacak. Önceki yazılarımdan birinde anlattığım ve bildiğinizi düşündüğüm üzere intelliJ ile web projesi geliştirirken  geliştirdiğiniz kodların tomcat'a deploy edilmesi için run tuşuna basarak sunucuyu restart edip kaynakları güncellemeniz gerekmektedir(Ayarların varsayılan ayarlar olduğunu düşünürsek).
Ancak aşağıdaki yapacağımız ayarlarla siz geliştirmeyi bitirip browser'u refresh eder etmez kaynaklar güncellenmesini sağlayacağız. Toplumumuzun(Türk toplumu) okumaktan çabuk sıkılacağını  göz önünde bulundurarak işlemleri sırasıyla ve  ekran görüntüleriyle anlatıyorum. :) 

İlk olarak Üstteki File menüsünden settings seçeneğine tıklanır. 
Kısa yolu : CTRL + ALT + S


Karşımıza gelen ekranda
Ide Settings / Debugger / HotSwap  seçeneğine gelinerek  en alttaki "Reload Classes After Compilation (Derleme işleminden sonra sınıfları tekrar yükle/güncelle)"  ayarını Always olarak set edip OK butonuna basıyoruz.


Daha sonra alttaki ekran görüntüsünde ki gibi run/edit configuration'a tıklayarak çalıştırma ayarlarını açıyoruz.



Burada öncelikle deployment tabına gelinerek set edilen eski ayarlar kaldırılmalıdır. Bunun için alttaki ekrandaki gibi projenin war dosyasını seçip eksi(-)/sil butonuna basılıp ardından da değişikliklerin aktif olabilmesi için OK butonuna basılır.

Daha sonra server tabına gelinerek sağ alt köşede ki fix butonuna basılarak projenin exploded olan war dosyası seçilir. (projeadi.war exploded şeklinde yazar) yine değişiklikleri aktif etmek için OK butonuna basarak kaydederiz.



Son olarak tekrar server tabına gelerek
On Update Action (güncelleme işleminde): update classes and resources (class ve kaynakları güncelle)
On Frame Deactivation(pencere pasif olduğunda) : Update Classes And Resources(Class ve Kaynakları güncelle) burada anlatılmak istenen şudur: intelliJ ekranında geliştirme yapıyorken mouse ı başka bir yere tıkladığınızda(ÖRN: chrome geçtiniz) hemen kaynaklar ve class lar güncellenir

Ayrıca show dialog  seçeneği pasif konuma getirilmelidir.


Bu ayarlardan sonra  tomcat restart olması  tüm değişikliklerin algılanması için proje run edilir. Tomcat restart  işleminden sonra artık  intellij de yaptığımız değişiklikleri takip edebilmek için browserı refresh etmemiz yeterli olacaktır.

19 Temmuz 2014 Cumartesi

Spring MVC ile Hello World

Merhaba, önceki yazımda intelliJ aracılığıyla spring projeleri oluşturmuştuk. Hatta intellij'nin bize yol göstermek  için  ekrana HelloWorld yazan örnek bir kodlama yaptığından bahsetmiştik.
NOT: Bu kodları inceleyerek java da spring aracılığıyla ekrana mesaj vermenin nasıl olacağı konusunda fikir edinebilirsiniz. ayrıca bu kodların ne anlama geldiğini açıkladığım  yazıyı inceleyebilirsiniz.

Bu yazımda Spring  ile ekrana HelloWorld mesajının nasıl yazdırılacağını anlatacağım.  Yazının uzun olmasını istemediğimden hemen kodlamaya geçmek istiyorum.

ilk olarak  intelliJ ile bir web projesi oluşturuyoruz.
oluşturduğumuz projenin son hali aşağıdaki gibi olacaktır.


oluşturduğumuz projede spring framworku kullanmak için maven install komutunu çalıştırmamız gerekiyor.
Maven tabına gelerek(varsayılan olarak intellij geliştirme ekranın sağ tarafında yer alır) install butonuna basıyoruz.


ikinci aşamada projede src/main/webapp/WEB-INF/pages dizinine gelerek burada  welcome.jsp adında bir jsp dosyası oluşturuyoruz.

welcome.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title></title> </head> <body> Hello World </body> </html>

hemen ardından bu jsp dosyamızı view edecek controller dosyasını oluşturmamız lazım. projede src/main/java/ dizini altındaki com.company.controller paketine sağ tıklayarak
new/java class seçeneği ile WelcomeController  adında bir java dosyası oluşturuyoruz.
intellij de yeni class oluşturmanın kısa yolu:
ALT + 1  
ALT + insert




WelcomeController.java (Controller in ilk harfini ve ardından gelen her yeni kelimenin ilk harfini büyük harfle yazmak yazılım geliştirme standartlarındandır.)
package com.company.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; //sınıfın controller olduğunu belir @Controller public class WelcomeController { //URL deki /welcome parametresini görünce welcome metodunu çağır @RequestMapping(value = "/welcome" , method = RequestMethod.GET) public String welcome(){ return "welcome"; } }

üstteki WelcomeController.java da ve alttaki ayar dosyalarının derlenmesi sonucu Spring framework base URL(localhost:8080) den sonra /welcome görürse hemen welcome() metodunu çağıracak. bu metod bize görüntülemek istediğimiz jsp sayfasının adını döndürecektir.



web.xml
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Spring MVC Application</display-name> <!--ilk olarak mvc-dispatcher yükle--> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!--tüm url de eşleştirme yap(tarama yap)--> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>


mvc-dispatcher-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--varsayıaln paket // spring başlaması için--> <context:component-scan base-package="com.company.controller"/> <!--jsp dosyalarını çağırırken /WEB-INF/pages/dosyadi.jsp şeklinde çağır--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/pages/"/> <property name="suffix" value=".jsp"/> </bean> </beans>

NOT:  web.xml ve mvc-dispatcher-servlet.xml dosyalarında kodsal  değişiklik hiç yapmadım. Sadece daha anlaşılır olması adına bu dosyaların içinde yorum satırları yazdım.

üstteki kodları içerin projeyi çalıştırdığımızda ekranda HelloWorld mesajını yazacaktır.
URL : http://localhost:8080/welcome 
örnek görüntü aşağıdadır:



kaynak dosyalar : indirmek için tıklayın

13 Temmuz 2014 Pazar

İntellij ile web projesi oluşturma

İntellij ile Web projesi oluşturma.

Merhaba, bu dokümanda intellij ile bir web projesi nasıl oluşturulacağından bahsedeceğim.
Burada eclipse mi ? intellij mi?  Diğerleri mi?  kıyaslamasına hiç girmeyeceğim. Ben intellij kullanıyorum  ve dip not olarak belirtmek istediğim bir konu var : intellij nin çatladığına şuana kadar hiç denk gelmedim. J  sizlere de bu IDE yi java projelerinizde  kullanmanızı tavsiye ederim.

Projemiz maven projesi olacak ve içinde spring framework ü barındıracak.

  • ilk aşamada   intellij IDE yi çalıştırdıktan sonra create new Project  seçeneğine tıklayarak yeni  proje oluşturma sihirbazını başlatıyoruz.











  • kinci aşamada Spring seçeneğini seçerek next butonuna basıyoruz. Spring projesi oluşturmamızdaki maksat : Yeni projemizin içinde Spring Framework ün yer almasını istememizdir.





  • Üçüncü aşamada spring ile nasıl bir proje oluşturacağımızı (Web mi? Application mu?) belirtiyoruz. Web projesi oluşturmak istediğimiz için burada spring MCV yi seçiyorum.


  • Dördüncü aşamada projemizin adını / bulunduğu dizini / java SDK yı / varsayılan paket  seçerek  finish butonuna basıyoruz.

- Project name : projemize vermek istediğimiz isim
- Project location : projemizin yer alacağı klasör
- Project sdk : hangi SDK ile projenin derleneceği
- Base Package : varsayılan olarak spring’in  hangi paketi okuyarak çalışmaya başlayacağı 








  • Projemizi oluşturduktan sonra İntelliJ deki dizin yapımız aşağıdaki gibi olacaktır.

- Burada intellij örnek bir jsp sayfası(Hello.jsp) ve örnek bir controller (HelloController.java) create eder. 



    Projemiz maven tabanlı olduğu için maven ayarlarını yapmamız gerekiyor. Alttaki ekranda kırmızı kare içine alınan ayarlar butonuna basıyoruz. açılan pencereden maven'in kurulu olduğu dizini seçiyoruz. (Benim makinemde  c:\maven dizinine kuruludur. sizde bu ayarı kendinize göre yapmalısınız ) 







Maven'ı projemize tanıttıktan sonra  projemizin derlenmiş halini oluşturalım. projeyi derleyip output üreten  komut maven-install komutudur.
maven-install :  projemizde target dizini altında kodların derlenmiş haliyle  output oluşturulur. 
maven-clean : bu komut ile  derlenmiş kodlar temizlenir ve target dizini boşaltılır.








Esasında maven komutları Command Line üzerinden çalıştırır. Ancak burada intellij bize butona basarak bu komutları çalıştırma olanağı sunar. dilerseniz proje dizinine giderek mvn celean
 ve  mvn install komutları ile bu işlemleri gerçekleştirebilirsiniz.  Maven clean/install komutlarının çalışması sonucunda intellij ekranında loglar yazmaya başlar. maven komutunun başarılı bir şekilde çalıştığını gösteren log mesajı  BUILD SUCCESS dir. eğer çalıştırma işleminden sonra bu log mesajı yoksa bir yerde bir hata oluştu demektir. Eğer hata oluştuysa  yine hata mesajı logarın içeriğinde bulunmaktadır.


Sonuç olarak web projemizi çalıştırmak için aşağıda kırmız ile vurgulanan çalıştır işaretine tıkladığımızı da projemiz derlenerek  browser ekranına Hello World yazısının yazıldığını görürüz.
bu sayede maven tabanlı spring projemizin başarılı bir şekilde çalıştığından emin olabiliriz.


Yukarıda hello world yazısı nereden geldi diye diye soracak olursanız, intellij bize spring framework ün yapısına   uygun örnek bir kodlama  sunar.  İçinde  basit bir controller / view (Hello World) örneğiyle projeyi create eder. Kodu intelliJ yazdı yani :)

Hello World yazısını browserda gördüyseniz arkanıza yaslanın ilerleyen günlerde oluşturduğumuz projenin içini birlikte dolduruyor olacağız.