直接使用達人の前に、Mavenのは、最も基本的な使用方法を理解が、達人の総合的な理解をしておりません、Mavenは今日だけの達人がspringbootの後ろに理解を容易にするための新しい理解を行うために、ジャーパッケージを導くために知っています:
1.maven父と息子のプロジェクト:Mavenの親プロジェクトを作成します
親プロジェクトは、JARパッケージを管理するための唯一の責任があるので、あなたは、正常に削除srcフォルダを作成した後
親プロジェクトと実質的な内容1.1は、すべてのjarパッケージは任意の論理openメソッドに参加することはできませんジャーパッケージを管理する必要があることを、内側にあります
そして、プロジェクトPOMファイル輸入依存の父:
< 依存性> <! - mysqlの包- > < 依存> < groupIdを> mysqlの</ groupIdを> < たartifactId >のmysql-コネクタ-javaの</ たartifactId > < バージョン> 5.1.45 </ バージョン> </ 依存関係> < ! - 春包- > <! - MyBatisの包- > <! - 史朗包- > </ 依存関係>
我々は輸入に依存しすぎている以前のプロジェクトでは、輸入依存関係は今、親プロジェクトにサブモジュールを作成します
サブプロジェクトを作成した後、振り返ってみると、親のポンポンファイルの作品を参照してください。
これは、作成したサブモジュールは、プロジェクト内の親ポンポンファイルに表示されて見ることができ、POMファイル内のサブプロジェクトでは、コードのこの部分を持っています
モジュールは、親プロジェクトに依存して、親は、プロジェクトの依存関係を管理するために使用され、親作品を識別するので、親プロジェクト内のいくつかの依存は、サブプロジェクトが継承に依存し、したがって、各サブプロジェクトになり再びインポートされ
2.親プロジェクトでサブモジュールの多くを持って、各サブモジュールは、未使用のパッケージ(:エンティティ、マッパー、サービス、IMPL、コントローラパッケージ)を表します
そして、すべてのjarパッケージは、キルトのプロジェクトは、親プロジェクトに継承されます
質問1:
あなたはたくさんに依存している場合、各モジュールは、機能のために責任があるので、それは、プロジェクトのパフォーマンスに影響を与える他のモジュールは、jarファイルのパッケージが必要ですが、父と息子のプロジェクトのルールのでしませんが、Webモジュールは、史郎のjarパッケージを必要とする場合、同じではありません力サブモジュールは、中瓶パッケージに導入され、各サブモジュールに導入されているであり、それは動作速度にプロジェクトのパフォーマンスに影響します。どのように解決するには?
<! - DependencyManagementラベルは、ラベルは瓶に親プロジェクトを上書きすることができ、必要に応じてプロジェクト、サブプロジェクトをキルトしませんジャーパッケージの制御を継承しています そして、(代わりに、親クラスのエンジニアリングを継承のバージョン番号を書いた場合、それは達人から再ダウンロードを意味し、)バージョン番号を記入する必要はありません- > < dependencyManagement > </ dependencyManagement >
次のように具体的な例としては、以下のとおりです。
<dependencyManagement> <dependencies> <!--mysql包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version> </dependency> <!--spring包--> <!--mybatis包--> <!--shiro包--> </dependencies> </dependencyManagement>
现在在父工程中,将jar包放入了dependencyManagement标签中,那么子模块就不能从父类中继承了,如果子工程需要用
不用写版本号,继承自父类。
使用maven的好处:
方便了整个项目的管理,解决了jar包冗余的问题,方便分布式开发
问题2:
如果开始分模块开发,那么之前我们项目中写的entity、controler、mapper、service等包都会被分成一个一个的模块,这时候,controller要调用service,service要调用mapper,可是不在一个模块中,如图:
仙子啊mapper中的UserMapper类内存在方法需要调用User实体:
User实体是在另一个model中的,调不到怎么解决?
使用工程依赖
在mapper项目中的pom.xml文件中以jar包的形式引入model项目即可
一旦使用量的工程依赖,就会出现层级依赖
在mapper模块的pom文件中引入model:
<dependency> <!--groupId与父工程的一样--> <groupId>com.zs</groupId> <!--需要引入的模块--> <artifactId>model</artifactId> <!--需要引入的版本号--> <version>1.0-SNAPSHOT</version> </dependency>
然后就可以在mapper中引入User对象了:
问题3:
使用了层级依赖,上级所引用的jar包,下级是否可以引用?
可以引用,在mapper中引用了model,在service中可以直接引用不需要重新导入依赖:
在service模块中引入mapper依赖:
这里并没有引入model的依赖;然后写接口:
注意,在这里仍然可以使用model的依赖,因为service引入了mapper,而mapper引入了model,因此service也可以使用model中的类。
定义实体类的标准:
1.需要实现序列化接口
2.需要重写hashCode和equalse
3.需要重写toString()
4.必须有getter和setter方法
5.要求所有的类型全部为包装类型,不能使用基本类型(因为使用包装类型可以防止空指针异常)