spring bootベスト実戦1

5941 ワード

ビルド
Mavenユーザは、spring-boot-starter-parentプロジェクトを引き継いで適切なデフォルト設定を取得することができます.この親プロジェクトは以下の特性を提供します.標準コンパイルレベルはJava 1.6です.
ソースコードはUTF-8です.
管理ノードに依存して、普通の依存ラベルを省略して、spring-boot-dependencies POMから引き継ぐことができます.
あなたのプロジェクトを設定したいです.spring-boot-starter-parentを継承するには、簡単にparentを設定する必要があります.
  
 org.springframework.boot 
   spring-boot-starter-parent   
 1.2.6

注:この依頼にSpring Bootバージョンを指定するだけでいいです.他のstartersを導入すれば、安心してバージョン番号を省略できます.
もしあなたがspring-boot-starter-parentを使わないなら、scope=importの依存を使うことによって、依然として管理に依存するメリットを得ることができます.
     
           
          org.springframework.boot         
          spring-boot-dependencies  
          1.2.6    
          pom  
          import 
        
   

javaバージョンのspring-boot-starter-parentを変えてかなり保守的なJava互換戦略を選択します.私たちの提案に従って最新のJavaバージョンを使うと、java.version属性を追加できます.1.8
Spring Boot Mavenプラグインを使う
Spring Bootは、実行可能なjarにパッケージ化できるMavenプラグインを含んでいます.これを使用すると、ノードにプラグインを追加できます.

     
       
              org.springframework.boot           
              spring-boot-maven-plugin       
          
   

注:Spring Boot starter parent pomを使用すると、設定を変更する必要がない限り、プラグインを追加する必要があります.
starters pomsを使う
Spring Boot startersはSpringプロジェクトのライブラリ依存管理を簡略化し、ある特定の機能に必要な依存ライブラリを統合して、starterを形成します.例えば、データベース接続、springmvc、springテストフレームなどです.簡単に言うと、spring bootはあなたのpomファイルをすっきりして管理しやすいようにします.
一般的なstarter及び用途は、spring-boot-starter:これはコアSpring Boot starterであり、ほとんどの基礎機能を提供しています.他のstarterはそれに依存していますので、明示的に定義する必要はありません.
spring-boot-starter-actuat:主に監視、管理、審査アプリケーションの機能を提供します.
spring-boot-starter-jdbc:JDBCの操作に対するサポートを提供しています.接続データベース、操作データベース、および管理データベースの接続などがあります.
spring-boot-starter-data-jpa:JPA starterは、Java Persistence API(例えば、Hibernateなど)を使用する依存ライブラリを提供する.
spring-boot-starter-data-*:MongoDB、Data-restまたはSolrへのサポートを提供します.
spring-boot-starter-security:すべてのSpring-securityの依存ライブラリを提供します.
spring-boot-starter-test:このstarterはspring-test依存性と他のテストフレーム、例えばJUnitとMockitoなどを含んでいます.
spring-boot-starter-web:このstarterはwebアプリケーションの依存ライブラリを含む.
あなたのコードを整理します
Spring Bootは任意の特殊なコード構造を使用する必要はないが、ここではいくつかの有用な最適な実践がある.1「default」パッケージを使用する場合、クラスにはパッケージ宣言が含まれていない場合、default packageの下にあると考えられます.通常はdefault packageを使用することを勧めず、使用を避けるべきです.@ComponentScanを使用する場合、@EnttityScanまたは@Spring Bootationの注釈を使用するSpring Bootアプリケーションは、jarからのクラスごとに読み取られるので、一定の問題が発生します.注:Javaの推奨されたパッケージの命名仕様に従って、逆ドメイン名(例えば、comp.example.project)を使用することを提案します.
2ポジショニングメーンアプリケーションクラスは、通常、他の種類の上にあるルートパッケージにメーンアプリケーションを置くことをお勧めします.通常は@EnbaleAutoConfigrationを使って、あなたのmainクラスを注釈しています.そして、いくつかの項目のためにひそかに基礎となる「search package」を定義しています.例えば、JPAアプリケーションを作成している場合、EnbaleAutoConfigrationに注釈されたクラスの所在パケットは@Entityアイテムを検索するために使用されます.ルートパッケージを使用すると、@ComponentScanコメントを使うことができます.basePackage属性を定義する必要はありません.main類がルートバッグの中にある場合は、@SpringBootationを使ってもいいです.以下は典型的な構造である.
com
 +- example
     +- myproject
         +- Application.java
         |
         +- domain
         |   +- Customer.java
         |   +- CustomerRepository.java
         |
         +- service
         |   +- CustomerService.java
         |
         +- web
             +- CustomerController.java

Application.javaファイルはmainの方法を声明します.基本的な@Configrationもあります.
package com.example.myproject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application { 
  public static void main(String[] args) {        
      SpringApplication.run(Application.class, args);
    }
}
設定
pring BootはJavaによる構成を提唱する.ただし、XMLソースを使用してSpringAppleication.runを呼び出すことができますが、我々は通常、@Configrationクラスを主要なソースとして使用することをお勧めします.メインメソッドを定義するクラスも主要@Configrationの良い候補です.
1他の構成クラスを導入します.すべての@Configrationを単独のクラスに入れる必要はありません.Importコメントは他の構成クラスを導入するために使用できます.また、@ComponentScan注を使って、自動的にすべてのSpringコンポーネントを収集してもいいです.@Configration類を含みます.
2 XML構成を導入する場合、XMLベースの構成を絶対に使う必要があるなら、やはり@Configrationクラスから始めることをお勧めします.添付の@ImportResource注を使ってXMLプロファイルを読み込むことができます.
Spring Bensと依存注入
任意の標準的なSpringフレーム技術を使用して、beansとそれらの注入の依存性を定義することができます.簡単のために、私達はよく@ComponentScanを使ってbeansを検索して、そして@Autowiredコンストラクタを結び付けて注入します.上で提案した構造組織コードを使用すれば、@ComponentScan注釈を追加してもいいです.パラメータは必要ありません.あなたのすべてのアプリケーションコンポーネント(@Component、@Service、@Repository、@Controllerなど)は自動的にSpring Bensに登録されます.もう一つ明確にしておきたいのは、springbootは全く新しいフレームではなく、springフレームの上に構築されているので、私たちが普段使っているspring bootでは同じように使っています.@Component、@Service、@Repository、@Controllerなどはsprigbootではなく、spring bootの中のものです.
@Spring Bootationを使って注釈を付ける
多くのSpring Boot開発者はいつも@Configrationを使っています.これらの注釈はこのように頻繁に使われているので(特にあなたが上記の最適な実践に従う時)、Spring Bootは便利な@SprigBootationの選択を提供します.@Spring Bootationはデフォルト属性で@Configrationを使用するのと同等です.@Enballe AutoContfigrationと@ComponentScan.
package com.example.myproject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@SpringBootApplication
public class Application { 
  public static void main(String[] args) {        
      SpringApplication.run(Application.class, args);
    }
}
Spring Bootプロジェクトでは、xxAppleication.javaはアプリケーションの入り口として、プログラム起動といくつかの基礎的な仕事を担当します.Spring Bootationはこの注釈はこのアプリケーションの入り口の標識であり、その後、よく知っているmain関数があり、Spring Application.run(xxApplication.class,args)を通じてSpring Bootアプリケーションを実行します.次号に続く