検索

ホームページ  >  に質問  >  本文

Java:Annotation中如何读取动态配置值?

@WebService(targetNamespace = "http://zonepower.com/")

配置@WebService的targetNamespace需要读取配置文件中的值而非在代码中写死该如何实现呢?

天蓬老师天蓬老师2807日前854

全員に返信(2)返信します

  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:00:51

    それは無理な気がします。
    ただし、動的にしたい場合は、アノテーション@WebServiceの実行タイミングを調整する必要があります。
    少なくとも RetentionPolicy.RUNTIME 形式では。

    UPDATE
    対象者がそのような要件を達成するための他の方法を見つけたかどうかに関係なく、アノテーションの観点からは必ずしも解決されるとは限りません。
    ここで私の考えを説明します。次のコードでは、Holder アノテーションの動作をシミュレートするために WebService アノテーションが使用されます。
    まず、ターゲット URL (ターゲット エンドポイント) に解析するには別の Hacker アノテーションが必要です。もちろん、これは別の方法で行うこともできます。
    元のクラスに Hacker アノテーションのみを設定し、動的解析によってターゲット URL への Hacker アノテーションを解析し、この URL を使用して Holder アノテーションを構築し、最後にそれを元のクラスに追加します。 (先に結論をお読みください!!!)

    ホルダーの注釈

    リーリー

    ハッカーノート

    リーリー

    例Pojo 通常の POJO クラス

    リーリー

    メインクラスをテストします

    リーリー

    結論

    上記の解決策は無効です! ! !

    添付ファイル

    参考リンク:
    [1] http://ayoubelabbassi.blogspot.jp/2011/01/how-to-add-annotations-at-runtime-to.html
    [2] http:/ /prismoskills.appspot.com/lessons/Super_Java/Dynamically_adding_annotations.jsp

    返事
    0
  • ringa_lee

    ringa_lee2017-04-17 17:00:51

    1 つをカスタマイズするか、1 つを書き換えます

    返事
    0
  • キャンセル返事