春の研究ノート1.1入門 -

春のフレームワーク

開発ツール:IDEAプロフェッショナル、JDK1.8以上、Mavenのツール

コンテナコアコンポーネント:

豆:豆は、主にオブジェクト間の関係の構成、ならびにいくつかのオブジェクトのインスタンス化操作を含み、それは管理の対象である言いました。

コアは、次のような、開発支援の最低レベルが含ま:注射依存関係、リソース・ファイルへのアクセス、データ型の変換。

コンテキスト:このコンテキストでは、ライフサイクルや業務を処理することができ、完全なコンテナのコンテキストを提供します。

式言語モジュール:使用呪文は文字列関数を高めるために、演算式の言語を達成。

プログラミングセクション:

AOP:春は、補助事業のあらゆる側面に対処するためのプログラムを使用して、全体の魂です。

アスペクト:セクションをプログラミング構文をサポート。

計装:主にJVMコードで実行されている動的プロセスを検出するために使用されます。

データアクセスモジュール:

JDBC:Javaの間で、JDBCは運用形態へのデータベースの操作のために、完成ネイティブJDBCの半分を使用しますORMapping Springフレームワークが提供されます。

ORM:ORMappingフレーム処理動作を容易に組み合わせることができる共通コンポーネントJDO、Hibernateは、iBatisのMyBatisの等。

OXM:それはXML文書間の相互変換のためのオブジェクトを提供します。

JMS:サービスのメッセージングのためのサポートを提供します。

トランザクション:操作をサポートするためのサービスを処理するデータ・アクセス・モジュールでは、

Webサポートモジュール:

MVC:春は、MVC(最高の種類を達成することである)の独自の実装を提供します。

Strutsの:春は簡単にStruts2.x管理をサポート。

サーブレット:サーブレットMVCクラスの独自のコピー処理;

ホステッド春はプロジェクト全体が個別に開発することができ、他のフレームワークに統合収容することができます完了しました。

春は新しいキーワードのカップリングによって引き起こされる問題を回避し、春は直接構成によって、明示的に参照伝達関係を必要としない、完全な、春のプログラミング=ファクトリーデザインパターン+プロキシデザインパターンです。

コントロールIOCの反転(制御の反転):

すべてのオブジェクトは操作が不要になり、新たな新しいキーワードを処理してインスタンス化、というように、パッケージング技術の一種である制御手段は、春に作成された権利オブジェクトを逆に反転され、効果がデカップリング手順を達成することです;

原則として基本となる:工場出荷時のデザインパターンの反射+ + XML設定ファイル。永続DAO(データアクセスオブジェクト、データアクセスオブジェクト)のために、インタフェースを作成し、実装クラスに対応するインタフェースを作成します。

プロジェクトを作成します。

下記に示すように、まず、IDEAでプロジェクトを作成します。

ライン上の春のバック・サポート・パッケージを選択し、Mavenのリポジトリパスがあります、彼らはライン上にインストールされていることのパスを選択します。

