検索
ホームページバックエンド開発PHPチュートリアルSpring Bootフレームワークのナレッジポイントを詳しく解説


概要: 1. Spring Boot のプロパティ設定ファイル 1.1 Spring Boot のプロパティ設定ファイルの最初の形式では、次の 2 つのプロパティの意味は、アクセス ポートを 8081 に変更し、 contextPath は、アドレス バーにアドレスの追加レイヤーを追加するものとして理解できます。 server.port= ...

1. Spring Boot のプロパティ設定ファイル

1.1 Spring Boot のプロパティ設定ファイルの最初の形式

プロパティ設定ファイルの使い方次の 2 つの属性は、アクセス ポートを 8081 に変更し、contextPath を追加します。これは、アドレス バーに追加のアドレス層を追加するものとして理解できます。

server.port=8081
server.context-path=/joyou

デモアプリケーション.javaを右クリック - 「実行」 Spring Boot アプリ起動プログラム

Spring Bootフレームワークのナレッジポイントを詳しく解説

効果は以下の通り まずポートが8081になりました

Spring Bootフレームワークのナレッジポイントを詳しく解説

ブラウザアクセス効果は以下の通りです。 。

Spring Bootフレームワークのナレッジポイントを詳しく解説

補足:

プロパティ ファイルは、構成プロパティを管理する最も一般的な方法です。 Spring Boot によって提供される SpringApplication クラスは、application.properties ファイルを検索してロードし、構成プロパティ値を取得します。 SpringApplication クラスは、次の場所でファイルを検索します:

1./config 現在のディレクトリのサブディレクトリ

2.現在のディレクトリ

3./configパッケージ内のクラスパス

4.クラスパス

上記のシーケンスは位置も示していますに含まれるプロパティ ファイルの優先順位。優先順位は高いものから低いものへと並べられます。

spring.config.name キーの構成属性を通じて、異なるプロパティ ファイル名を指定できます。 spring.config.location を通じて 追加のプロパティ ファイルの検索パス を追加することもできます。

1.2 Spring Boot のプロパティ構成ファイルの 2 番目の形式 (推奨)

yml 構成を使用して、リソース ディレクトリ application.yml ファイルに ap を作成します。コードは以下のように表示されます。

server:  port: 8082  context-path: /joyou

                效果与1.1相同。

                  补充:                   

                相对于属性文件来说,YAML 是一个更好的配置文件格式。当有前缀的情况下,使用.yml格式的配置文件更简单。

注意:使用.yml时,属性名的值和冒号中间必须有空格,如name: SpringBoot正确,SpringBoot就是错的。

YAML は Ruby on Rails でうまく機能します。 YAML は JSON のスーパーセットであり、階層構成データを定義するための便利な形式です。基本的な文法規則は次のとおりです:

  • 大文字と小文字を区別します

  • 階層関係を示すためにインデントを使用します

  • インデントするときにタブキーは使用できません。スペースのみが使用できます。

  • 同じレベルの要素が左揃えである限り、インデントされたスペースの数は関係ありません

  • # この文字から行末までがコメントになります。パーサーによって無視されます。

1.3 application.properties 内のどのキーが構成可能ですか?

SpringBoot 公式 Web サイトのドキュメントには、詳細な構成と手順が記載されています。付録 A. 共通アプリケーション プロパティ: http://docs.spring.io/spring-boot/docs/current-snapshot/htmlsingle/#Common-proper Ties 完全に不完全な統計ですが、この完全なアプリケーション プロパティ ファイルには 1183 行があります。そのうち、属性キーは 950 個あります。このような巨大な構成を見たら、あなたは間違いなく衝撃を受けるでしょう。ただし、実際のプロジェクトでは、Spring Boot の規則に従えば、通常、あまり多くの構成を個別に指定する必要はありません。

Spring Boot は、このジレンマから抜け出すために、優先的に設定を読み取るメカニズムを提供します。

Spring Boot によって提供される構成の優先順位シーケンスは比較的複雑です。優先度の高い順に、具体的なリスト(高いものから低いもの)は次のとおりです。

