คำนำ:
ในอดีตเมื่อเรากำลังสร้างโครงการเราทั้งสองได้สร้างแพ็คเกจทั้งหมดในโครงการเดียวซึ่งสะดวกมากเมื่อประมวลผลการอ้างอิง ไม่ต้องกังวลบางสิ่งไม่สามารถกำหนดค่าหรืออ่านได้
หรือแยกแพ็คเกจออกเป็นโครงการหรือโครงการย่อย ในเวลานี้การประมวลผลอ้างอิงในโครงการยังคงลำบากเล็กน้อย อย่างไรก็ตามผลประโยชน์มีมากขึ้นดังนั้นฉันจะไม่แสดงออกอีกต่อไป
ในความคิดขอแนะนำให้ใช้โครงการก่อสร้างหลายโมดูลแทนวิธีการใน Eclipse จากนั้นลองแยกโครงการ Springboot ออกเป็น submodule เพื่อดูว่ามันทำงานอย่างไร
โครงการแยก:
1. การเปลี่ยนแปลงของไดเรกทอรี
2. โครงการหลัก
ในทางทฤษฎีผู้ปกครอง pom.xml ควรเป็นข้อ จำกัด ในการอ้างอิงในโครงการเด็กส่วนใหญ่เป็นข้อ จำกัด ของรุ่น
ดังนั้นใน PARTER POM.XM ควรใช้การจัดการพึ่งพาเพื่อ จำกัด เวอร์ชันแพ็คเกจ JAR ในโครงการย่อย
จากนั้นสำหรับการอ้างอิงที่มีประโยชน์สำหรับโครงการย่อยบางโครงการคุณสามารถพูดถึงพวกเขาในโครงการหลัก
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/ XSI: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" <Sersion> 0.0.1-SNAPSHOT </เวอร์ชัน> <packaging> POM </packaging> <name> Parent </name> <scription> โครงการสาธิตสำหรับการบูตฤดูใบไม้ผลิ </คำอธิบาย> <parent> <roupid> org.springframework.boot </groupid> <ratifactid> ฤดูใบไม้ผลิ การค้นหาพาเรนต์จากที่เก็บ-> </parent> <modules> <module> pojo </module> <module> เว็บ </module> <module> dao </dodule> <module> บริการ </module> <module> simpl </dolect.8 <Project.Reporting.UutputEncoding> UTF-8 </Project.Reporting.UutputUntEnding> <Java.Version> 1.8 </Java.Version> <Druid.Version> 1.1.3 </druid.version> <mysql.connector.java.version> 5.1.44 </mysql.connector.java.version> </premerties> <perdencyManagement> <การพึ่งพา> <การพึ่งพา> <roupid> com.alibaba </groupid> <RoupID> org.mybatis.spring.boot </groupId> <ratifactId> mybatis-spring-boot-starter </artifactid> <sersion> $ {mybatis.boot.starter.version} </เวอร์ชัน> <ArtIfactId> mysql-connector-java </artifactid> <sersion> $ {mysql.connector.java.version} </เวอร์ชัน> </perdency> <ArtIfactId> Spring-Boot-Starter-WEB </artifactId> </การพึ่งพาอาศัย> <การพึ่งพา> <GroupId> org.springframework.boot </groupId> <RoupID> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Maven-Plugin </artifactid> </plugin>3. โครงการย่อย - Pojo
3.1 pom.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/ XSI: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" <ArtIfactId> Parent </artifactId> <persion> 0.0.1-Snapshot </เวอร์ชัน> </parent> <roupId> cn.elvinle </groupId> <ratifactid> pojo </artifactid> <cross> <prowies> <Project.build.sourceencoding> UTF-8 </project.build.sourceencoding> <project.raporting.outputUntencoding> UTF-8 </project.Reporting.outputuTening> <java.Version> 1.8 <RoupID> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Maven-Plugin </artifactid> </plugin>
3.2 เดซิเบลเอนทิตี
แพ็คเกจ cn.elvinle.pojo;/** * @author: elvin */ผู้ใช้ระดับสาธารณะ {ID ส่วนตัว ID; ชื่อสตริงส่วนตัว; สาธารณะ int getId () {return id; } โมฆะสาธารณะ setId (int id) {this.id = id; } สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; -สำหรับเนื้อหาใน Pojo และ Dao คุณสามารถใช้ MyBatis Reverse Engineering เพื่อสร้างมันซึ่งสามารถบันทึกปัญหาได้มากมาย
4. โครงการย่อย- Dao
4.1 pom.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/ XSI: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" <ArtIfactId> Parent </artifactId> <persion> 0.0.1-Snapshot </เวอร์ชัน> </parent> <roupId> cn.elvinle </groupid> <ratifactid> dao </artifactid> <version> 0.0.1-snapshot </เวอร์ชัน> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.raporting.UutputPutencoding> UTF-8 </project.Reporting.outputEncoding> <RoupID> cn.elvinle </groupId> <ratifactid> pojo </artifactid> <cersion> 0.0.1-snapshot </เวอร์ชัน> </การพึ่งพาอาศัย> <!-การอ้างอิงภายนอก-> <! <ArtIfactId> druid </artifactid> </serdency> <การพึ่งพา> <roupId> MySQL </groupId> <ArtIfactId> mysql-connector-java </artifactid> </การพึ่งพา> <predency> <ArtIfactId> MyBatis-Spring-Boot-Starter </artifactid> </การพึ่งพาอาศัย> </การพึ่งพา> <uffer> <plugins> <plugin> <splugin> <loupid> org.springframework.boot </groupid>
4.2 Mapper
usermapper.java:
อินเทอร์เฟซสาธารณะ usermapper {รายการสาธารณะ <ผู้ใช้> getall ();}usermapper.xml:
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! doctype mapper สาธารณะ "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" namespace = "cn.elvinle.dao.mapper.usermapper"> <select id = "getall" resultSpe = "cn.elvinle.pojo.user"> เลือก * จากผู้ใช้ </select> </mapper>
5. โครงการย่อย
5.1 pom.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/ XSI: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" <ArtIfactId> Parent </artifactid> <persion> 0.0.1-snapshot </เวอร์ชัน> </parent> <roupId> cn.elvinle </groupid> <ratifactid> บริการ </artifactid> <persion> 0.0.1-snapshot </เวอร์ชัน> <Project.build.sourceencoding> UTF-8 </project.build.sourceencoding> <project.raporting.OutputUntencoding> UTF-8 </project.Reporting.outputencoding> <RoupID> cn.elvinle </groupId> <ratifactid> pojo </artifactid> <cersion> 0.0.1-snapshot </เวอร์ชัน> </perdency> </pendencies> <uffect> <build> </plugins> </uffer> </project>
5.2 Userservice.java
ผู้ใช้งานสาธารณะผู้ใช้งาน {รายการสาธารณะ <user> getAll ();}6. โครงการย่อย - Simpl
6.1 pom.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/ XSI: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" <ArtIfactId> Parent </artifactId> <persion> 0.0.1-Snapshot </เวอร์ชัน> </parent> <roupId> cn.elvinle </groupid> <ratifactid> simpl </artifactid> <crosplut> <Project.build.sourceencoding> UTF-8 </project.build.sourceencoding> <project.raporting.OutputUntencoding> UTF-8 </project.Reporting.outputencoding> <RoupID> cn.elvinle </groupId> <ratifactid> pojo </artifactid> <version> 0.0.1-snapshot </เวอร์ชัน> </การพึ่งพา> <การพึ่งพา> <roupid> cn.elvinle </groupid> <RoupID> CN.ELVINLE </GroupID> <ARTIFACTID> DAO </ARTIFACTID> <Sersion> 0.0.1-SNAPSHOT </เวอร์ชัน> </การพึ่งพาอาศัย> </การพึ่งพาอาศัย> </การพึ่งพา> </uffIC </plugin> </plugins> </uffer> </ched>
6.2 usersimpl
@ServicePublic Class Usersimpl ใช้ UserserVice {@AutoWired USERMAPPER ส่วนตัว USERMAPPER; @Override รายการสาธารณะ <user> getAll () {system.out.println ("usersimpl getall"); ส่งคืน usermapper.getall (); -7. โครงการย่อย - เว็บ
สถานที่สำคัญอยู่ที่นี่
7.1 pom.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/ XSI: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" <ArtIfactId> Parent </artifactid> <persion> 0.0.1-snapshot </เวอร์ชัน> </parent> <roupid> cn.elvinle </groupid> <ratifactid> เว็บ </artifactid> <persion> 0.0.1-snapshot </เวอร์ชัน> <Project.build.sourceencoding> UTF-8 </project.build.sourceencoding> <project.raporting.OutputUntencoding> UTF-8 </project.Reporting.outputencoding> <RoupID> cn.elvinle </groupId> <ratifactid> simpl </artifactid> <version> 0.0.1-snapshot </เวอร์ชัน> </percterency> </pendencies> <uffer> <build> </plugins> </uffer> </project>
7.2 Application.yml
เซิร์ฟเวอร์: บริบท-ธนู:/พอร์ตหลัก: 8080MyBatis: การกำหนดค่าตำแหน่ง: /mapper/*.xmlspring: DataSource: ชื่อผู้ใช้: รูทรหัสผ่าน: รูท URL: JDBC: mysql: // localhost: 3306/shop? useunicode = true & ristiamb-8
7.3 คอนโทรลเลอร์
@restcontroller @requestmapping ("api") คลาสสาธารณะ apicontroller {@autoWired Userservice ผู้ใช้บริการ; @RequestMapping ("ดัชนี") รายการสาธารณะ <user> index () {รายการ <user> all = userservice.getall (); คืนทั้งหมด; -จนถึงตอนนี้ไม่มีอะไรพิเศษมันได้รับการแก้ไขตามปกติ ถัดไปจะมีความแตกต่างจากที่ไม่มีโมดูล
7.4 การดัดแปลงที่ทางเข้า
@componentscan ({"cn.elvinle"})@springbootapplicationpublic คลาส webapplication {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {springapplication.run (webapplication.class, args); -ในเวลานี้หากโปรแกรมทำงานโดยตรงมันจะไม่สามารถเข้าถึงได้สำเร็จ เหตุผลก็คือการกำหนดค่าอัตโนมัติและการสร้างระบบอัตโนมัติของ MyBatis ไม่ได้รับการสนับสนุนในหลายโมดูล
ในเวลานี้เราต้องกำหนดค่าและสร้างด้วยตนเอง
7.5 การกำหนดค่า mybatis java
<!-MyBatis Factory-> <bean id = "SQLSessionFactory"> <property name = "dataSource" ref = "dataSource"/> <property name = "การกำหนดค่า" value = "classpath: mybatis/sqlmapconfig.xml"/> <! value = "classpath: mapper /*. xml" />-> </ebean> <!-ชื่อแพ็คเกจที่อินเทอร์เฟซ DAO ตั้งอยู่สปริงจะค้นหาคลาสภายใต้มันโดยอัตโนมัติ-> <bean id = "mapperscannerConfigurer"> <property name = "basePackage" value = "cn.elvinle.bookshop.mapper value = "SQLSessionFactory"/> </ebean>
คุณสามารถใช้การกำหนดค่า Java เพื่อเปรียบเทียบไฟล์การกำหนดค่าด้านบน
mybatisconfig:
@ConfigurationPublic คลาส mybatisconfig {@value ("$ {mybatis.config-location}") สตริงส่วนตัว mapperlocationpattern; @Bean @ConfigurationProperties (prefix = "spring.datasource") DataSource Public DataSource () {ส่งคืน com.alibaba.druid.pool.druiddatasource () ใหม่ } @Bean (name = "SQLSessionFactory") สาธารณะ SQLSessionFactory SQLSessionFactory () พ่นข้อยกเว้น {SQLSessionFactoryBean SQLSessionFactoryBean = ใหม่ SQLSessionFactoryBean (); SQLSessionFactoryBean.setDataSource (DataSource ()); PathMatchingResourcePatterNresolver Resolver = ใหม่ PathMatchingResourcePatterNresolver (); SQLSessionFactoryBean.SetMapperLocations (Resolver.getResources (MapperLocationPattern)); ส่งคืน sqlsessionfactorybean.getObject (); -mybatismapperscannerconfig:
@การกำหนดค่า@autoconfigureafter (mybatisconfig.class) @mapperscan ("cn.elvinle.dao.mapper") ชั้นเรียนสาธารณะ MapperscannerConfigurer (); MappersCannerConfigurer.SetSqlSessionFactoryBeanName ("SQLSessionFactory"); MapperscannerConfigurer.setBasePackage ("cn.elvinle.dao.mapper"); ส่งคืน mapperscannerconfigurer; -ตกลงที่นี่คุณสามารถเรียกใช้โปรแกรมและดูผลลัพธ์:
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น