リソースを作成するには、以下のようにフォルダを右クリックし、[MakeAs->リソースのルートを選択し、[applicationContext.xmlを作成します。

 

次のコードを入力します。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    
</beans>

[サービス]フォルダを作成した後、IServiceインターフェイスを作成し、doSomethingのを提供する();メソッド、その後、実装インタフェースIServiceImpというクラスを記述します。

@Override
public void dosomething() {
    System.out.println("This is My first Spring project");
}

 あなたはapplicationContext.xmlをドキュメントを作成する呼び出しのApplicationContext CTXオブジェクトを使用して、テストクラスのテストを作成した後、アクセスIservice実装クラス、

次に、豆applicationContext.xmlをファイルオブジェクトを追加するとき、クラスパスを指定し、メソッドを呼び出します

<bean id="IService" class="com.project.service.IServiceImpl"/>

デモ:

import com.project.service.IService;
import com.project.service.IServiceImpl;
import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class test {
    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        IService service = ctx.getBean("IService", IServiceImpl.class);
        service.dosomething();
    }
}

結果:

 

依存性注入(DI):基準設定操作は、データクラス間の関係を決定し、設定ファイルの関係を使用します。

  1. インジェクションコンストラクタ:プログラムは、デフォルトで自動的にapplicationContext.xmlをすることができ、ファイル内に配置され、ロードされたSpringコンテナがある場合に自動インスタンスオブジェクトの動作が行われます。しかし、自動初期化が容易参照コンストラクタが提供されるよりもクラスは引数なしでコンストラクタを提供しなければならない場合、反射によって、引数なしクラスで呼び出さコンストラクタです。

しかし、これはスプリング、スプリング及び動的特性が明示的にコンストラクタを呼び出す直接パラメータを渡すことができる反射を簡素化します。

デモ:クラスを定義します。

public class Detp {
    private int DetpId;
    private String DetpName;
    public Detp(int DetpId,String DetpName){
        this.DetpId = DetpId;
        this.DetpName = DetpName;
    }

    @Override
    public String toString() {
        return "部门编号: "+DetpId+"  部门名称: "+DetpName;
    }
}

applicationContext.xmlをコンストラクタパラメータアサイン設定によって、インデックスの場所を使用してパラメータを指定しました。

<bean id="dept" class="com.project.detp.Detp">
    <constructor-arg index="1" value="后端部"></constructor-arg>
    <constructor-arg index="0" value="1"></constructor-arg>
</bean>

設定ファイルをロードすることにより、書き込みテストクラス、出力のオブジェクトID DEPTを探します。

public class testDetp {
    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        Detp detp = ctx.getBean("dept",Detp.class);
        System.out.println(detp);
    }
}

結果を入力します。

使用セッター・インジェクション 

プロパティのセッター&ゲッタークラスのメソッドを設定することにより

従来の動作では、設定のセッターを呼び出すapplicationContext.xmlを対応する各属性値のプロパティ設定によって設けられたバネ動的コンテンツを使用して、ファーストクラスのインスタンス化部門でなければなりません

<bean id="dept" class="com.project.detp.Detp">
    <property name="detpId" value="1"/>
    <property name="detpName" value="开发部"/>
</bean>

    強力な使用セッター注入を使用すると、オブジェクトビーンの他のタイプを参照することができるということです。

    スタッフのカテゴリ、セットの3つのプロパティ、セッター&ゲッターを書きます:

public class Employee {
    private int emp_id;
    private String emp_name;
    private Detp detp;
    public int getEmp_id() {
        return emp_id;
    }
    public void setEmp_id(int emp_id) {
        this.emp_id = emp_id;
    }
    public String getEmp_name() {
        return emp_name;
    }
    public void setEmp_name(String emp_name) {
        this.emp_name = emp_name;
    }
    public Detp getDetp() {
        return detp;
    }
    public void setDetp(Detp detp) {
        this.detp = detp;
    }
    @Override
    public String toString() {
        return "雇员编号: "+this.emp_id+",员工姓名: "+this.emp_name+",所属部门:"+this.detp;

    }
}

    次いで、オペレータは、コンフィギュレーションファイルを使用して特性との間の関係を決定します。

<bean id="emp" class="com.project.detp.Employee">
    <property name="emp_id" value="15801"/>
    <property name="emp_name" value="Vlad Craste"/>
    <!--ref引用其他Bean对象的内容-->
    <property name="detp" ref="dept"/>
</bean>

スタッフは、テストクラスを記述します。

public class TestEmp {
    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        Employee employee = ctx.getBean("emp",Employee.class);
        System.out.println(employee);
    }
}

テストクラスを実行するためにクリックしてください。

 

公開された58元の記事 ウォン称賛31 ビュー40000 +

おすすめ

転載: blog.csdn.net/qq_37504771/article/details/103115063