初期のモノリシックアーキテクチャから現在のマイクロサービスアーキテクチャまで、Spring Bootは大きな役割を果たしてきました。その簡潔で迅速な開発の魅力は、会社のどのプロジェクトにも拡張する価値があります。現在、Spring Bootには優れた機能があり、多くの優れたテクノロジーが統合されています。
SpringBootフレームワークには、すぐに使用できる戦略と構成に関する規則という2つの非常に重要な戦略もあります。
SpringBootは、Springアプリケーションの開発を簡素化するためのフレームワークです。彼はSpringのテクノロジースタックを統合し、さまざまな標準化されたデフォルト構成を提供しました。これにより、Springプロジェクトを迅速に開発し、xml構成の問題を回避できます。Springプロジェクトのコストを削減します。
1.SpringBoot外部構成ファイルのロードシーケンス
これはかなりたくさんありますが、私たちはほんの少しの重要なものです。
-
優先度の高いものは優先度の低いものを上書きします。
-
コマンドラインのパラメータ設定が最も優先されます。
-
jarパッケージ外のプロファイルを持つ構成ファイル。
-
jarパッケージにプロファイルを含む構成ファイル。
-
jarパッケージ外のプロファイルのない構成ファイル。
-
jarパッケージにプロファイルのない構成ファイル。
次に、SpringBootはSpringMVCの構成をどのように拡張しますか
WebMvcConfigurerAdapterを継承する独自のクラスを作成して、クラスの@Configurationに注釈を付けます。次に、内部のメソッドを書き直します。コンテナ内のすべてのWebMvcConfigurerが連携して機能します。
mvcの自動構成を使用したくない場合は、すべて独自の構成を使用してください。注釈@EnableWebMvcを構成クラスに追加できます。この注釈は、webmvcconfigurationsupportクラスにインポートできます。次に、mvcの自動構成クラスの注釈にそのような文があり、条件付き注釈があり、そのようなクラスがない場合に有効になります。
著者は、JVM、MySQL、MyBatis、Dubbo、Linx、TomCat、その他の知識ポイントを含む最新の知識ポイントのコレクションをまとめました。必要な場合は、ディスカッショングループ1149778920に参加して、情報を交換し、受け取る方法を学んでください。コード:qf
3、制御の春の反転(IOC)
SpringIoCの実装メカニズム
SpringでのIoCの実現原理は、ファクトリーパターンと反射メカニズムです。
interface Fruit {
public abstract void eat();
}
class Apple implements Fruit {
public void eat(){
System.out.println("Apple");
}
}
class Orange implements Fruit {
public void eat(){
System.out.println("Orange");
}
}
class Factory {
public static Fruit getInstance(String ClassName) {
Fruit f=null;
try {
f=(Fruit)Class.forName(ClassName).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return f;
}
}
class Client {
public static void main(String[] a) {
Fruit f=Factory.getInstance("io.github.dunwu.spring.Apple");
if(f!=null){
f.eat();
}
}
}
4. BeanFactoryとApplicationContextの違いは何ですか?
BeanFactoryとApplicationContextはSpringの2つのコアインターフェイスであり、どちらもSpringコンテナとして使用できます。ApplicationContextは、BeanFactoryのサブインターフェイスです。
依存
- BeanFactory:Springの最下位レベルのインターフェイスであり、さまざまなBeanの定義が含まれ、Bean構成ファイルを読み取り、Beanのロードとインスタンス化を管理し、Beanのライフサイクルを制御し、Bean間の依存関係を維持します。
BeanFactoryの派生として、ApplicationContextインターフェイスはBeanFactoryの機能を提供するだけでなく、より完全なフレームワーク機能も提供します。
-MessageSourceを継承するため、国際化をサポートします。
- 統合リソースファイルアクセス方法。
- Beanをリスナーに登録するためのイベントを提供します。
- 複数の構成ファイルを同時にロードします。
複数の(継承された)コンテキストをロードして、各コンテキストがアプリケーションのWebレイヤーなどの特定のレベルに焦点を合わせるようにします。
読み込み方法
BeanFactroyは、レイジーロードを使用してBeanを挿入します。つまり、Beanが使用されている場合(getBean()を呼び出す)にのみ、Beanがロードされてインスタンス化されます。このようにして、既存のSpring構成の問題を見つけることができません。Beanの特定の属性が挿入されていない場合、BeanFacotryがロードされた後、getBeanメソッドを最初に使用するまで例外はスローされません。
ApplicationContext。コンテナの起動時にすべてのBeanを一度に作成します。このようにして、コンテナの起動時に、Springで構成エラーを見つけることができます。これは、依存プロパティが挿入されているかどうかを確認するのに役立ちます。ApplicationContextの開始後、すべてのシングルインスタンスBeanがプリロードされます。シングルインスタンスBeanをプリロードすることで、必要なときに、すでに作成されているために待つ必要がないようにすることができます。
基本的なBeanFactoryと比較すると、ApplicationContextの唯一の欠点はメモリスペースです。アプリケーションにBeanが多いと、プログラムの起動が遅くなります。
作成方法
BeanFactoryは通常プログラムで作成されますが、ApplicationContextは、ContextLoaderを使用するなど、宣言的な方法で作成することもできます。
登録する方法
BeanFactoryとApplicationContextはどちらもBeanPostProcessorとBeanFactoryPostProcessorの使用をサポートしていますが、両者の違いは次のとおりです。BeanFactoryは手動登録が必要ですが、ApplicationContextは自動的に登録されます。
SpringBootはredisを統合します
redisランチャーを紹介します。data-redis。導入後、構成ファイルを使用してredisホストを構成します。その後、redistemplateを介して操作できます。文字化けし、デフォルトでjdkシリアライザーjsonが使用されます。ジャクソンに変更する必要があります。自分でRedisTmeplateを実装します。総称型はobject、objectです。次に、CacheManagerを実装します。キャッシュがjson形式になることがわかります。
著者は、大きな工場からの最新の実際のインタビューの質問を統合するためにここにいます。必要としている小さなパートナーは、グループを追加できます:1149778920パスワード:qf自分で
収集する