1. コマンドラインパラメータ(最優先)。

  • 2. System.getProperties() を通じて取得される Java システム パラメーター。

  • 3. オペレーティング システムの環境変数。

  • 4. java:comp/env から取得される JNDI 属性。

  • 5. RandomValuePropertySource によって生成された Random.* プロパティ。

  • 6.jar パッケージ外の application-{profile}.properties または application.yml (spring.profile 付き) 構成ファイル (spring.config.location パラメーターで指定)

  • 社内アプリケーション- {profile}.properties または application.yml (spring.profile あり) 設定ファイル

  • 8. Jar パッケージの外部 application.properties または application.yml (spring.profile なし) 設定ファイル

  • 9. jar パッケージ内の application.properties または application.yml (spring.profile なし) 構成ファイル

  • 10. @ を介した @Configuration アノテーションが付けられた Java クラスを含むアプリケーション Java 構成クラスPropertySource アノテーション宣言のプロパティ ファイル。

  • 11. SpringApplication.setDefaultProperties を通じて宣言されたデフォルトのプロパティ。

Spring Boot が優先順位の高い場所に構成を見つけた場合、優先順位の低い構成は無視されます。以下では、これらの優先事項について簡単に説明します。 Spring Boot の設定の優先順位は複雑に見えますが、実際には非常に合理的です。コマンド ライン パラメーターの優先順位は最高に設定されています。これにより、アプリケーションを再パッケージ化してデプロイすることなく、テスト環境または運用環境で構成パラメーターの値を迅速に変更できるようになります。 P SpringApplication クラスは、デフォルトで、「-」の先頭にある 構成パラメーター をアプリケーションで使用できるように変換します。たとえば、「--name = Alex」は構成パラメーター「name」を設定します。値は「アレックス」です。

この関数が必要ない場合は、SpringApplication.setAddCommandLineProperties(false)を使用できます。

コマンドライン引数の解析を無効にします。

2. Spring Boot カスタム プロパティ

                2.1、 第一个自定义属性的例子  

                          在实际开发过程中,需要程序去配置文件中读取数据(如:URL,一些账号密码等),所以就需要我们来自定义属性,供程序读取。

                        首先在yml里自定一个属性,格式如下:

company: joyouemployee: 二十岁以后

                        在Java程序中取值,代码如下:

package com.example.demo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class HelloSpringBoot {	
	@Value("${company}")
	private String company;	
	@Value("${employee}")
	private String employee;	

	@RequestMapping(value="/hello" , method = RequestMethod.GET)
	public String HelloSpring(){		
			return company+"====="+employee;
	}
}

                使用浏览器访问效果如下

Spring Bootフレームワークのナレッジポイントを詳しく解説

company: joyouemployee: 二十岁以后   
All: "公司: ${company} , 员工: ${employee}"

                    在JAVA程序中注入All属性

package com.example.demo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class HelloSpringBoot {	
	@Value("${All}")	private String All;	
	
	@RequestMapping(value="/hello" , method = RequestMethod.GET)	public String HelloSpring(){		
			return All;
	}
}

            效果如图所示:

Spring Bootフレームワークのナレッジポイントを詳しく解説

            2.3 对于多个属性如何一次调用

                    看了上面的例子后,会产生一个疑问,如果想一次调用10个、20个、50个属性值,难道我要在程序中注入50次值,使用50次注解吗? 为了解决这个疑问,Spring Boot 是这么解决的!

                    首先一个女孩,有身高、体重、罩杯等等属性,我们可以这样来写!

Girl: 
   High: 160CM   Weight: 80KG   CupSize: 30A

                    然后写一个类,这个类中提供Girl的属性,及Setter,Geter方法,需要使用两个注解:

  •                     @Component //如果没有这个注解,会报找不到Bean的错

  •                     @ConfigurationProperties(prefix="Girl") //找到以Girl开头的属性

Spring Bootフレームワークのナレッジポイントを詳しく解説 

                    然后在java程序中注入Gril类

package com.example.demo;@RestControllerpublic class HelloSpringBoot {	@Autowired
	private Girl girl;	
	
	@RequestMapping(value="/hello" , method = RequestMethod.GET)
	public String HelloSpring(){		
			return girl.toString();
	}
}

                启动程序,刷新浏览器,效果如下:

Spring Bootフレームワークのナレッジポイントを詳しく解説

3. マルチ環境属性の構成

3.1 本番および開発のさまざまなシナリオ

それは違うかもしれませんが、開発に書かれている属性値はありますか?本番環境では環境を一つ一つ変更する必要があるのでしょうか?ここまで言ってきましたが、もちろんその必要はありません。開発中に 2 つの環境で属性値の要件が異なる 2 セットの yml ファイルを作成し、必要な yml ファイルを呼び出すことができます。 L 本番環境の GIRL の属性値は次のとおりです:

Spring Bootフレームワークのナレッジポイントを詳しく解説

開発環境の GIRL の属性値は次のとおりです:

Spring Bootフレームワークのナレッジポイントを詳しく解説

