Java IOC実装対象初期化
1860 ワード
Beanオブジェクトの作成
Beanを作成し、私たちが作成したIOCをエージェントオブジェクトの作成に使用します.
プロファイルの作成
プロファイルはプロファイルとしてプロパティファイルを使用し、Javaが持つプロパティを使用してプロファイルを解析します.
ファクトリクラスの作成
工場モードを使用してBeanオブジェクトの生産を行い、プログラムオブジェクトの作成と使用を使用して十分にデカップリングします.クラスの反射メカニズムを使用して、プロファイルに基づいてオブジェクトを作成します.
検証#ケンショウ#
IOCがオブジェクトの作成に成功したかどうかを検証するには、私たちのプログラムがデカップリングされなければならない.
Beanを作成し、私たちが作成したIOCをエージェントオブジェクトの作成に使用します.
public class User {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
プロファイルの作成
プロファイルはプロファイルとしてプロパティファイルを使用し、Javaが持つプロパティを使用してプロファイルを解析します.
user=com.outlook.sftjun.User
user.name=MyName
ファクトリクラスの作成
工場モードを使用してBeanオブジェクトの生産を行い、プログラムオブジェクトの作成と使用を使用して十分にデカップリングします.クラスの反射メカニズムを使用して、プロファイルに基づいてオブジェクトを作成します.
package com.outlook.sftjun;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;
public class UserFactory {
public static User getUser() {
User user = null;
String clazzName = null;
Properties prop = new Properties();
InputStream in;
try {
in = new BufferedInputStream(new FileInputStream(
"/home/yinjun/wsp/java/Tst/src/bean.properties"));
prop.load(in);
clazzName = (String) prop.get("user");
user = (User) Class.forName(clazzName).newInstance();
String name = prop.getProperty("user.name");
user.setName(name);
} catch (Exception e) {
e.printStackTrace();
}
return user;
}
}
検証#ケンショウ#
IOCがオブジェクトの作成に成功したかどうかを検証するには、私たちのプログラムがデカップリングされなければならない.
package com.outlook.sftjun;
public class App {
public static void main(String[] args) {
User user = UserFactory.getUser();
System.out.println(user.getName());
}
}