目次
1. コンストラクターを通じてオブジェクトを作成します。
2.1 引数なしのコンストラクター + セッターメソッドを使用して値を注入する
2.2 パラメーター化されたコンストラクターを使用して、
2. 静的ファクトリーメソッドを通じてオブジェクトを作成します。
ホームページ Java &#&チュートリアル Spring がオブジェクトを作成する方法の詳細な説明

Spring がオブジェクトを作成する方法の詳細な説明

Jul 21, 2017 pm 10:09 PM
spring 方法

Spring の構築については、「Spring フレームワークの構築の簡単な分析」を参照してください。テストする前に、環境を設定し、関連する Jar パッケージをインポートする必要があります。 Spring によって作成されたオブジェクトは、スコープを通じて指定されない限り、デフォルトでシングルトン モードになります。

1. コンストラクターを通じてオブジェクトを作成します。

2.1 引数なしのコンストラクター + セッターメソッドを使用して値を注入する

オブジェクトを作成する最も基本的な方法では、引数なしのコンストラクターのみが必要です (クラスにはコンストラクターは書かれていません。デフォルトではコンストラクターがあります) 、 Any コンストラクターと書かれた場合、デフォルトの引数なしのコンストラクターは自動的に作成されません!!) とフィールドのセッター メソッド。

人物クラス:

Spring がオブジェクトを作成する方法の詳細な説明
package com.mc.base.learn.spring.bean;public class Person {private String name;private Integer id;    public String getName() {return name;
    }public void setName(String name) {this.name = name;
    }public Integer getId() {return id;
    }public void setId(Integer id) {this.id = id;
    }

    @Overridepublic String toString() {return "Person [name=" + name + ", id=" + id + "]";
    }

}
ログイン後にコピー
Spring がオブジェクトを作成する方法の詳細な説明

XML構成:

Spring がオブジェクトを作成する方法の詳細な説明
<?xml  version="1.0" encoding="UTF-8"?><beans><bean><property></property><property></property></bean>    
</beans>
ログイン後にコピー
Spring がオブジェクトを作成する方法の詳細な説明

本質は次のとおりです:

SpringContext はパラメータのない構造を使用します関数はオブジェクトを作成し、setter メソッドを使用してそれを割り当てます。したがって、パラメーターなしのコンストラクターが存在しない場合、Spring コンテキストがオブジェクトを作成するときにエラーが報告されます。

Spring がオブジェクトを作成する方法の詳細な説明
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'person' defined in class path resource [applicationContext.xml]: Instantiation of bean failed; 
nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.mc.base.learn.spring.bean.Person]: No default constructor found; 
nested exception is java.lang.NoSuchMethodException: com.mc.base.learn.spring.bean.Person.
ログイン後にコピー
Spring がオブジェクトを作成する方法の詳細な説明

2.2 パラメーター化されたコンストラクターを使用して、

personクラスを直接注入します:

Spring がオブジェクトを作成する方法の詳細な説明
package com.mc.base.learn.spring.bean;public class Person {private String name;private Integer id;    public Person(String name, Integer id) {super();this.name = name;this.id = id;
    }public String getName() {return name;
    }public void setName(String name) {this.name = name;
    }public Integer getId() {return id;
    }public void setId(Integer id) {this.id = id;
    }

    @Overridepublic String toString() {return "Person [name=" + name + ", id=" + id + "]";
    }

}
ログイン後にコピー
Spring がオブジェクトを作成する方法の詳細な説明

XML 構成:

Spring がオブジェクトを作成する方法の詳細な説明
<?xml  version="1.0" encoding="UTF-8"?><beans><bean><constructor-arg></constructor-arg><constructor-arg></constructor-arg></bean>    
</beans>
ログイン後にコピー
Spring がオブジェクトを作成する方法の詳細な説明

2. 静的ファクトリーメソッドを通じてオブジェクトを作成します。

静的ファクトリーオブジェクトは、コンテナーがロードされるときに作成されます。テストは次のとおりです。

package com.mc.base.learn.spring.factory;import com.mc.base.learn.spring.bean.Person;public class PersonStaticFactory {    public static Person createPerson(){return new Person();
    }    /** * 工厂方法带有参数如何处理?
     * @Title: createPerson 
     * @Description: TODO(这里用一句话描述这个方法的作用) 
     * @param  @param id
     * @param  @param name
     * @param  @return 
     * @return Person    返回类型 
     * @throws     */public static Person createPerson(Integer id,String name){return new Person(name,id);
    }
}
ログイン後にコピー
3. インスタンス ファクトリを通じてオブジェクトを作成します。 Spring がオブジェクトを作成する方法の詳細な説明インスタンスファクトリはインスタンスを通じてオブジェクトを呼び出しますが、取得されたオブジェクトは最終的に単一インタレストモードになります。インスタンス ファクトリと静的ファクトリによって作成されるオブジェクトはどちらもシングルトン モードです。この 2 つの実際の違いは、オブジェクトの作成時に静的ファクトリが作成されるのに対し、インスタンス ファクトリはメソッドの作成時に作成されます。と呼ばれます。 Java 設計パターンのシングルトン パターン設計 (ハングリーマン スタイルとレイジーマン スタイル) を知っている読者は、ここでの静的ファクトリ パターンとインスタンス ファクトリ パターンについてある程度の経験があるはずです。もちろん、上記のオブジェクトの作成では、オブジェクトの作成時にデフォルトのパラメーターを渡すだけでなく、パラメーターを渡すこともできます。 setter メソッドを後で渡します パラメータを渡します。