application.yml で別のファイルを呼び出すだけです。開発環境と本番環境の異なる yml ファイルの名前 (

上記 2 つの画像ファイルの名前に注意してください)

Spring Bootフレームワークのナレッジポイントを詳しく解説

ブラウザに対応した結果

Spring Bootフレームワークのナレッジポイントを詳しく解説

2番目の環境に対応した構成

Spring Bootフレームワークのナレッジポイントを詳しく解説

ブラウザに対応した結果

Spring Bootフレームワークのナレッジポイントを詳しく解説

理解を助けるために、これまでのプロジェクトのディレクトリ構造の図を追加します

Spring Bootフレームワークのナレッジポイントを詳しく解説

以上がSpring Bootフレームワークのナレッジポイントを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
負荷分散がセッション管理にどのように影響し、それに対処するかを説明します。負荷分散がセッション管理にどのように影響し、それに対処するかを説明します。Apr 29, 2025 am 12:42 AM

負荷分散はセッション管理に影響しますが、セッションの複製、セッションの粘着性、集中セッションストレージで解決できます。 1。セッションレプリケーションサーバー間のセッションデータをコピーします。 2。セッションスティンネスは、ユーザーリクエストを同じサーバーに指示します。 3.集中セッションストレージは、Redisなどの独立したサーバーを使用してセッションデータを保存してデータ共有を確保します。

セッションロックの概念を説明します。セッションロックの概念を説明します。Apr 29, 2025 am 12:39 AM

SESSIONLOCKINGISATECHNIQUESTOESUREAUSER'SSESSIONREMAINSEXCLUSIVETOONEUSATIME.ITISCRUCIALFORPREVENTINGDATACORTIONANDSECURITYBREACHESINMULTI-USERAPPLICATIONS.SESSIONLOCKINGISISIMPLEMENTEDUSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGROCKINGSMECHANISMなど

PHPセッションの選択肢はありますか?PHPセッションの選択肢はありますか?Apr 29, 2025 am 12:36 AM

PHPセッションの代替品には、Cookie、トークンベースの認証、データベースベースのセッション、Redis/Memcachedが含まれます。 1.Cookiesは、クライアントにデータを保存することによりセッションを管理します。 2.トークンベースの認証はトークンを使用してユーザーを検証します。これは非常に安全ですが、追加のロジックが必要です。 3.Databaseベースのセッションは、データベースにデータを保存します。これは、スケーラビリティが良好ですが、パフォーマンスに影響を与える可能性があります。 4. Redis/Memcachedは分散キャッシュを使用してパフォーマンスとスケーラビリティを向上させますが、追加のマッチングが必要です

PHPのコンテキストで「セッションハイジャック」という用語を定義します。PHPのコンテキストで「セッションハイジャック」という用語を定義します。Apr 29, 2025 am 12:33 AM

SessionHijackingとは、ユーザーのSessionIDを取得してユーザーになりすましている攻撃者を指します。予防方法には、次のものが含まれます。1)HTTPSを使用した通信の暗号化。 2)SessionIDのソースの検証。 3)安全なSessionID生成アルゴリズムの使用。 4)SessionIDを定期的に更新します。

PHPの完全な形式は何ですか?PHPの完全な形式は何ですか?Apr 28, 2025 pm 04:58 PM

この記事では、PHPについて説明し、その完全なフォーム、Web開発での主要な使用、PythonとJavaとの比較、および初心者の学習のしやすさについて説明します。

PHPはフォームデータをどのように処理しますか?PHPはフォームデータをどのように処理しますか?Apr 28, 2025 pm 04:57 PM

PHPは、$ \ _ postおよび$ \ _を使用してフォームデータを処理し、検証、消毒、安全なデータベースインタラクションを通じてセキュリティを確保します。

PHPとASP.NETの違いは何ですか?PHPとASP.NETの違いは何ですか?Apr 28, 2025 pm 04:56 PM

この記事では、PHPとASP.NETを比較して、大規模なWebアプリケーション、パフォーマンスの違い、セキュリティ機能への適合性に焦点を当てています。どちらも大規模なプロジェクトでは実行可能ですが、PHPはオープンソースであり、プラットフォームに依存しませんが、ASP.NET、

PHPはケースに敏感な言語ですか?PHPはケースに敏感な言語ですか?Apr 28, 2025 pm 04:55 PM

PHPの症例感度は変化します:関数は鈍感であり、変数とクラスは感度があります。ベストプラクティスには、一貫した命名と、比較のためにケース非感受性関数を使用することが含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール