春ブーツ原理(春・ブート・スターター例やコードのダウンロードの実現が付属しています)

(私がカバーしました)

春ブーツが登場以来、今火は、我々は、一見、またこれが必要になりますでも採用を使用している、です。しかし率直に言って、春・ブートプログラムは、プラグイン可能な方にほかならを達成しないように望んでいる、という構成を簡素化すると言って、実際には、数を減らしませんでしたが、マークアップする注釈の様々なを通じて、内部の構成コードに落ちました。

実際には、個人としての能力は、どのような根本的な増加は必ずしもないが、春ブートでの包装、圧倒的な様々な瓶のこのよう層をチームに望んでいない、そして最終的に私たちは、誘拐されました。

スターターは一体何であるのスプリング、ブート?
ワード、スプリングブートスターターを介して、完全な自己完結型とMaven注釈を介して、このようなばねアセンブリ又はサービス発見およびプラグ可能なインスタンスのコンテキストに構成することができるです。

2つのスプリングブートスターターがあります。

一つは、すでに1は、第三者である、内部にサポートされています。

スターターのための内部サポート:

@ConditionalOnClassによって実をインスタンス化するかどうかを決定する(ConditionalOnClassに依存することが見出されたクラスのインスタンスを参照し、CLASSPATHに必要な場合)、サービスを開始することを望む限り、構成、スタータに対応するものとして、スタータが必要とすることができるであろう協会への瓶。

私たちは、ログインこのSLF4J APIのインタフェースを使用し、log4jのの実装である特定の実装を、ログになるためにフックに掛けフックデフォルト、この制度を実現し、誰内部クラスパスを、提供するために使用するものに似ています。

dependencyManagementによってすでに見ることができますMavenのスプリング設定することによって、あなたは組み込みのスターターのすべてを設定します(この時点Mavenの依存関係の管理、時にロードされません)。ちょうどライン上の構成に対応するスターターに依存するように時間を使います。

<依存>

 <groupIdを> org.springframework.boot </ groupIdを>

 <たartifactId>春・ブート・スターター</たartifactId> <

/依存関係>

コード実際にスターターの構成がコンテキストで発見されたすべてを通じて、それは春・ブート自動構成-xxx.jarを参照することができ、次のとおりです。

内蔵のTomcat、また内部の桟橋:

特定のコード:

ConditionalOnClassにより(の達人春・ブート・スターター・ウェブの設定に依存しますが)、彼らはTomcatのクラスを見つけた場合、Tomcatサービスを開始します。

サードパーティのスターター:

例えば、というようにMyBatisの。

原則は、つまり、あなたがライン上のサービスコードパッケージ層構成コードの上に達成している、MyBatisのスプリング・ブート・スターターが依存しているmybitisを見て、取ると同じです。

<依存>

<groupIdを> org.mybatis.spring.boot </ groupIdを>

<たartifactId> MyBatisのスプリング・ブート・スターター</たartifactId>

<バージョン> 1.3.0 </バージョン>

</依存関係>

この依存性はPOMであり、以下のように、依存関係は、自己完結型の、自動構成MyBatisのであるそのうちの一つに注釈等@Beanによって構成MyBatisののインスタンスをポイントを見ることができます。

 

特定のコード:

 

このメカニズムに基づいて、私たち自身が達成することができます

同様の簡単なデータベース操作部品の実現は、MyBatisのために、しかし、単純なクエリサービスを実現します。

全体のサンプルには、2つのプロジェクトがあります。

(春・ブートmydao-スターター命名)当社独自のスターターの実現、最終的にはARパッケージを標識し、ローカルのMavenリポジトリにローカルの工場をインストールします。

テストのためのもう一つのプロジェクトは、最終的には、ばねブートmydaoスターターにアセンブリ全体を依存し、クエリサービス内の呼び出しがテストします。

エンジニアリング

具体类如下:

1、创建spring-boot-mydao-starter工程,添加相关依赖配置

我们实现的这个组件仅仅依赖于mysql的驱动以及spring-boot的上下文环境。其中mysql驱动用的spring-boot-starter-parent里面配置好的,这里直接用即可,maven配置如下:

 

2、实现以下几个类:

Mydao:封装数据库的连接和查询服务,和spring没有任何关系。

MyDaoAutoConfiguration:提供MyDao的配置用于启动时被spring上下文发现并解析。

DbProperties:完成对数据库配置参数文件的读取(db.properties,当然spring-boot也支持其他格式的配置文件,个人还是喜欢传统样式)。

其中Mydao:

 

MyDaoAutoConfiguration(将配置参数对象传给Mydao并配置Mydao实例):

Spring在启动时会通过@Bean实例化Mydao并将其放入ConfigurableApplicationContext容器中。

配置文件类DbProperties:

自动读取classpath下的db.properties的配置文件,并实例化成类对象。配置文件需要在测试的工程(test-spring-boot-mydao-starter)里提供。

 

配置文件db.properties

 

以上就是真个starter的类容。下面描述如何使用这个starter。

 

新建测试工程test-spring-boot-mydao-starter(起啥名都行)。配置上对我们的starter的依赖:

因为starter里面已经依赖了spring-boot的上下文,所以这里就不用配置了。

 

然后就是测试:

我们用mysql自带的数据库里面的user表做测试。以下是测试类,需要注入starter里面的mydao:

 

然后就是启动测试:

也可以用spring的junit来测试。

 

~以上便是本次分享所有内容~

源码下载

アドレスの失敗を防ぐために、すべてのダウンロードリンクは、完全なソースコードのための「R003」を返信、公共の数に注意してください公共の数で維持されています。

さらに読書:モジュールのベストプラクティスとMavenの設定1

おすすめ

転載: www.cnblogs.com/qiaobing/p/10985748.html