머리말:
과거에는 프로젝트를 구축 할 때 한 프로젝트에 모든 패키지를 구축했는데, 이는 참조를 처리 할 때 정말 편리했습니다. 걱정하지 마십시오. 일부는 구성하거나 읽을 수 없습니다.
또는 패키지를 프로젝트 또는 하위 프로젝트로 분리하십시오. 현재 프로젝트의 참조 처리는 여전히 약간 번거 롭습니다. 그러나 혜택이 더 많기 때문에 더 이상 표현하지 않을 것입니다.
아이디어에서, 일식의 길 대신 다중 모듈 건설 프로젝트를 사용하는 것이 좋습니다. 그런 다음 SpringBoot 프로젝트를 하위 모듈로 나누어 작동 방식을 확인하십시오.
프로젝트 분할 :
1. 디렉토리 변경
2. 부모 프로젝트
이론적으로, 부모 pom.xml은 아동 프로젝트의 참조, 주로 버전 제약 조건에 대한 제약 조건이어야합니다.
따라서 Parent Pom.xm에서 Suble -Project의 JAR 패키지 버전을 제한하는 데 종속성 관리를 사용해야합니다.
그런 다음 일부 하위 프로젝트에 유용한 참조의 경우 상위 프로젝트에서 언급 할 수 있습니다.
<? 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-instance" xsi : schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.xsd"> <modeversion> 4.0.0 </modelversion> <groupid> cn.elvinle> <artifactid> <버전> 0.0.1-snapShot </version> <packaging> pom </packaging> <name> parent </name> <description> 스프링 부츠를위한 데모 프로젝트 </descrip> <perge> org.springframework.boot </groupid> <artifactid> spring-boot-starter-parent </artifactid> <version> 1.9. </version> 9. relative> </relative> <version> <version>. 저장소의 부모-> </parent> <modules> <module> pojo </module> <module> web </module> <module> dao </module> <module> </module> <module> simpl </module> </modules> <project.build.sourceencoding> utf-8 </puild. <project.reporting.outputencoding> utf-8 </project.reporting.outputencoding> <java.version> 1.8 </java.version> <druid.version> 1.1.3 </druid.version> <mybatis.boot.starter.version> 1.3.1 </mybatis.starter.sverition <mysql.connector.java.version> 5.1.44 </mysql.connector.java.version> </properties> <pectionencymanagement> <pectionency> <prectionement> <groupid> com.alibaba </groupid> <artifactid> druid> dependency> $ {druid.version}} </version}} <groupid> org.mybatis.spring.boot </groupid> <artifactid> mybatis-spring-boot-starter </artifactid> <버전> $ {mybatis.boot.starter.version} </version> </dependency> <groupid> mysql> <artifactid> mysql-connector-java </artifactid> <bersion> $ {mysql.connector.java.version} </version> </dependency> </dependencymanagement> <!-deplare-> <pectionies> <pectional <groupid> groupid> <Artifactid> Spring-Boot-starter-web </artifactid> </fectionency> <pectomency> <groupid> org.springframework.boot </groupid> <trifactid> Spring-Boot-Starter-Test </atrifactid> </dependency> </dependency> <plugins> <plugins> <groupid> org.springframework.boot </groupid> <artifactid> Spring-boot-maven-plugin </artifactid> </plugin> </plugins> </build> </project>3. 하위 프로젝트 - 포조
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-instance" xsi : schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.xsd"> <modeversion> 4.0.0 </modelversion> <부모> <lust> <pust> <groupid> cn.elvinle> <artifactid> <버전> 0.0.1-snapShot </version> </parent> <groupid> cn.elvinle </groupid> <artifactid> pojo </artifactid> <bersion> 0.0.1-snapshot </version> <packaging> jar </packaging> <name> pojo </name> <desslic> 스프링 부트를위한 데몬 프로젝트> <propties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting.outputencoding> <java.version> 1.8 </java.version> </properties> <plugins> <groupid> org.springframework.boot </groupid> <artifactid> Spring-boot-maven-plugin </artifactid> </plugin> </plugins> </build> </project>
3.2 DB 엔티티
패키지 cn.elvinle.pojo;/** * @author : elvin */public class user {private int id; 개인 문자열 이름; public int getid () {return id; } public void setid (int id) {this.id = id; } public String getName () {return name; } public void setName (문자열 이름) {this.name = 이름; }}Pojo 및 Dao의 콘텐츠의 경우 Mybatis 리버스 엔지니어링을 사용하여 생성 할 수있어 많은 문제를 절약 할 수 있습니다.
4. 하위 프로젝트- 다오
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-instance" xsi : schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.xsd"> <modeversion> 4.0.0 </modelversion> <부모> <lust> <pust> <groupid> cn.elvinle> <artifactid> <버전> 0.0.1-snapShot </version> </parent> <groupId> cn.elvinle </groupId> <artifactid> dao </artifactid> <snapshot </version> <packaging> jar </packaging> <name> dao </name> <description> 스프링 부트를위한 데모 프로젝트> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting.outputencoding> <java.version> 1.8 </java.version> </properties> <!-내부 참조> <groupid> cn.elvinle </groupid> <artifactid> pojo </artifactid> <bersion> 0.0.1-snapshot </version> </fectionency> <!-외부 참조-> <!-https://mvnrepository.com/artifact/com.alibaba/druid-> <artifactid> druid </artifactid> </dependency> <pectionency> <groupid> mysql </groupid> <artifactid> mysql-connector-java </artifactid> </fexendency> <groupid> org.mybatis.spring.boot </groupid> <artifactid> mybatis-spring-boot-starter </artifactid> </fectionement> </fectionency> <build> <plugins> <plugin> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-maven-plugin </arlufact> </plugins> </build> </build> </build>
4.2 매퍼
usermapper.java :
공개 인터페이스 usermapper {public list <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 Namperor "<cn.elvinle.dao.mapper.dao. id = "getall"resulttype = "cn.elvinle.pojo.user"> select * from user </select> </mapper>
5. 하위 프로젝트 서비스
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-instance" xsi : schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.xsd"> <modeversion> 4.0.0 </modelversion> <부모> <lust> <pust> <groupid> cn.elvinle> <artifactid> <버전> 0.0.1-snapshot </version> </parent> <groupid> cn.elvinle </groupid> <artifactid> 서비스 </artifactid> <snapshot </version> <packaging> jar </packaging> <name> service </name> <description> 봄 부트를위한 demo 프로젝트> <Properties> <project.build.sourceencoding> utf-8 </project.build.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting.outputencoding> <java.version> 1.8 </java.version> </properterties> <pelection> <groupd> eldinle> <lpection> <Artifactid> pojo </artifactid> <버전> 0.0.1-snapshot </version> </dependency> </fectionencies> <build> <plugins> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-maven-plugin </artifactid> </plugin> </plugins> </build>
5.2 Userservice.java
공개 인터페이스 사용자 서비스 {public list <user> getall ();}6. 하위 프로젝트 - 단순합니다
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-instance" xsi : schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.xsd"> <modeversion> 4.0.0 </modelversion> <부모> <lust> <pust> <groupid> cn.elvinle> <artifactid> <버전> 0.0.1-snapShot </version> </parent> <groupId> cn.elvinle </groupid> <artifactid> simpl </artifactid> <bersion> 0.0.1-snapshot </version> <packaging> jar </packaging> <name> simpl </name> <description> 스프링 부트를위한 데모 프로젝트> <Propertties> <project.build.sourceencoding> utf-8 </project.build.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting.outputencoding> <java.version> 1.8 </java.version> </properterties> <pelection> <groupd> eldinle> <lpection> <Artifactid> pojo </artifactid> <버전> 0.0.1-snapshot </version> </dependency> <prectionemency> <groupid> cn.elvinle </groupid> <artifactid> service </artifactid> <버전> 0.0.1-snapshot </despondency> <groupd> cn.elvinle> </groupid> <Artifactid> dao </artifactid> <bersion> 0.0.1-snapshot </version> </dependency> </fectionency> </fectionency> </build> <groupins> <groupId> org.sprampramewort.boot </groupid> <artifactid> spring-boot-maven-plugin </plugin> </flugin> </flugin>
6.2 userimpl
@ServicePublic Class UsersImpl은 UsersErvice {@autowired private usermapper usermapper를 구현합니다. @override public list <user> getall () {system.out.println ( "userimpl getall"); usermapper.getall ()을 반환합니다. }}7. 하위 프로젝트 - 웹
중요한 장소는 여기 있습니다.
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-instance" xsi : schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.xsd"> <modeversion> 4.0.0 </modelversion> <부모> <lust> <pust> <groupid> cn.elvinle> <artifactid> <버전> 0.0.1-snapShot </version> </parent> <groupId> cn.elvinle </groupid> <artifactid> web </artifactid> <bersion> 0.0.1-snapshot </version> <packaging> jar </packaging> <name> web </name> <description> 봄 부트를위한 demo 프로젝트> <Properties> <project.build.sourceencoding> utf-8 </project.build.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting.outputencoding> <java.version> 1.8 </java.version> </properterties> <pelection> <groupd> eldinle> <lpection> <Artifactid> simplp </artifactid> <bersion> 0.0.1-snapshot </version> </fectionency> </fectionements> <build> <plugins> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-maven-plugin </plugin> </plugin> </plugins> </plugins>
7.2 Application.yml
서버 : Context-Path :/Parent Port : 8080MyBatis : config-location : /mapper/* .xmlspring : dataSource : username : root 암호 : 루트 URL : JDBC : JDBC : MySQL : // localHost : 3306/Shop? USEUNICODE = true & characterEncoding = utf-8 Driver Class-Name : com.mysql.j.
7.3 컨트롤러
@restController @requestMapping ( "API") public class apicontroller {@autowired private uservice userervice; @requestmapping ( "index") public list <user> index () {list <user> all = userervice.getall (); 모두 반환; }}지금까지 특별한 것은 없으며 정상적으로 수정되었습니다. 다음으로 모듈이없는 것과는 차이가 있습니다.
7.4 입구에서 수정
@ComPonentScan ({ "Cn.Elvinle"})@SpringBootApplicationPublic Class WebApplication {public static void main (String [] args) {springApplication.run (webApplication.class, argss); }}현재 프로그램이 직접 실행되면 성공적으로 액세스하지 못합니다. 그 이유는 MyBatis의 자동 구성 및 자동화 생성이 여러 모듈에서 지원되지 않기 때문입니다.
현재 우리는 수동으로 구성하고 만들어야합니다.
7.5 Mybatis Java 구성
<!-myBatis factory-> <bean id = "sqlsessionFactory"> <property name = "dataSource"ref = "dataSource"/> <property name = "configlocation"value = "classpath : myBatis/sqlmapconfig.xml"/> <!-<spocative name = "property name =" "mapperlocation" value = "classpath : mapper /*. xml" />-> < /bean> <!-DAO 인터페이스가 위치한 패키지 이름, 스프링은 자동으로 클래스를 자동으로 찾을 것입니다-> <bean id = "mapperscannerconfiger"> <property name = "basepackage"value = "cn.elvinle.bookshop.mapper" /<Property Name " value = "sqlsessionfactory"/> </bean>
Java 구성을 사용하여 위 구성 파일을 비교할 수 있습니다.
mybatisconfig :
@ConfigurationPublic Class MyBatisconFig {@Value ( "$ {myBatis.config-location}") private String mapperLocationPattern; @bean @configurationProperties (prefix = "spring.datasource") public dataSource dataSource () {return new com.alibaba.druid.pool.druiddatasource (); } @Bean (name = "sqlsessionFactory") public sqlsessionFactory sqlsessionFactory ()는 예외 {sqlsessionFactoryBean sqlsessionFactoryBean = new sqlSessionCeptoryBean (); sqlsessionfactorybean.setdatasource (dataSource ()); PathMatchingResourCepatternResolver Resolver = New PathMatchingResourCepatternResolver (); sqlsessionFactoryBean.setMapperLocations (resolver.getResources (mapperLocationPattern)); 반환 sqlsessionfactorybean.getObject (); }}mybatismapperscannerconfig :
@configuration@autoconfigureatter (mybatisconfig.class) @mapperscan ( "cn.elvinle.dao.mapper") public class mybatismapperscannerconfig {public mapperscannerConfiger MapperscannerConfigurer () {mappercannerConfurer mappercannerConfurer mapporcannnerconnnerconfurer mapporcanfigconfigercanfigercanfigercanfigercanfigercanfigercanfiger MapperscannerConfigurer (); MappersCannerConfigurer.SETSQLSESSIONFACTORYBEANNAME ( "SQLSESSIONFACTORY"); MapperscannerConfigurer.SetBasePackage ( "CN.ELVINLE.DAO.MAPPER"); MapperscannerConfigurer를 반환합니다. }}좋아, 여기에서 프로그램을 실행하고 결과를 볼 수 있습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.