序文:
過去には、プロジェクトを構築していたとき、すべてのパッケージを1つのプロジェクトに構築しました。これは、参照を処理するときに非常に便利でした。心配しないでください、いくつかのものを構成したり読んだりできません。
または、パッケージをプロジェクトまたはサブプロジェクトに分離します。現時点では、プロジェクトの参照処理はまだ少し面倒です。しかし、利点はもっとあるので、私はもうそれを表現しません。
アイデアでは、日食の方法ではなくマルチモジュール建設プロジェクトを使用することをお勧めします。次に、スプリングブートプロジェクトをサブモジュールに分割して、どのように機能するかを確認してみてください。
プロジェクト分割:
1。ディレクトリの変更
2。親プロジェクト
理論的には、親pom.xmlは、主にバージョンの制約、児童プロジェクトの参照の制約である必要があります。
したがって、親pom.xmでは、Subprojectの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 <http://www.w3.org/2001 xsi:schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.0.sd" <バージョン> 0.0.1-snapshot </version> <packaging> pom </packaging> <name>親</name> <説明> spring boot </description> <parent> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-parent </artifactid>リポジトリのルックアップ親 - > </parent> <モジュール> <モジュール> pojo </module> <module> web </module> <odule> dao </module> <module> service </module> <odule> simple> </modules> <properties> <propropetities> <project.build.sourceding> utf-8 </prod.bued.bued. <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.boot.tarter. <mysql.connector.java.version> 5.1.44 </mysql.connector.java.version> </properties> <dependencymanagement> <dependency> <dependency> com.alibaba </groupid> <artifactid> druid </artifactId <groupid> org.mybatis.spring.boot </groupid> <artifactid> mybatis-spring-boot-starter </artifactid> <version> $ {mybatis.boot.starter.version} </version> </dependency> <dependency> <mysql </groupid> <artifactid> mysql-connector-java </artifactid> <version> $ {mysql.connector.java.version} </version> </dependency> </dependency> </dependencymanagement> <! - 宣言依存関係 - > <依存関係> < <artifactid> spring-boot-starter-web </artifactid> </dependency> <dependency> groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-test </artifactid> </dependency> </dependency> <gripid> org.springframework.boot </groupid> <artifactid> spring-boot-maven-plugin </artifactid> </plugin> </plugins> </build> </project>3。Subproject -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-instance <http://www.w3.org/2001 xsi:schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.0.sdsd"> <modelversion> 4.0.0 </modelversion> <artifactid> parent </artifactid> <バージョン> 0.0.1-snapshot </version> </parent> <groupid> cn.elvinle </groupid> <artifactid> pojo </artifactid> 0.0.1-snapshot </snapshot </バージョン> <パッケージ> jar < <properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting.outputencoding <gripid> 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(string name){this.name = 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 <http://www.w3.org/2001 xsi:schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.0.sdsd"> <modelversion> 4.0.0 </modelversion> <artifactid> parent </artifactid> <バージョン> 0.0.1-snapshot </version> </parent> <groupid> cn.elvinle </groupid> <artifactid> dao </artifactid> 0.0.1-snapshot </snapshot </version> <packaging> jar </packagiang> <name </dao> <> <> <>> <> <> dao < <properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting.outputencoding <groupId> cn.elvinle </groupId> <artifactid> pojo </artifactid> <バージョン> 0.0.1-snapshot </version> </dependency> <! - 外部参照 - > <! - https://mvnrepository.com/artifact/com.alibaba/ <artifactid> druid </artifactid> </dependency> <dependency> <groupid> mysql </groupid> <artifactid> mysql-connector-java </artifactid> </dependency> dependency> org.mybatis.spring.boot </groupid> <Artifactid> mybatis-spring-boot-starter </artifactid> </dependency> </dependency> <bultins> <brubins> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-maven-plugin </artifactid> </plugin> </bulpin>
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" namespace = "cn.elvinle.dao.mapper.usermapper"> <select id = "getall" resulttype = "cn.elvinle.pojo.user"> select * fromユーザー</select> </mapper>
5。Subproject-Service
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 <http://www.w3.org/2001 xsi:schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.0.sdsd"> <modelversion> 4.0.0 </modelversion> <artifactid> parent </artifactid> <バージョン> 0.0.1-snapshot </version> </parent> <groupid> cn.elvinle </groupid> <artifactid>サービス</artifactid>サービス</artifactid>サービス</artifactid> <バージョン<project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting.outputencoding> <java.version> 1.8 </java.version> </propties> <redencies> <redencies> <GroupId> cn.elvinle </groupid> <artifactid> pojo </artifactid> <version> 0.0.1-snapshot </version> </dependency> </dependencies> <build> <blubins> <groupid> org.springframework.boot </groupid> spring-boot-maven-plugin </plugmen-plugin </プラグイン> </build> </project>
5.2 userservice.java
パブリックインターフェイスuserservice {public list <user> getall();}6。Subproject-シンプル
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 <http://www.w3.org/2001 xsi:schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.0.sdsd"> <modelversion> 4.0.0 </modelversion> <artifactid> parent </artifactid> <バージョン> 0.0.1-snapshot </version> </parent> <groupid> cn.elvinle </groupid> <artifactid> simple </artifactid> 0.0.1-snapshot </snapshot </version> <packaging> jar </packagian <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting.outputencoding> <java.version> 1.8 </java.version> </propties> <redencies> <redencies> <groupId> cn.elvinle </groupid> <artifactid> pojo </artifactid> <version> 0.0.1-snapshot </version> </dependency> <dependency> <groupid> cn.elvinle </groupid> <artifactid> service </artifactid>サービス</artifactid> <バージョン<GroupId> cn.elvinle </groupid> <artifactid> dao </artifactid> <version> 0.0.1-snapshot </version> </dependency> </dependency> </dependency> <plubins> org.springframework.boot </artifactid> <artifactid> </artifactid> artifactid> artifactid> artifactid </plugin> </plugins> </build> </project>
6.2 usersimpl
@servicepublic class usersimpl explments userservice {@autowired private usermapper usermapper; @Override public List <user> getall(){system.out.println( "usersimpl getall"); usermapper.getall()を返します。 }}7。Subproject -web
重要な場所はこちらです。
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 <http://www.w3.org/2001 xsi:schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.0.sdsd"> <modelversion> 4.0.0 </modelversion> <artifactid> parent </artifactid> <バージョン> 0.0.1-snapshot </version> </parent> <groupid> cn.elvinle </groupid> <artifactid> web </artifactid> <バージョン<project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting.outputencoding> <java.version> 1.8 </java.version> </propties> <redencies> <redencies> <GroupId> cn.elvinle </groupid> <artifactid> simple </artifactid> <version> 0.0.1-snapshot </version> </dependency> </dependencies> <bultins> <blubins> <groupid> org.springframework.boot </groupid> spring-boot-maven-plugin </plugmen-plugin </プラグイン> </build> </project>
7.2 Application.yml
サーバー:コンテキストパス:/親ポート:8080mybatis:config-location:/mapper/*.xmlspring:dataSource:username:root password:root url:jdbc:mysql:// localhost:3306/shop?useunicode = true&charaturecoding = utf-8ドライバー -
7.3コントローラー
@retscontroller @requestMapping( "API")パブリッククラスApicontroller {@autowired private userservice userservice; @RequestMapping( "index")public list <user> index(){list <user> all = userservice.getall();すべてを返します。 }}これまでのところ、特別なものは何もありません。それは正常に変更されています。次に、モジュールのないものと違いがあります。
7.4入り口での変更
@componentscan({"cn.elvinle"})@springbootapplicationpublic class webApplication {public static void main(string [] args){springApplication.run(webapplication.class、args); }}現時点では、プログラムが直接実行された場合、正常にアクセスされません。その理由は、MyBatisの自動構成と自動化の作成が複数のモジュールでサポートされていないためです。
現時点では、手動で構成して作成する必要があります。
7.5 MyBatis Java構成
<! - mybatis Factory - > <bean id = "sqlsessionfactory"> <プロパティ名= "dataSource" ref = "dataSource"/> <プロパティ名= "configlocation" value = "classpath:mybatis/sqlmapconfig.xml"/> <! value = "classpath:mapper /*。xml" /> - > < /bean> <! - daoインターフェイスがあるパッケージ名、springはその下にクラスを自動的に見つけます - > <bean id = "mapperscannerconfigurer"> <プロパティ名= "ベースパッケージ" value = " value = "sqlsessionfactory"/> </bean>
Java構成を使用して、上記の構成ファイルを比較できます
mybatisconfig:
@configurationPublic Class mybatisconfig {@value( "$ {mybatis.config-location}")private string mapperlocationpattern; @bean @configurationproperties(prefix = "spring.datasource")public dataSource dataSource(){return exe com.alibaba.druid.pool.druiddatasource(); } @bean(name = "sqlsessionfactory")public sqlsessionfactory sqlsessionfactory()throws exception {sqlsessionfactorybean sqlsessionfactorybean = new sqlsessionfactorybean(); sqlsessionfactorybean.setdatasource(datasource()); pathMatchingResourcePatterNRESOLVER Resolver = new PathMatchingResourcePatterNRESOLVER(); sqlsessionfactorybean.setMapperlocations(sloltver.getResources(mapperlocationPattern)); return sqlsessionfactorybean.getObject(); }}mybatismapperscannerconfig:
@configuration@autoconfigureaffter(mybatisconfig.class)@mapperscan( "cn.elvinle.dao.mapper")public class mybatismapperscannerconfig {public mapperscanneconfigurer mapperscannerconfigurer(){mapperscannerconfigurer mappersnerconcrurgurer(); mapperscannerconfigurer.setsqlsessionfactorybeanname( "sqlsessionfactory"); mapperscannerconfigurer.setbasepackage( "cn.elvinle.dao.mapper"); Return MapperScannerConfigurer; }}わかりました、ここでプログラムを実行して結果を確認できます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。