Mybatis'te arayüzün ve ilgili mapper dosyası konum yapılandırmasının ayrıntılı açıklaması

Bugün karşılaşılan bir sorun, arayüzün ve ilgili eşleyici dosyasının mybatis'teki konumunun farklı olması ve neden olduğu işlemin farklı olmasıdır.İnterneti uzun süre aradıktan sonra nihayet bir yöntem buldum. İşte basit bir analiz:

Tipik bir maven projesinde, dizin yapısının: src / main / java ve src / main / kaynaklar olduğunu biliyoruz. İlki, java kaynak kodunu depolamak için kullanılır ve ikincisi, yapılandırma dosyaları gibi bazı kaynak dosyalarını depolamak için kullanılır.

Mybatis'teki arayüz ve karşılık gelen eşleyici dosyasının aynı pakete yerleştirilmesi gerekmez.Mybatis tarafından otomatik tarama için bir araya getirilirlerse, Java arayüzünün adı ile eşleyici dosyasının adının şu anda aynı olması gerektiği unutulmamalıdır, aksi takdirde Bir istisna bildirin, çünkü Mybatis bu anda ilgili arabirimi ve karşılık gelen yapılandırma dosyasını otomatik olarak ayrıştırır, böylece eşleyici dosyasının konumunu yapılandırmaya gerek yoktur.

1: Arayüz ve dosyalar aşağıdaki gibi aynı pakete yerleştirilir:

Maven varsayılan olarak paketlendiğinde, src / main / java dizini için yalnızca kaynak kodu paketlenir ve başka hiçbir dosya paketlenmez. Dolayısıyla, karşılık gelen eşleyici dosyası şu anda src / main / java dizinine yerleştirilirse, son jar klasöründe paketlenmeyecek veya hedef klasöre çıktısı alınmayacaktır, çünkü birim testi sırasında yürütülür. / Target dizinindeki / test-classes altındaki koddur, bu nedenle testte başarılı olmayacaktır.

Varsayılan maven ortamında paketleme elde etmek için, Mybatis arayüzü ve eşleyici dosyası aynı pakette bulunur, arayüz dosyasını src / main / java paketine koyarak src / main / resources dizininde aynısını oluşturabilirsiniz. Paket, bu yapılandırma yerine bir uzlaşma yoludur, böylece maven paketlendiğinde, aynı src / main / java ve src / main / kaynaklar paketinin altındaki dosyalar aynı pakette birleştirilecektir.

Varsayılan maven paketleme ortamında, tüm arabirim dosyalarını ve eşleyici dosyalarını src / main / java içine koymayın, böylece eşleyici dosyaları paketlenmez

Src / main / java ve src / main / kaynaklarda aynı paket adı ve aynı dosya adı, varsayılan paketlemeden sonraki yapı aşağıdaki gibidir:

Paketin zaten aynı paket altında olduğu tespit edildi.

Ve tüm arabirim ve mapper dosyalarını src / main / java'daki aynı pakete aşağıdaki gibi koyduğunuzda:

Paketlemeden sonraki dosyalar aşağıdaki gibidir:

Derleme ve paketlemeden sonra eşleyici dosyası olmadığı tespit edildi, bu nedenle hem test hem de resmi yürütmede hatalar olacak! !

Maven derleme yapılandırmasını değiştir

Arayüzü ve eşleyici dosyalarını src / main / java ve src / main / kaynaklar içine koymak istemiyorsanız, ancak tümünü src / main / java içine koymak istiyorsanız, maven paketinin xml dosyasını ve derleme sırasında belirli yapılandırmayı içermesi gerektiğini belirtmeniz gerekir. aşağıdaki gibi:

< inşa etmek >

< kaynaklar >

< kaynak >

< dizin > src / main / java < / dizin >

< içerir >

< Dahil etmek > ** / *. xml < /Dahil etmek >

< /içerir >

< süzme > yanlış < / filtreleme >

< /kaynak >

< / kaynaklar >

< /inşa etmek >

Bu şekilde, eşleyici dosyası da paketlenirken / target klasörüne paketlenir.

2: Arayüz ve dosya aynı pakette değil

Arayüz ve eşleyici dosyası aynı pakette değilse, otomatik tarama ve ayrıştırma gerçekleştirilemez ve arayüz ve dosyanın ayrı ayrı yapılandırılması gerekir.

2.1 XML yapılandırma yöntemi

2.1.1 Yay kullanmamak

Mybatis kullanan konfigürasyon dosyası aşağıdaki gibidir:

< ? xml version = "1.0" encoding = "UTF-8"? >

< ! DOCTYPE yapılandırması

KAMU "- // mybatis.org//DTD Config 3.0 // TR"

" >

< konfigürasyon >

< Haritacılar >

< ! - Eşleyici eşleme dosyasını yolun altında tarayın - >

< eşleyici kaynağı = "eşleyiciler / UserMapper.xml" / >

< ! - Paketin altındaki arayüz dosyasını tarayın - >

< paket adı = "edu.zju.bme.data.manage.mapper" / >

< / mappers >

< / configuration >

2.1.2 Yayı Kullanma

Yay kullanan yapılandırma dosyası aşağıdaki gibidir:

< fasulye xmlns = "

xmlns: xsi = "

xmlns: mybatis = "

xsi: schemaLocation = "

" >

< ! - Eşleştirici arayüzünü taramak için arayüzde depolanan paketi yapılandırın - >

< mybatis: base-paketi tara = "edu.zju.bme.data.manage.mapper" / >

< bean id = "sqlSessionFactory" class = "org.mybatis.spring.SqlSessionFactoryBean" >

< ! - Eşleyici dosyasının konumunu yapılandırın, harita dosyasını tarayın, Ant stili yol biçimini kullanabilirsiniz - >

< özellik adı = "mapperLocations" value = "sınıf yolu *: eşleyiciler / ** / *. xml" / >

// ...

< /fasulye >

< /Fasulyeler >

Java Gelişmiş Mimarisine katılmak için bir ila beş yıl arasında çalışan Java mühendislerine hoş geldiniz: 458462877

Grup, ücretsiz Java mimarisi öğrenme materyalleri sağlar (yüksek kullanılabilirlik, yüksek eşzamanlılık, yüksek performans ve dağıtılmış, Jvm performans ayarı, Bahar kaynak kodu)

MyBatis, Netty, Redis, Kafka, Mysql, Zookeeper, Tomcat, Docker, Dubbo, Nginx ve diğer bilgiler

Nokta yapısı verileri) Kendinizi geliştirmeyi öğrenmek için zamanınızın her dakikasını ve her saniyesini makul bir şekilde kullanın, "zaman ayırmayın"

"Kendi zihinsel tembelliğini gizlemeye gel! Gençken, gelecekteki kendine bir açıklama yapmak için çok çalış!

Bir zamanlar TVB'nin kraliçeleri için kullanılan bir isimdi, ancak şimdi 54 yaşında, TV dizisine geri dönmeyi reddediyor.
önceki
Kiangsi'de yaşlı bir adam bir tabuta gömüldü ve zorla yakıldı
Sonraki
Önümüzdeki ay yurt içi satış! 2.000 yuan'da speküle edilen Vans "CAP" tarafından yapılan bu yıkılmış Vault çifti bir çift mi giriyor?
70 yaşındaki Hong Kong "kötü adam" yeniden evlenmekle suçlandı! İki felç geçirdi ve bir karaciğer kanseri tümörünü yeni çıkardı
Böyle bir düğün gördün mü? Damadın karşılama ekibi, gelini almaları için dev bir "Zongzi" taşımaları için 12 kişiyi gönderdi
Japon yeni mücadelesi Honda INSPIRE, Toyota Camry'ye karşı
Sadece kalbi kırık! Bu satılmayan Supreme ortak ayakkabılar aslında sahte mi? !
Resmi duyuru! 50 yaşındaki TVB TVB baba olarak terfi ettirildiğini itiraf etti: oğlunun ilk teşhiri
Henan'ın on milyarlarca "kirli park" çıktı değeri o kadar güçlü ki, çevre koruma departmanı aslında kurumsal pazarlama salonunda kuruldu
Merkezi şirketlerin "On Yıllık" 5 · 12 "Hatıraları" tanıkları size 16 silinmez anı anlatıyor
Eski TVB Hua Dan'in estetik ameliyatı başarısız olduğu ve eğlence çevresinden kaybolduğu söylendi. Şimdi kendisi ile röportaj yapılıyor ve bizzat anlatılıyor.
Yeni yetenekli niş test sürüşü deneyimi Hanteng X5 EV
60 yaşındaki adam uzun süre mahjong oynuyor, periyodik felç geçiriyor ve iyileşmek için uygunluğa güveniyor
Bu bir çift süper sınırlı mı? ! Zhan Huang'ın yeni ayakkabıları çok havalı!
To Top