以上がSpring がオブジェクトを作成する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Spring Boot と OpenAI の出会いによる新しいプログラミング パラダイム Spring Boot と OpenAI の出会いによる新しいプログラミング パラダイム Feb 01, 2024 pm 09:18 PM

2023年、AI技術が注目を集め、プログラミング分野を中心にさまざまな業界に大きな影響を与えています。 AI テクノロジーの重要性に対する人々の認識はますます高まっており、Spring コミュニティも例外ではありません。 GenAI (汎用人工知能) テクノロジーの継続的な進歩に伴い、AI 機能を備えたアプリケーションの作成を簡素化することが重要かつ緊急になっています。このような背景から、AI 機能アプリケーションの開発プロセスを簡素化し、シンプルかつ直観的にし、不必要な複雑さを回避することを目的とした「SpringAI」が登場しました。 「SpringAI」により、開発者はAI機能を搭載したアプリケーションをより簡単に構築でき、使いやすく、操作しやすくなります。

Spring Boot と Spring AI を使用して生成人工知能アプリケーションを構築する Spring Boot と Spring AI を使用して生成人工知能アプリケーションを構築する Apr 28, 2024 am 11:46 AM

Spring+AI は業界リーダーとして、強力で柔軟な API と高度な機能を通じてさまざまな業界に最先端のソリューションを提供します。このトピックでは、さまざまな分野での Spring+AI の応用例を詳しく掘り下げ、Spring+AI がどのように特定のニーズを満たし、目標を達成し、これらの教訓をより広範囲のアプリケーションに拡張するかを示します。このトピックが Spring+AI の無限の可能性をより深く理解し、活用するきっかけになれば幸いです。 Spring フレームワークはソフトウェア開発の分野で 20 年以上の歴史があり、Spring Boot 1.0 バージョンがリリースされてから 10 年が経過しました。今、その春に異論を唱える人はいない

Springプログラマティックトランザクションの実装方法は何ですか? Springプログラマティックトランザクションの実装方法は何ですか? Jan 08, 2024 am 10:23 AM

Spring プログラムによるトランザクションを実装する方法: 1. TransactionTemplate を使用する; 2. TransactionCallback および TransactionCallbackWithoutResult を使用する; 3. Transactional アノテーションを使用する; 4. TransactionTemplate を @Transactional と組み合わせて使用​​する; 5. トランザクション マネージャーをカスタマイズする。

Spring Boot と Spring Cloud の違いと関係 Spring Boot と Spring Cloud の違いと関係 Jun 22, 2023 pm 06:25 PM

SpringBoot と SpringCloud は両方とも、開発者がマイクロサービス アプリケーションをより迅速に構築およびデプロイできるようにする Spring Framework の拡張機能ですが、それぞれ異なる目的と機能を持っています。 SpringBoot は、Java アプリケーションを迅速に構築するためのフレームワークであり、開発者は Spring ベースのアプリケーションをより迅速に作成してデプロイできるようになります。スタンドアロンの実行可能な Spring アプリケーションを構築するための、シンプルでわかりやすい方法を提供します。

史上最も強力な組織 Spring で最もよく使用される 7 つのアノテーション! 史上最も強力な組織 Spring で最もよく使用される 7 つのアノテーション! Jul 26, 2023 pm 04:38 PM

テクノロジーの更新と反復により、Java5.0 はアノテーションをサポートし始めました。 Java の主要なフレームワークである Spring は、バージョン 2.5 に更新されて以来、徐々に XML 構成を放棄し始めており、Spring フレームワークを制御するために使用されるアノテーションが増えています。

Spring でトランザクション分離レベルを設定する方法 Spring でトランザクション分離レベルを設定する方法 Jan 26, 2024 pm 05:38 PM

Spring でトランザクション分離レベルを設定する方法: 1. @Transactional アノテーションを使用します; 2. Spring 構成ファイルに設定します; 3. PlatformTransactionManager を使用します; 4. Java 構成クラスに設定します。詳細な導入方法: 1. @Transactional アノテーションを使用し、トランザクション管理が必要なクラスまたはメソッドに @Transactional アノテーションを追加し、属性に分離レベルを設定します。 2. Spring の設定ファイルなどで

Spring プロジェクトでの JUnit 単体テスト フレームワークの適用 Spring プロジェクトでの JUnit 単体テスト フレームワークの適用 Apr 18, 2024 pm 04:54 PM

JUnit は Spring プロジェクトで広く使用されている Java 単体テスト フレームワークであり、次の手順で適用できます。 JUnit 依存関係を追加します。 org.junit.jupiterjunit-jupiter5.8.1test テスト ケースを作成します。 @ExtendWith(SpringExtension.class) を使用して拡張機能を有効にします。 @Autowired を使用して Bean を注入し、@BeforeEach と @AfterEach を使用して準備とクリーンアップを行い、テスト メソッドを @Test でマークします。

Spring Security 権限制御フレームワークの使用ガイド Spring Security 権限制御フレームワークの使用ガイド Feb 18, 2024 pm 05:00 PM

バックエンド管理システムでは、通常、さまざまなユーザーのインターフェイスへのアクセスを制限するために、アクセス許可制御が必要です。ユーザーに特定の権限がない場合、特定のインターフェイスにアクセスできません。この記事では、waynboot-mall プロジェクトを例として、一般的なバックエンド管理システムがアクセス許可制御フレームワーク SpringSecurity を導入する方法を紹介します。 waynboot-mall プロジェクトアドレス: https://github.com/wayn111/waynboot-mall 1. SpringSecurity とは SpringSecurity は、Spring フレームワークをベースとした、強力かつ柔軟なセキュリティの提供を目的としたオープンソース プロジェクトです。 Java アプリケーションの場合。

See all articles