Parantez içinde belirtmem gereken birşey var: Ben hep uzun soluklu yazıları okurken sıkılırdım. Dolayısıyla ne olursa olsun kısa yazacağım düşüncesi hep aklımın bir köşesinde durur ve bazen bocalama hatta iyice uzatmama neden oluyor gibi. Anlatmak istediğimi tam olarak yansıtamamış olabilirim düşüncesiyle yazıyı uzattıkça uzatıyorum sanki :) neyse ilerleyen zamanlarda yazdıkça düzelir ve gelişir herhalde :)
Hemen konuya dönerek size kulağı kısa yoldan göstermeyi anlatacağım.
kullanılan teknolojiler:
- intellij idea
- Java
- Spring framework
Öncelikli olarak intellij ile spring MVC tabanlı web projemizi oluşturuyoruz.
projenin son hali aşağıdaki hiyerarşik yapıda olacaktır
src/main dizininin altında resources adında bir dizin oluşturuyoruz(spring varsayılan olarak buraya bakar). yine değerleri okumak için bu dizinin altında conf.properties adında bir dosya oluşturuyoruz.
db.url = localhost:3306
db.user = root
db.pass = 123456
|
Burada kalıcı ve anlaşılır olması için anlamlı dosyalar ve değerler yazmaya çalıştım. Yani yapacağımız işlemlerle MySQL connection bilgilerini tutan ayar dosyasındaki değerleri okuyormuşsunuz gibi düşünün.
mvc-dispatcher-servlet.xml dosyasına aşağıdaki parametreyi ekliyoruz. bunun anlamı spring ayağa kalkarken resources dizinindeki conf.properties dosyasının değerini okuyup akılda tutar.
mvc-dispatcher-servlet.xml
Bu işlemlerden sonra com.company.controller paketinin altında DefaultController adında bir controller oluşturalım
com.company.controller / DefaultController
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/")
public class DefaultController {
@Value("${db.url}")
public String dbUrl;
@Value("${db.user}")
public String dbUser;
@Value("${db.pass}")
public String dbPass;
@RequestMapping(method = RequestMethod.GET)
public String printWelcome(ModelMap model) {
model.addAttribute("message", "Hello world!");
model.addAttribute("url", this.dbUrl); // url bilgisini ekle
model.addAttribute("user", this.dbUser); // user bilgisini ekle
model.addAttribute("pass", this.dbPass); // pass bilgisini ekle
return "index";
}
}
|
@Value("${db.url}") tanımlamasıyla String tipinde dbUrl değişkeninin değerini kaynak dosyadaki db.url ile eşleştirdik.
@Value("${db.user}") yine aynı mantıkla kaynaktaki db.user değerini aldık.
@Value("${db.pass}") kaynaktaki db.pass değerini aldık.
son olarak ta okuduğumuz değerleri ekrana basmak için index.jsp sayfasını aşağıdaki şekilde düzenlenir.
src\main\webapp\WEB-INF\pages\index.jsp
<body>
<h5>${message}</h5>
<hr/>
<b> URL : </b> ${url}
<hr/>
<b> Username : </b> ${user}
<hr/>
<b> Password : </b> ${pass}
</body>
</html>
|
Projeyi derleyip çalıştırınca(http://localhost:8080/) ekran çıktısı aşağıdaki gibi olacaktır:
kaynak dosyalar(github) : indirmek için tıklayın
Hiç yorum yok:
Yorum Gönder