4

Spring MVC Web アプリケーション (WAR としてパッケージ化) 内に、データベースへのアクセスを担当し、 /WEB-INF/lib の下のクラスパスに@Serviceある外部 jar からアノテーションが付けられたいくつかの Spring フレームワーク Bean をロードしたいと考えています。可能であれば、アノテーションを使用してそれらを自動的にロードすることが望ましいでしょう。@Autowired

私はこのlink1の解決策に成功しました:

this.ctx = new ClassPathXmlApplicationContext("services-context.xml");
this.myAService = ctx.getBean("myAService");

ただし、このソリューションでは、悪い習慣と見なされるSpring API 関数getBeanを使用しています ( link2を参照)。

また、外部jarのapplicationContextをロードするために、運が悪かったので、さらに2つのことを試しました。

  • WAR の appContext.xml:

    <import resource="classpath*:/WEB-INF/lib/pathToExternalJar/applicationContext.xml">
    
  • WAR の Web xml -> ここ ( link3 )で説明されているように、jar の appContext をロードします。(例: *applicationContext.xml):

        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                classpath:localSpringContext.xml
                classpath:*applicationContext.xml
            </param-value>
        </context-param>
    

これらの Bean を適切にロードするための最良の方法は何ですか?また、どのように行う必要がありますか?

4

1 に答える 1