Kata pengantar:
Di masa lalu, ketika kami sedang membangun proyek, kami membangun semua paket dalam satu proyek, yang benar -benar nyaman saat memproses referensi. Jangan khawatir, beberapa hal tidak dapat dikonfigurasi atau dibaca.
Atau, pisahkan paket menjadi proyek atau sub-proyek. Pada saat ini, pemrosesan referensi dalam proyek masih sedikit merepotkan. Namun, manfaatnya lebih, jadi saya tidak akan mengekspresikannya lagi.
Dalam ide, disarankan untuk menggunakan proyek konstruksi multi-modul alih-alih jalan dalam gerhana. Kemudian, cobalah untuk membagi proyek Springboot menjadi submodule untuk melihat cara kerjanya.
Project Split:
1. Perubahan Direktori
2. Proyek Induk
Secara teori, orang tua Pom.xml harus menjadi kendala pada referensi dalam proyek anak, terutama kendala versi.
Oleh karena itu, dalam pom.xm induk, manajemen ketergantungan harus digunakan untuk membatasi versi paket JAR dalam subproyik.
Kemudian, untuk referensi yang berguna untuk beberapa subproyik, Anda dapat menyebutkannya dalam proyek induk.
<? Xml Version = "1.0" encoding = "UTF-8"?> <Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <ModelVersion> 4.0.0. <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>parent</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath/> <!-- Pencarian orangtua dari repositori-> </parents> <codules> <codule> pojo </podule> <dodule> web </codule> <podule> Dao </podule> <podule> Layanan </module> <codule> SimpleCoding> </modules> <Properties> <proyform.build.sourceencoding> </todoD8 <Properties> <proyforms.build.sourceencoding> <Project.Reporting.OutputEncoding> UTF-8 </project.reporting.outputEncoding> <Java.version> 1.8 </java.version> <druid.version.version.3.3. <mysql.connector.java.version> 5.1.44 </mysql.connector.java.version> </ Properties> <dependencyManagement> <dependency> <dependency> <RoupId> COM.ALIBABA </groupid> <Artifactid> druid </ArtIdid> </versi </groupid> <artifactid> druid </artidid> <ponificence> </groupid> <artifactid> druid </artifactid> <ponificence> $ {version> {versi {versi {druersion> {version> {version> {version> <GroupId> org.mybatis.spring.boot </groupId> <ArTifactId> mybatis-spring-boot-starter </t Artifactid> <version> $ {mybatis.boot.starter.version} </version> </dependency> <dependency> <groupid> mysql </groupl </versi <ArTifactId> mysql-connector-java </stifactid> <version> $ {mysql.connector.java.version} </version> </dependency> </dependency> </dependencymanagement> <!-mendeklarasikan dependensi-<dependency> <dependency> <dependency> <groupding> <groupding. <ArTifactId> Spring-boot-starter-web </stifactid> </gandendency> <dependency> <GroupId> org.springframework.boot </groupid> <ArtiFacTID> Spring-boot-starter-test </artifactid> </dependency> </dependency> </dependency </build> </artifactid> </dependency> </dependency> </dependency> </build> <groupId> org.springframework.boot </groupid> <ArTifactId> spring-boot-maven-plugin </artifactid> </lugin> </lugin> </build> </project>3. Subproyject - Pojo
3.1 pom.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <ModelVersion> 4.0.0 </ModelVersion> <partuger> <troupid> CN.ELVIN> CN.ELVIN> </ModelVersion> <partuger> <troupd> CN.elvon> <version> 0.0.1-Snapshot </version> </tchent> <groupid> cn.elvinle </groupId> <Artifactid> pojo </t Artifactid> <version> 0.0.1-Snapshot </version> <Packaging> JAR </packaging> <name> Pojo </nape> <packaging for SPOPLAGE> </packaging> <name> Pojo </name> <recripsion> Demo Project for Spring </packaging> <name> Pojo </name> <ves description> untuk Demo Project untuk SPOPING </packaging> <name> POJO </Name> DESKRIPSI> DESKRIPTIONS UNTUK PROPRAGE> DESKRIPSIT> <Project.build.sourceencoding> UTF-8 </project.build.sourceencoding> <poject.reporting.outputEncoding> UTF-8 </project.reporting.outputEncoding> <Java.version> 1.8 </java.versies> </Properties> <java.version> 1.8 </java.versies> </Properties> <java.version> <groupId> org.springframework.boot </groupid> <ArTifactId> spring-boot-maven-plugin </artifactid> </lugin> </lugin> </build> </project>
3.2 entitas dB
Paket cn.elvinle.pojo;/** * @author: elvin */pengguna kelas publik {private int id; nama string pribadi; publik int getId () {return id; } public void setid (int id) {this.id = id; } public string getName () {return name; } public void setName (name string) {this.name = name; }}Untuk konten di Pojo dan Dao, Anda dapat menggunakan rekayasa balik mybatis untuk menghasilkannya, yang dapat menghemat banyak masalah.
4. Subproject- dao
4.1 pom.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <ModelVersion> 4.0.0 </ModelVersion> <partuger> <troupid> CN.ELVIN> CN.ELVIN> </ModelVersion> <partuger> <troupd> CN.elvon> <version> 0.0.1-Snapshot </version> </tchent> <groupid> cn.elvinle </groupid> <ArTifactid> dao </t Artifactid> <version> 0.0.1-Snapshot </version> <Packaging> JAR </packaging> <name> Dao </nape> <packaging> untuk Properti BOOTIES> <name> <name> DAO </Name> DESKRIPSI> DRESKRESSI untuk Demo untuk Demo For SPREOM </PROPRIMENTION> <name> DAO </Name> DESKRIPSI> DESKRIPSI> UNTUK MROPOR> <Project.build.sourceencoding> UTF-8 </project.build.sourceencoding> <poject.reporting.outputEncoding> UTF-8 </project.report.outputenCoding> <java.version> 1.8 </java.version> </Properties> <Java.version> 1.8 </java.versies> </Properties> <Java.version> </java <groupId>cn.elvinle</groupId> <artifactId>pojo</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <!-- External reference--> <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <ArTifactId> druid </stifactid> </dependency> <dependency> <groupid> mysql </groupid> <ArtifactId> mysql-connector-java </arttifactid> </dependency> <dependency> <groupid> org.mybatis.spring.boot </groupid> <ArTifactId> mybatis-spring-boot-starter </arttifactid> </gandendency> </dependency> <build> <dlugin> <dlugin> <groupid> org.springframework.boot </groupid> <artifactid> </boots-maven-plugin </artifactid> </Artifactid> </boots-maven-plugin </artifactid> </artifactid> </boots-plugin </artifactid> </art/planin </boots-maven-plugin </artifactid> </art/orgin </clugin </artifactid> </art/orgen </art/art/org
4.2 Mapper
Usermapper.java:
Antarmuka Publik Usermapper {Daftar Publik <User> getAll ();}Usermapper.xml:
<? Xml Version = "1.0" encoding = "UTF-8"?> <! Doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper noPper = "caPper =" mapper.mapper.mapper = mapper = mapper = > <pilih id = "getAll" resultType = "cn.elvinle.pojo.user"> Pilih * dari pengguna </pilih> </mapper>
5. Layanan Subproyject
5.1 pom.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <ModelVersion> 4.0.0 </ModelVersion> <partuger> <troupid> CN.ELVIN> CN.ELVIN> </ModelVersion> <partuger> <troupd> CN.elvon> <version>0.0.1-SNAPSHOT</version> </parent> <groupId>cn.elvinle</groupId> <artifactId>service</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>service</name> <description>Demo project for Spring Boot</description> <properties> <Project.build.sourceencoding> UTF-8 </project.build.sourceencoding> <poject.reporting.outputEncoding> UTF-8 </project.report.outputenCoding> <Java.version> 1.8 </java.versies> </Properties> </versies> 1.8 </java.versies> </Properties> <puppening> <Java.versies> 1.8 </java.versies> </Properties> </Properties> <groupId> cn.elvinle </groupid> <ArTifactId> poJo </arttifactid> <version> 0.0.1-Snapshot </version> </gandendency> </dependency> <build> <t plugin> <groupid> org.springframework.boot </groupid> <ArTtifacTID> SPOING.SPRINGNEWork.BOOT </groupid> <ArTtifacTID> SPRING-BOKIN </ARTIUP.BOOT </GroupDID> <ArTtifacTID> SPRING-BOKIN </ARTOUP.BOOT </groupid> <ArTtifacTID> </slugin> </build> </joy Project>
5.2 Userservice.java
Public Interface UserService {Daftar Publik <User> getAll ();}6. Subproyject - Sederhana
6.1 pom.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <ModelVersion> 4.0.0 </ModelVersion> <partuger> <troupid> CN.ELVIN> CN.ELVIN> </ModelVersion> <partuger> <troupd> CN.elvon> <version> 0.0.1-snapshot </version> </tchent> <groupid> cn.elvinle </groupId> <ArTifactId> Simple </artifactid> <version> 0.0.1-Snapshot </version> <Packaging> JAR </packaging> <name> Simple </name> DESKRIPSI> DESKRIPSI PROYEK MPRINSIT> <Project.build.sourceencoding> UTF-8 </project.build.sourceencoding> <poject.reporting.outputEncoding> UTF-8 </project.report.outputenCoding> <Java.version> 1.8 </java.versies> </Properties> </versies> 1.8 </java.versies> </Properties> <puppening> <Java.versies> 1.8 </java.versies> </Properties> </Properties> <GroupId> cn.elvinle </groupId> <ArTifactId> poJo </artifactid> <version> 0.0.1-Snapshot </version> </dependency> <dependency> <groupid> CN.ELVINLE </Groupid> <ArtifactId> Layanan </ArtifactId> <version> 0.0.0.1.1 <groupId> cn.elvinle </groupId> <ArTifactId> dao </artifactid> <version> 0.0.1-Snapshot </version> </gandendency> </dependency> </dependency> </build> <sroupid> org. </lugin> </lugin> </build> </poject>
6.2 Pengguna IMPL
@ServicePublic kelas UsersImpl mengimplementasikan UserserService {@Autowired private usermapper userMapper; Daftar publik @Override <User> getAll () {System.out.println ("UsersImpl getAll"); return usermapper.getall (); }}7. Subproyject - Web
Tempat kuncinya ada di sini.
7.1 pom.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <ModelVersion> 4.0.0 </ModelVersion> <partuger> <troupid> CN.ELVIN> CN.ELVIN> </ModelVersion> <partuger> <troupd> CN.elvon> <version>0.0.1-SNAPSHOT</version> </parent> <groupId>cn.elvinle</groupId> <artifactId>web</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>web</name> <description>Demo project for Spring Boot</description> <properties> <Project.build.sourceencoding> UTF-8 </project.build.sourceencoding> <poject.reporting.outputEncoding> UTF-8 </project.report.outputenCoding> <Java.version> 1.8 </java.versies> </Properties> </versies> 1.8 </java.versies> </Properties> <puppening> <Java.versies> 1.8 </java.versies> </Properties> </Properties> <groupId> cn.elvinle </groupId> <ArTifactId> Simple </artifactid> <version> 0.0.1-Snapshot </version> </dependency> </dependencies> <build> <Art Plugin> <Roupid> org. </slugin> </build> </joy Project>
7.2 Application.yml
Server: Konteks-path:/Port induk: 8080Mybatis: config-location: /mapper/*.xmlspring: DataSource: Nama pengguna: Kata Sandi Root: Root URL: JDBC: MySQL: // LocalHost: 3306/Shop? Com. COMDBC = true & karakterencoding = utf-n-cleamsame: com. COMYIVEV. COMYV. COMYIVER.
7.3 Pengontrol
@Restcontroller @requestMapping ("API") Kelas Publik Apicontroller {@Autowired Private UserService UserService; @RequestMapping ("Index") Daftar Publik <User> index () {List <User> all = UsusService.getAll (); mengembalikan semua; }}Sejauh ini, tidak ada yang istimewa, telah dimodifikasi secara normal. Selanjutnya, akan ada perbedaan dari yang tanpa modul.
7.4 Modifikasi di pintu masuk
@ComponentScan ({"cn.elvinle"})@springbootApplicationPublic kelas WebApplication {public static void main (string [] args) {springApplication.run (webapplication.class, args); }}Pada saat ini, jika program dijalankan secara langsung, itu tidak akan berhasil diakses. Alasannya adalah bahwa konfigurasi otomatis dan pembuatan otomatisasi MyBatis tidak didukung dalam beberapa modul.
Saat ini, kita perlu mengonfigurasi dan membuat secara manual.
7.5 Konfigurasi Mybatis Java
<!-Mybatis Factory-> <bean id = "sqlSessionFactory"> <name properti = "DataSource" ref = "DataSource"/> <name properti = "configLocation" value = "classpath: mybatis/sqlmapconfig.xml"/<!-classpath: mybatis/sqlmapconfig.xml "/<!-automatally scan mapping.xmapation (" aTOMOMATITLET/SQLMAPCONFIG.XML "/<!-automatally scan mapping. value = "classpath: mapper /*. xml" />-> </ bean> <!-Nama paket di mana antarmuka DAO berada, Spring akan secara otomatis menemukan kelas di bawahnya-> <bean id = "mapperscannerconfigurer"> <name property = "basepackage" value = "cn.elvinle.bookshop.mapper" name = "name =" cn.elvinle.bookshop.mapper "name =" "cn.elvinle.bookshop.mapper" name = "" cn.elvinle.bookshop.mapper "" cn.elvinle.bookshop.mapper " value = "sqlSessionFactory"/> </t bean>Anda dapat menggunakan konfigurasi java untuk membandingkan file konfigurasi di atas
Mybatisconfig:
@ConfigurationPublic kelas myBatisconfig {@value ("$ {mybatis.config-location}") private string mapperlocationPattern; @Bean @configurationproperties (prefix = "spring.datasource") public dataSource dataSource () {return baru com.alibaba.druid.pool.druidDataSource (); } @Bean (name = "sqlSessionFactory") public sqlsessionFactory sqlsessionFactory () melempar pengecualian {sqlsessionFactoryBean sqlsessionFactoryBean = sqlSessionFactoryBean () baru; SQLSessionFactoryBean.SetDataSource (DataSource ()); PathMatchingResourcePatternResolver resolver = baru PathMatchingResourcePatternResolver (); SQLSessionFactoryBean.SetMapperLocations (resolver.getResources (mapperlocationPattern)); return sqlSessionFactoryBean.getObject (); }}Mybatismapperscannerconfig:
@Configuration@AutoConfigureAfter(MybatisConfig.class)@MapperScan("cn.elvinle.dao.mapper")public class MybatisMapperScannerConfig { public MapperScannerConfigurer mapperScannerConfigurer(){ MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer(); MappersCannerConfigurer.setsqlsessionFactoryBeanName ("SQLSessionFactory"); MappersCannerConfigurer.setBasepackage ("cn.elvinle.dao.mapper"); Return MappersCannerConfigurer; }}Oke, di sini Anda dapat menjalankan program dan melihat hasilnya:
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.