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 を適切にロードするための最良の方法は何ですか?また、どのように行う必要がありますか?