blog

スプリングに関する質問

1.Springとは SpringはJavaエンタープライズアプリケーションのためのオープンソースの開発フレームワークです。アプリケーション開発の複雑さを軽減するように設計されています。 2.Spri...

Sep 21, 2020 · 9 min. read
シェア

Spring

1.Springとは?

Springは、Javaエンタープライズアプリケーションのためのオープンソースの開発フレームワークです。アプリケーション開発の複雑さを軽減するように設計されています。

2.Springフレームワークを使うメリットは?

- 軽量:Springは軽量で、基本バージョンは約2MBです。

- 制御の逆転:Springは制御の逆転を通して、疎結合を実現します。

- 最先端のプログラミング:Springは最先端のプログラミングをサポートし、アプリケーションのビジネスロジックをシステムサービスから分離します。

- コンテナ:Springは、アプリケーション内のオブジェクトのライフサイクルと構成を格納し、管理します。

- MVCフレームワーク: SpringのWEBフレームワークはよく設計されたフレームワークで、WEBフレームワークの良い代替です。

- トランザクション管理: Springは、ローカルトランザクションからグローバルトランザクションまで拡張可能な、継続的なトランザクション管理インターフェースを提供します。

3.Springはどのようなモジュールで構成されていますか?

単純に6つのモジュールに分かれています:

Spring Core springIOCコンテナのコア機能:オブジェクトの作成と依存関係を解決する。
Spring Web Springウェブ・モジュールをサポートする。
 ---は、strutsと統合することができる。
 ---spring mvc 
Spring DAO Spring jdbc操作のサポート JdbcTemplateテンプレート・ツール・クラス
Spring ORM springormをサポートする:
 ---どちらも、hibernateやセッションと統合することができる。
 ---また、スプリングのhibernateパッケージを使うこともできる!
SprinP 最先端のプログラミング
SpringEE spring 他のjavaEEモジュールをサポートする
4.コアコンテナ(Core)モジュール

これはSpring Frameworkの基本的な機能を提供する、基本的なSpringモジュールです。BeanFactoryはSpringベースのアプリケーションのコアで、Springは基本的にビーンファクトリーまたはビーンコンテナです。



どちらのタイプの依存関係も使用できます。 最良の解決策は、必須の依存関係にはコンストラクタのパラメータを使用し、オプションの依存関係にはセッターメソッドを使用することです。

5.IoCの利点をいくつか挙げてください。

- アプリケーションのコード量を最小限に抑えます。

- 最小限の影響と最小限の侵入メカニズムで、疎結合を促進します。

Spring Beans

1.Springビーンズとは?

Springビーンズは、Springアプリケーションを形成するJavaオブジェクトです。これらはSpring IoCコンテナによって初期化、組み立て、管理されます。これらのBeanは、コンテナ内で設定されたメタデータから作成されます。例えば、XMLファイル

2.設定メタデータをSpringコンテナに提供するには?

Springコンテナに設定メタデータを提供するには、3つの重要な方法があります:

- XML設定ファイル: Beanが必要とする依存関係やサービスは、XML形式の設定ファイルで指定します。通常、Beanタグで始まります。例えば

<bean id="studentbean" class="org.edureka.firstSpring.StudentBean"> 
<property name="name" value="Edureka"></property> 
</bean>

アノテーションに基づく構成: Beanは、関連するクラス、メソッド、フィールドの宣言にアノテーションを使用することで、コンポーネントクラス自体として構成できます。デフォルトでは、アノテーションアセンブリはSpringコンテナでは有効になっていません。そのため、使用する前にSpring設定ファイルで有効にする必要があります。例えば

<beans> <context:annotation-config/> 
<!-- bean definitions go here --> </beans>

Beanアノテーションは要素と同じ役割を果たします。

Configurationクラスでは、同じクラス内の他の@Beanメソッドを呼び出すだけで、Bean間の依存関係を定義できます。

@Configuration 
public class StudentConfig { 
 @Bean 
 public StudentBean myStudent() { 
 return new StudentBean(); 
 } 
} 

3.Spring Frameworkの単一インスタンスBeanはスレッドセーフですか?

Spring Frameworkの単一インスタンスBeanはスレッドセーフではありません!

5.Springの内部Beanとは何ですか?

<constructor-arg/> Beanは、他のBeanの属性としてのみ使用される場合、内部Beanとして宣言することができます。 内部Beanを定義するために、SpringのXMLベースの構成メタデータでは、or要素の中で要素を使用することができます。 内部Beanは通常匿名であり、そのスコープは通常prototypeです。



Springは以下のコレクションのための設定要素を提供します:

7.ビーンアセンブリとは何ですか?

ビーンがSpringコンテナ内で結合されることをビーンアセンブリと呼びます。

8.ビーンの自動アセンブリとは?

<constructor-arg>Springコンテナは、互いに連携するBeanを自動的に組み立てることができます。これは、コンテナが設定を必要とせず、Beanファクトリを通してBean間の連携を自動的に処理できることを意味します。

Spring Beans

1.JavaベースのSpringアノテーション構成とは何ですか? アノテーションの例をいくつか挙げてください。

Javaベースのコンフィギュレーションでは、SpringのコンフィギュレーションのほとんどをXMLファイルではなく、Javaアノテーションの助けを借りて行うことができます。例えば、@Configurationアノテーションは、Spring IOCコンテナでBean定義として使用できるクラスをマークするために使用されます。もう1つの例は

これは、このメソッドがSpringアプリケーションコンテキストにBeanとして登録されるオブジェクトを返すことを示します。

2.アノテーションアセンブリを有効にするには?

<context:annotation-config/>アノテーションアセンブリはデフォルトでは有効になっていません。 アノテーションアセンブリを使用するには、Springの設定ファイルで要素を構成して有効にする必要があります。

4. @Resourceアノテーション、@Autowiredアノテーション、@Requireアノテーション、@Qualifierアノテーション。

Resourceアノテーションと@Autowiredアノテーションは、フィールドまたはセッターメソッドでBeanをアセンブルするために使用できます。

デフォルトの @Resource は、 name 属性で指定できる名前によって Bean をアセンブルします。

Autowiredは、デフォルトではTypeでアセンブルされます。

Requiredアノテーションは,Bean属性のセッターメソッドに適用され,構成時に,影響を受けるBean属性がXML構成ファイルに配置されなければならないことを示し,さもなければ,コンテナは,BeanInitialisationExceptionを投げる。

同じ型のBeanが複数あるが、自動配線する必要があるのは1つだけである場合、@Qualifierアノテーションを@Autowireアノテーションと組み合わせて使用し、アセンブルする必要がある正確なBeanを指定します。

Spring

1.SpringのDAOのサポート

Springのデータアクセスオブジェクトのサポートは、JDBC、Hibernate、JDOのようなデータアクセス技術との併用が簡単になるように設計されています。これにより、永続化レイヤーを簡単に切り替えることができます。また、各テクノロジー固有の例外をキャッチする心配もありません。

2.SpringはORMをサポート

Hibernate

iBatis

JPA

トップリンク

JDO

OJB

3.Springはトランザクション管理の種類をサポート

Springは2種類のトランザクション管理をサポートしています:

Programmatic Transaction Management (プログラムによるトランザクション管理): トランザクションをプログラムで管理します。

宣言型トランザクション管理: これはビジネスコードとトランザクション管理を分離できることを意味し、トランザクションを管理するために必要なのはアノテーションとXMLコンフィギュレーションだけです。

ほとんどのSpring Frameworkユーザーは宣言型トランザクション管理を選択します。それはアプリケーションコードへの影響が最小限であるため、より非侵入型の軽量コンテナの考え方に沿っているからです。

Springの切断指向プログラミング

1.AOPの説明

AOP(Aspect-Oriented Programming、[ˈæspekt]-[ˈː] [ˈprəɪ])、すなわち切断指向プログラミングは、OOP(Object-Oriented Programming)プログラミングを補完する便利なものです。OOPの最小単位はクラスですが、AOPの最小単位はファセットです。

平たく言えば、AOPは、異なるが必要な反復コードを抽出し、それを独立して実装し、切り口を通してシステムに切り込むのに役立ちます。この利点は、この繰り返しコードを毎回書き直すのではなく、一元管理して再利用できることです。

コードのメンテナンスが容易になり、ビジネスロジックを雑多なものから切り離し、ビジネスロジックのコード開発に集中できるようになります。

2.プロキシとは何ですか?プロキシとは何か、Spring AOPはどのようなプロキシを使うのか?

プロキシパターンの中心的な役割は、プロキシを通してオブジェクトへのアクセスを制御することです。JDKの動的プロキシとCGLIBの動的プロキシの両方が、Spring AOPの実装の基礎となっています。

プロキシの使用におけるSpring AOPのロジックを要約します:ターゲットオブジェクトがインターフェイスを実装している場合、デフォルトでは、AOPを達成するためにJDKのダイナミックプロキシになります。

Read next

テンプレート・エンジンの仕組み

出力は公式のものと同じです。次のif文のように、どのようなJS文でもこの方法で表示することができます:

Sep 21, 2020 · 3 min read