あなたは合理的に考えると、どのように春が速くなることができますか?それはあなたのコードの上にラッパーです。また、それは適用可能なデフォルトのコンストラクタ/オーバーロードコンストラクタを経由します。
import demo.dependency.injection。IAccount;
public class SavingAccount implements IAccount {
public static int SAVING_INT = 5;
public SavingAccount() {
System.out.println("Default constructor invoked!!");
}
@Override
public int calculateInterest(int amount, int duration) {
return (amount*duration*SAVING_INT)/100;
}
}
豆の設定:アプリケーション・コンテキストを使用してBeanをロードすると、それは我々が以外理解する必要があり、ここで、しかし
ApplicationContext context = new FileSystemXmlApplicationContext("/Beans/SpringDemo.xml");
Account myAccount = (Account)context.getBean("FixedAccount");
Default constructor invoked!!
を出力します
<!-- Fixed Account -->
<bean id="FixedAccount" class="demo.dependency.injection.impl.FixedAccount">
</bean>
パフォーマンスには他の利点があります。 のように - DI - 管理性
だからパフォーマンスの理由は正当ではないと思います。
それ以外: Spring IOCフレームワークは、Spring Bean構成を使用してインスタンスを作成する方法を提供します。ただし、new演算子を使用してインスタンスを作成することを停止するわけではありません。
私はあなたの代わりに春の豆の新しいを使用することを選択したことの例を与えたいと思います。
あなたのWebアプリケーションでは、ビジネスロジックのためのさまざまなメソッドを持つシングルトンBeanがあり、操作ごとに新しいオブジェクトインスタンスが必要な場合があります(メソッドレベルの変数はスレッドセーフです)。
シングルトンBeanにプロトタイプBeanがある場合、シングルトンBeanが呼び出されたときに一度だけ呼び出されるためです。完全な理解のためにこれを行ってください。
http://static.springsource.org/spring/docs/3.0.0.M3/spring-framework-reference/html/ch04s04.html
出典
2012-04-16 07:20:37
neo
正確にハンドリングするオブジェクトを教えてください。 –
別の層の間でデータキャリアとして使用されるJavaコレクションを拡張することによるカスタムコレクションクラス..もし私の同僚がモジュール性について不平を言うならば、しかし、その理由がパフォーマンスであれば、パフォーマンスがどのように向上するかを知る必要があります。私は春について多くの知識を持っていないので、私は質問を投稿します。 – Shashi
クイックサンプルは、newを使用してスタックトレースを比較し、springを使用してスタックトレースを比較してください。後者は10または数百行になり、おそらく5つ以上のクラスが含まれます。新しいクラスは常により速く、永遠になります。 –