Son zamanlarda, şirketin projesi yeniden düzenlemeye başlamak üzere ve çerçeve SpringBoot + Mybatis olarak seçildi Bu makale temel olarak IDEA'da bir SpringBoot çok modüllü proje oluşturma sürecini anlatıyor.
1. Geliştirme araçları ve sistem ortamı
2. Proje dizin yapısı
1. Bir ana proje oluşturun
IDEA araç çubuğu seçim menüsü Dosya- > Yeni- > Proje ...
img
Spring Initializr'ı seçin, Initializr varsayılan olarak Default'a ayarlıdır, Next'e tıklayın
img
Giriş kutusunu doldurun ve İleri'ye tıklayın
img
Bu adımın doğrudan İleri'yi seçmesine gerek yoktur
img
Projeyi oluşturmak için Bitir'e tıklayın
img
Nihai proje dizin yapısı aşağıdaki gibidir
img
Yararsız .mvn dizinini, src dizinini, mvnw ve mvnw.cmd dosyalarını silin, sonunda yalnızca .gitignore ve pom.xml bırakın
img
2. Bir alt modül oluşturun
Menüyü çağırmak için proje kök dizini beta'ya sağ tıklayın, Yeni'yi seçin > Modül
img
Maven'i seçin, İleri'ye tıklayın
img
ArifactId'yi doldurun, İleri'ye tıklayın
img
Modül adını değiştirin ve okunabilirliği artırmak için yatay çubuklar ekleyin, Bitir'e tıklayın
img
Aynı şekilde, [beta-dao] ve [beta-web] alt modülleri ekleyin ve son olarak, aşağıda gösterildiği gibi proje dizin yapısını alın
img
3. Projeyi çalıştırın
Beta-web katmanında com.yibao.beta.web paketini oluşturun (not: bu çok katmanlı bir dizin yapısıdır, tek bir dizin adı değil, com > > Yibao > > beta > > web) ve BetaWebApplication.java giriş sınıfını ekleyin
paket com.yibao.beta.web; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; / ** * @ yazar linjian * @date 2018/9/29 * / @SpringBootApplication genel sınıf BetaWebApplication { public static void main (String args) { SpringApplication.run (BetaWebApplication.class, args); } }com.yibao.beta.web paketine kontrolör dizinini ekleyin ve yeni bir kontrolör oluşturun, arayüze normal olarak erişilip erişilemeyeceğini test etmek için test yöntemini ekleyin
paket com.yibao.beta.web.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; / ** * @ yazar linjian * @date 2018/9/29 * / @Filmdenkare @RequestMapping ("demo") public class DemoController { @GetMapping ("test") public String testi () { "Merhaba Dünya!" } }Projeyi başlatmak için BetaWebApplication sınıfındaki ana yöntemi çalıştırın, varsayılan bağlantı noktası 8080'dir, aşağıdaki sonuçları almak için http: // localhost: 8080 / demo / test adresini ziyaret edin
img
Yukarıdaki projeler normal olarak başlatılabilse de modüller arasındaki bağımlılıklar henüz eklenmemiştir, aşağıda iyileştirmeye devam edin
4. Modüller arasında bağımlılıkları yapılandırın
Her alt modülün bağımlılığı: biz katmanı dao katmanına bağlıdır, web katmanı biz katmanına bağlıdır
Ana pom dosyasındaki tüm alt modül bağımlılıklarını bildirin (bağımlılık yönetimi ve bağımlılıklar arasındaki fark için belgelere bakın)
< bağımlılık yönetimi > < bağımlılıklar > < bağımlılık > < Grup kimliği > com.yibao.beta < /Grup kimliği > < artifactId > beta-biz < / artifactId > < versiyon > $ {beta.version} < / version > < /bağımlılık > < bağımlılık > < Grup kimliği > com.yibao.beta < /Grup kimliği > < artifactId > beta-dao < / artifactId > < versiyon > $ {beta.version} < / version > < /bağımlılık > < bağımlılık > < Grup kimliği > com.yibao.beta < /Grup kimliği > < artifactId > beta-web < / artifactId > < versiyon > $ {beta.version} < / version > < /bağımlılık > < / bağımlılıklar > < / dependencyManagement >$ {Beta.version}, özellikler etiketinde tanımlandığında
Beta web katmanındaki pom dosyasına beta-biz bağımlılığı ekleyin
< bağımlılıklar > < bağımlılık > < Grup kimliği > com.yibao.beta < /Grup kimliği > < artifactId > beta-biz < / artifactId > < /bağımlılık > < / bağımlılıklar >Beta-biz katmanındaki pom dosyasına beta-dao bağımlılığı ekleyin
< bağımlılıklar > < bağımlılık > < Grup kimliği > com.yibao.beta < /Grup kimliği > < artifactId > beta-dao < / artifactId > < /bağımlılık > < / bağımlılıklar >5. Web katmanı biz katmanı arayüz testini çağırır
Beta-biz katmanında com.yibao.beta.biz paketini oluşturun, servis dizinini ekleyin ve içinde DemoService arayüz sınıfını oluşturun
paket com.yibao.beta.biz.service; / ** * @ yazar linjian * @date 2018/9/29 * / genel arayüz DemoService { Dize testi (); } paket com.yibao.beta.biz.service.impl; import com.yibao.beta.biz.service.DemoService; import org.springframework.stereotype.Service; / ** * @ yazar linjian * @date 2018/9/29 * / @Hizmet public class DemoServiceImpl, DemoService { @Override public String testi () { "test" iadesi; } }DemoController, DemoService'i @Autowired ek açıklaması aracılığıyla enjekte eder ve DemoController test yöntemini DemoService test yöntemini çağıracak şekilde değiştirir. Nihai sonuç aşağıdaki gibidir.
paket com.yibao.beta.web.controller; import com.yibao.beta.biz.service.DemoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; / ** * @ yazar linjian * @date 2018/9/29 * / @Filmdenkare @RequestMapping ("demo") public class DemoController { @Autowired özel DemoService demoService; @GetMapping ("test") public String testi () { dönüş demoService.test (); } }Projeyi yeniden başlatmak için BetaWebApplication sınıfındaki ana yöntemi çalıştırın ve aşağıdaki hatayı bulun
*************************** BAŞVURU BAŞLATILAMADI *************************** Açıklama: Com.yibao.beta.web.controller.DemoController'daki demoService alanı, bulunamayan 'com.yibao.beta.biz.service.DemoService' türünde bir bean gerektiriyordu. Aksiyon: Yapılandırmanızda 'com.yibao.beta.biz.service.DemoService' türünde bir bean tanımlamayı düşünün.Bunun nedeni, DemoService sınıfının bulunamamasıdır. Şu anda, paket taramanın BetaWebApplication giriş sınıfına eklenmesi gerekir ve @SpringBootApplication ek açıklamasındaki scanBasePackages değeri, sonunda gösterildiği gibi com.yibao.beta olarak ayarlanır.
paket com.yibao.beta.web; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; / ** * @ yazar linjian * @date 2018/9/29 * / @SpringBootApplication (scanBasePackages = "com.yibao.beta") @MapperScan ("com.yibao.beta.dao.mapper") genel sınıf BetaWebApplication { public static void main (String args) { SpringApplication.run (BetaWebApplication.class, args); } }Ayarladıktan sonra ana yöntemi yeniden çalıştırın, proje normal şekilde başlar, aşağıdaki etkiyi elde etmek için http: // localhost: 8080 / demo / test adresini ziyaret edin
img
6. Mybatis'i entegre edin
mybatis-spring-boot-starter ve lombok bağımlılıklarını ana pom dosyasında bildirin
bağımlılık yönetimi > < bağımlılıklar > < bağımlılık > < Grup kimliği > org.mybatis.spring.boot < /Grup kimliği > < artifactId > mybatis-spring-boot-starter < / artifactId > < versiyon > 1.3.2 < / version > < /bağımlılık > < bağımlılık > < Grup kimliği > org.projectlombok < /Grup kimliği > < artifactId > Lombok < / artifactId > < versiyon > 1.16.22 < / version > < /bağımlılık > < / bağımlılıklar > < / dependencyManagement >Yukarıdaki bağımlılıkları beta-dao katmanındaki pom dosyasına ekleyin
< bağımlılıklar > < bağımlılık > < Grup kimliği > org.mybatis.spring.boot < /Grup kimliği > < artifactId > mybatis-spring-boot-starter < / artifactId > < /bağımlılık > < bağımlılık > < Grup kimliği > mysql < /Grup kimliği > < artifactId > mysql-bağlayıcı-java < / artifactId > < /bağımlılık > < bağımlılık > < Grup kimliği > org.projectlombok < /Grup kimliği > < artifactId > Lombok < / artifactId > < /bağımlılık > < / bağımlılıklar >Beta-dao katmanında com.yibao.beta.dao paketini oluşturun ve dao katmanıyla ilgili dosyaları (DO, Mapper, xml) oluşturmak için mybatis-genertaor aracını kullanın ve depolama dizini aşağıdaki gibidir
img
jdbc ve mybatis ile ilgili yapılandırma öğelerini application.properties dosyasına ekleyin
spring.datasource.driverClassName = com.mysql.jdbc.Driver spring.datasource.url = jdbc: mysql: //192.168.1.1/test? useUnicode = truecharacterEncoding = utf-8 spring.datasource.username = test spring.datasource.password = 123456 mybatis.mapper-locations = sınıf yolu: mybatis / *. xml mybatis.type-aliases-package = com.yibao.beta.dao.entityDemoService, UserMapper'ı @Autowired ek açıklaması aracılığıyla enjekte eder ve sonunda gösterildiği gibi, UserMapper'ın selectByPrimaryKey yöntemini çağırmak için DemoService test yöntemini değiştirir.
paket com.yibao.beta.biz.service.impl;
import com.yibao.beta.biz.service.DemoService;
import com.yibao.beta.dao.entity.UserDO;
import com.yibao.beta.dao.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/ **
* @ yazar linjian
* @date 2018/9/29
* /
@Hizmet
public class DemoServiceImpl, DemoService {
@Autowired
özel UserMapper userMapper;
@Override
public String testi () {
UserDO user = userMapper.selectByPrimaryKey (1);
return user.toString ();
}
}
Projeyi yeniden başlatmak için BetaWebApplication sınıfındaki ana yöntemi çalıştırın ve aşağıdaki hatayı bulun
BAŞVURU BAŞLATILAMADI *************************** Açıklama: Com.yibao.beta.biz.service.impl.DemoServiceImpl'deki userMapper alanı, bulunamadı 'com.yibao.beta.dao.mapper.UserMapper' türünde bir bean gerektiriyordu. Aksiyon: Yapılandırmanızda 'com.yibao.beta.dao.mapper.UserMapper' türünde bir bean tanımlamayı düşünün.Nedeni, UserMapper sınıfının bulunamamasıdır. Şu anda, BetaWebApplication giriş sınıfına dao katman paketi taramasını eklemeniz, @MapperScan ek açıklamasını eklemeniz ve değerini com.yibao.beta.dao.mapper olarak ayarlamanız ve son olarak aşağıdaki gibi bakmanız gerekir.
paket com.yibao.beta.web; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; / ** * @ yazar linjian * @date 2018/9/29 * / @SpringBootApplication (scanBasePackages = "com.yibao.beta") @MapperScan ("com.yibao.beta.dao.mapper") genel sınıf BetaWebApplication { public static void main (String args) { SpringApplication.run (BetaWebApplication.class, args); } }Ayarladıktan sonra ana yöntemi yeniden çalıştırın, proje normal şekilde başlar, aşağıdaki etkiyi elde etmek için http: // localhost: 8080 / demo / test adresini ziyaret edin
img
Şimdiye kadar, basit bir SpringBoot + Mybatis çoklu modül projesi oluşturuldu ve ayrıca proje çağrısı arayüzünü başlatarak doğruluğunu onaylıyoruz.
İyi tanımlanmış çok modüllü mühendislik yapısı yalnızca bakım için uygun olmakla kalmaz, aynı zamanda sonraki mikro hizmetler için de elverişlidir. Bu yapının temelinde, ortak katman (genel bileşenler) ve sunucu katmanı (dubbo tarafından sağlanan hizmetler gibi) da genişletilebilir.
Bu, projenin yeniden yapılandırılmasının ilk adımıdır ve logback, disconf, redis, dubbo ve diğer bileşenler gelecekte çerçeveye entegre edilecektir.
İnşaat sürecinde, maven özel sunucusunda da bir sorunla karşılaştım. Bunun nedeni, şirketin dahili maven özel sunucusu tarafından yapılandırılan merkezi ambarın Alinin uzak deposu olmasıdır. Maven ile gelen uzak depoya kıyasla, bazı jar paketi sürümleri tamamlanmamıştır, bu da derlemeye yol açar İşlem sırasında birkaç kez, ilgili kavanoz paketi çekilmediği için proje başlatılamadı.
Kaynak::-D WeChat Kimliği Arama (ID: Taro kaynak kodu ), çeşitli Java kaynak kodu analizi, ilke açıklaması, mülakat soruları ve çalışma kılavuzları edinebilirsiniz.
:-D Ve yanıtla [ kitabın Bundan sonra, yazarın önerdiği mimariye girişten başlayarak 100 adet Java kitabı alabilirsiniz.
:-D Ve yanıtla [ Teknoloji Grubu ] Bundan sonra, Java, arka uç ve mimariyi tartışmaya adanmış bir teknoloji grubuna katılabilirsiniz.
Hadi, Sao Nian ~