前の記事の導入後、私の友人はもうスプリングブートに憧れているしかありません。この記事では、Springboot構成ファイルの構成を友達に引き続き紹介します。グローバル構成パラメーターの使用方法。 OK、今日のコンテンツの紹介を始めましょう。
Spring Bootはコンテナの自動構成をサポートしており、デフォルトはTomcatであることがわかっています。もちろん、変更することもできます。
1.最初に、TomcatをSpring-Boot-Starter-Web依存関係で除外します:POMファイルでTomcatのスターターを除外します
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions></dependency>
2。桟橋容器に追加します
<Dependency> groupId> org.springframework.boot </groupId> <artifactid> spring-boot-starter-jetty </artifactid> </dependency>
このようにして、スプリングブートコンテナは桟橋容器に変更されます。
私たちのデバッグを容易にするために、ここにあなたのためのHTTPデバッグツールがあります:Postman
Springboot:Application.Propertiesのグローバル構成ファイルについて話しましょう
開発では、コンテナアクセスポートを変更するためのこのような要件に遭遇したに違いありません。スプリングブートはデフォルトでコンテナをロードするため、ポート設定はもちろん構成ファイルを介して制御されますが、これは非常に便利です。構成ファイルに追加する必要があります。
server.port = 6666
このようにして、コンテナポートは6666に変更されます。
構成ファイルを介してプロジェクトアクセスエイリアスを設定することもできます。
server.context-path =/springboot1
このようにして、プロジェクトを開始し、http:// localhost:6666/springboot1からプロジェクトにアクセスできます
上記は、Springboot構成ファイル構成の氷山の先端です。たとえば、データベース接続構成を設定し、開発環境構成を設定し、環境構成を展開し、2つの間のシームレスな切り替えを実現することもできます。
Springbootのコントローラーの使用について学びましょう。 Springbootは3つの注釈を提供します。
前の記事では、@RestControllerを使用しました。 @Controllerを一緒に使用してみましょう。
@Controller // @ResponseBodyPublic class requestTest {/***リクエストに応じて制限なし}}http:// localhost:8080/springboot1/reqを入力してブラウザに入力すると、404が見つかります
{"Timestamp":1515332935215、 "status":404、 "error": "no smassion abable"、 "path": "/springboot1/req"}なぜこれがなぜですか?これは、@Controllerをテンプレートとともに使用する必要があるため、Maven POMファイルを開き、スプリングブートのテンプレートを追加するためです。
<! - Springboot Template-> <Dependency> GroupId> org.springframework.boot </groupid> <artifactid> spring-boot-starter-thymeleaf </artifactid> </dependency>
次に、プロジェクトのリソースディレクトリにテンプレートを見つけます(そうでない場合は、新しいものを作成しますが、フォルダー名が一貫している必要があることに注意してください)。その後、成功を作成して、プロジェクトを再度開始してアドレスにアクセスできるようになりました。
ただし、ここでは、現在のエンタープライズレベルの開発がフロントエンドとバックエンドから分離されていることに注意する必要があります。バックエンドサービスを行う場合、対応するデータを返すだけです。もちろん、テンプレートを使用することには別の欠点があります。つまり、パフォーマンスは特定の損失を引き起こすため、誰もがここで簡単に理解できます。
上記の紹介で述べたように、 @Controller+ @ResponseBodyは@RestControllerに相当するため、@RestControllerを使用することをお勧めします。
@RequestMapping(value = "/req")を紹介しましょう。誰もがその使用法をすでに知っていると思います。もちろん、この注釈は方法で使用できますが、クラスにも使用できます。
@RestController //@Controller //@ResponseBody@requestMapping(value = "/test")public class requesttest {/***リクエストに応じて制限なし}/** *制限付きリクエストメソッドはget * @return */@requestmapping(value = "/req1"、method = requestmethod.get)public string req1(){return "success"; }/** *制限要求方法はpost * @return */@requestmapping(value = "/req2"、method = requestmethod.post)public string req2(){return "success"; }}この方法を見ると、その有用性をすでに知っている必要があると思います。指定されたアクセスタイプであり、デフォルトを設定せずに何らかの方法でアクセスできます。メソッドが@RequestMappingクラスで設定されている場合、クラス内のメソッドがデフォルトで継承されると思ったかどうかはわかりません。もちろん、メソッドで個別に設定することもできます。優先順位の問題を自分で試してみてください。
以下に、コントローラーの構成ファイルの定数にアクセスする方法を紹介します。最初に構成ファイルを追加します:
name = hpugsage = 35content = name:$ {name}; age:$ {age}$ {}で使用される構成ファイルで定数を使用します。
以下では、コントローラーにパラメーターを注入します。
//構成ファイルにパラメーターを挿入@value( "$ {name}")private string name; @value( "$ {age}")private Integer Age; @value( "$ {content}")プライベート文字列コンテンツ; @RequestMapping(value = "/req3"、method = requestmethod.get)public string req3(){return "name =" + name; } @RequestMapping(value = "/req4"、method = requestmethod.get)public string req4(){return "age =" + age; } @RequestMapping(value = "/req5"、method = requestmethod.get)public string req5(){return "content =" + content; }私たちのプロジェクトを始めて、それを訪問してみてください。
この使用に不満を感じている場合は、別のトリックを次に示します。クラスマッピング構成ファイルを使用し、クラスを使用してパラメーターを使用します。単一のパラメーターを注入するよりも便利です。まず、Javaクラスを作成します
@component@configurationproperties(prefix = "userinfo")public class userinfo {private string names;民間整数年齢;プライベート文字列コンテンツ。 public Integer getage(){return age; } public string getNames(){return names; } public void setNames(string names){this.names = names; } public void Setage(整数年齢){this.age = age; } public string getContent(){return content; } public void setContent(string content){this.content = content; }}次に、構成ファイルにパラメーターを設定します。
userInfo.names =リトルブロークンチャイルドユーザーinfo.age = 25userinfo.content = name:$ {userinfo.names}; age:$ {userinfo.age}コントローラーを作成するための配線:
// Object @Autowired Private UserInfo useriNfo; @RequestMapping(value = "/req6"、method = requestmethod.get、droces = "text/plain; charset; utf-8")public string req6(){return "name =" + userinfo.getNames(); } @RequestMapping(value = "/req7"、method = requestmethod.get)public string req7(){return "age =" + userinfo.getage(); } @RequestMapping(value = "/req7"、method = requestmethod.get)public string req7(){return "age =" + userinfo.getage(); } @requestMapping(value = "/req8"、method = requestmethod.get)public string req8(){return "content =" + userinfo.getContent(); }OK、プロジェクト訪問を再開してみてください。
友達、この問題に遭遇したかどうかわからないですか?中国語のコードが文字化けしています。まず第一に、心配しないでください。別のスプリングブート構成ファイル:Application.ymlを見てみましょう。この構成ファイルは ";"を置き換えます。 Newlineスペースによって。同じ構成がYMLでどのように構成されているかを見てみましょう。
サーバー:ポート:8888コンテキストパス: /springboot1name:hpugsage:35content:name:$ {name}; age:$ {age} userinfo:name:name:little kid age:$ {userinfo.names}; age:$ {userininfo.age};それでは、プロジェクトを始めて試してみましょう。
上記の文字化けの質問に戻ると、YMLを使用するときに文字化けしたことはありませんか?あなたは少し落ち込んでいますか?なぜこれがなぜですか?これは、.PropertiesファイルがUnicodeエンコードフォームを使用するため、中国語に入ると、文字化けコードが表示されるためです。もちろん、Carled Codeには別の理由があります。つまり、フロントエンドと矛盾するエンコード設定です。これを構成ファイルに追加します。
春:http:エンコード:力:真のcharset:utf-8 enabled:trueserver:tomcat:uri-encoding:utf-8
制御する。ここにいくつかの開発のヒントがあります。 Springbootは、さまざまな開発環境でさまざまな構成ファイルのソリューションを提供します。
#ymlフォーマットスプリング:プロファイル:Active:prod#.properties Format spring.profiles.active = dev
要約します
上記は、あなたに紹介されたスプリングブートの落とし穴のスプリングブートの落とし穴ノートの使用です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!