春() - 春IOCコンテナとオブジェクトを作成します

1.春のプロフィール

Java EEの開発のためのフレームワークは、移植、トランザクション管理、アスペクト指向プログラミング、および他の多くの機能の対象を達成することができたよう。

我々はすべてそれ堪能把握にする必要があり、独自の生態系を持っている、状況は非常に高く、武術のチャンピオンのようなものです。

春のプロジェクトを作成します。2.

簡単な方法:すでに設定して、コピーし、手動でステップバイステップで作成する必要はありません
mavendemoからコピーするためのプロジェクトとして
mavendemoのの場所を見つける
ここに画像を挿入説明
コピーmavendemoプロジェクトを、プロジェクト名を変更します
ここに画像を挿入説明

ここに画像を挿入説明
プロジェクトspringdemoにクリックして
ここに画像を挿入説明
変更pom.xmlファイル
ここに画像を挿入説明
操作するの考え方に
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
次の展開桟橋サーバ
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
テストアクセス結果を
ここに画像を挿入説明
、これまで、springdemoプロジェクトは成功を作成します!

要件によると、別のワークスペースにインポートすることができます
。このワークスペースにコピーDドライブにワークスペースspring_courseを作成するには、ちょうど良いプロジェクトspringdemoを作成し
ここに画像を挿入説明
ここに画像を挿入説明
、オープンなアイデアを
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
新しいワークスペースを作成した後、輸入springdemoプロジェクトを
ここに画像を挿入説明

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
これまでのところ、新しいスペースの下springdemoプロジェクトが作成されました!

春・コンテキストと春コア:また、あなたは、依存関係のpom.xmlファイルで依存関係を追加する必要があります
ここに画像を挿入説明

オブジェクトを作成するための3春IOC

Javaでオブジェクトを作成する方法
新しい新しい(1)
(2)クローン:エンティティクラスが実装Cloneableインタフェースオーバーライドクローン()メソッド、および公共の権利
(3)反射器
(4)デシリアライズオブジェクト:エンティティ・クラスが実装シリアライズ

4上記に加えて、春IOCコンテナを作成するために使用することができる
ばねIOCオブジェクトを使用して容器に(5)。達成するために、新たな、だけでなく、内部反射+ XMLドキュメントを解決することにより、使用しないでください。

(上記の5つの方法を達成するための)コードのテスト:

  • まず、Javaのフォルダ内のエンティティクラスの学生を作成します
package com.zz.domain;

import java.io.Serializable;

public class Student implements Cloneable, Serializable {
    private int id;
    private String name;
    private String gender;
    private String birthday;
    private String major;

    public Student() {
    }

    public Student(int id, String name, String gender, String birthday, String major) {
        this.id = id;
        this.name = name;
        this.gender = gender;
        this.birthday = birthday;
        this.major = major;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    @Override
    public Object clone() throws CloneNotSupportedException {
        return super.clone();
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", gender='" + gender + '\'' +
                ", birthday='" + birthday + '\'' +
                ", major='" + major + '\'' +
                '}';
    }
}
  • Javaのフォルダ内のテストクラスIocDemo(テスト前4種類)を作成します。
package com.zz.test;

import com.zz.domain.Student;

import java.io.*;
import java.lang.reflect.Constructor;

public class IocDemo {
    public static void main(String[] args) throws Exception {
        File file = new File("dest.data");
        //new
        Student s1 = new Student(01,"刘一","男","1998-05-11","通信");
        System.out.println(s1);

        //clone()
        Student s2 = (Student) s1.clone();
        System.out.println(s2);

        //反射
        Class aClass = s1.getClass();  //创建类对象
        //反射构造方法,返回构造方法对象
        Constructor constructor = aClass.getConstructor(int.class, String.class, String.class, String.class, String.class);
        Student s3 = (Student) constructor.newInstance(new Object[]{02, "王二", "男", "1999-12-01", "英语"});
        System.out.println(s3);

        //对象反序列化
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
        out.writeObject(s1); //把刘一对象写入到文件中。

        ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
        Student s4 = (Student) in.readObject();
        System.out.println(s4);
    }
}
  • 業績
    ここに画像を挿入説明

次の春には、第五の方法によって作成されました:

  • まず、rescourseフォルダ内の構成ファイル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">

   <!--定义一个学生对象-->
    <bean id="s1" class="com.zz.domain.Student">
        <property name="id" value="088"/>
        <property name="name" value="王思聪"/>
        <property name="gender" value="男"/>
        <property name="birthday" value="1988-07-18"/>
        <property name="major" value="谈恋爱"/>
    </bean>
</beans>
  • その後IocDemo02フォルダJavaでテストクラスを作成します
package com.zz.test;

import com.zz.domain.Student;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class IocDemo02 {
    public static void main(String[] args) {
        //使用了spring ioc 容器注入了一个对象。没有使用new.内部也是通过反射+xml文档的解析来实现的。
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        Student s1 = (Student) context.getBean("s1");
        System.out.println(s1);
    }
}
  • 業績
    ここに画像を挿入説明

春IOCの実行順序:

  ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
  Student s1 = (Student) context.getBean("s1");

(1)applicationContext.xmlを文書にすべてのリソース負荷の最初の
(2)文書解析
(3)getBean(S1「を」 )、 オブジェクトへの文書からS1解析されました。、Javaリフレクション機構を使用してオブジェクトを反射し返さ

シンプルな1:内部春IOCの原則XMLは+反射解析している達成
注:初期化プロパティを達成するために、引数なしでデフォルトコンストラクタを呼び出すことによって作成された目的を達成するためのsetXXXを呼び出すことによって、その後の要件は、引数なしのデフォルトを保持してはなりませんコンストラクタ、または春ICOコンテナは、オブジェクトをインスタンス化することはできません。

:IOCは、オブジェクト初期化ステップ加算
(1)applicationContext.xmlをロード
解析されたオブジェクトIDに対応する(2)
オブジェクトインスタンス、引数なしのデフォルトのコンストラクタを呼び出すことにより、反射(3)
のsetXXX、初期化プロパティを呼び出すことにより、(4)

公開された62元の記事 ウォンの賞賛2 ビュー2723

おすすめ

転載: blog.csdn.net/nzzynl95_/article/details/104327669