0

ラム時に動的な値を必要とするコンストラクターがあり、
依存性注入を引き続き使用できるかどうか疑問に思っていました。この場合、Spring を使用して依存性注入を行う方法を教えてください。

public class User { 

    private String username;
    private int userid;

    User(String username, int userid) {
        this.username = username;
        this.userid = userid;
    }

    public String toString() {
        return "username" + userid;
    }
}

public class Superuser {

    private User user;

    public daomethod() {
        //some data access code that gets the username and id ......
        // now i need to pass this username and user id to the User constructor        
        user.toString();**     
    }
}
4

2 に答える 2

0

これがまだ人々にとって問題である場合、Spring には登録に名前を付けることができるエイリアスがあります: http://springframework.net/doc/sdk/2.0/html/Spring.Core~Spring.Context.Support.TypeRegistry~RegisterType%28String ,文字列%29.html

次に、これらの名前付き登録および命名規則と組み合わせて抽象ファクトリを使用すると、これらの依存性インジェクションを非常にクリーンな方法で解決できます。簡単な .NET + Unity の例を作成しました (基本は同じです): https://dannyvanderkraan.wordpress.com/2015/06/29/real-world-example-of-dependency-injection-based-on -実行時の値/

おそらくそれは人々を助けます。

于 2015-07-02T18:28:13.257 に答える
0

@javax.inject.Inject を次のように使用します。

    @Inject
    User(String username, int userid) {
        this.username = username;
        this.userid = userid;
    }
于 2013-03-28T06:06:37.727 に答える