Junnit Testはspring容器beanの2つの方式を持っています.

2998 ワード

先に言います.Class PathXml Apple Contect. 
このクラスは、デフォルトで取得したのはWEB-INF/classis/下の経路、つまりmyeclipseのsrc下の経路ですので、これではWEB-INF下の配置ファイルが入手できません. 
以下はいくつかの用法で、引用srcの下の一つの文書には、以下のいくつかの方法があります. 
BeanFactory ac = new ClassPathXmlApplicationContext("applicationContext.xml");  
BeanFactory ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");  
BeanFactory ac = new ClassPathXmlApplicationContext("classpath:/applicationContext.xml");  
ac.getBean("beanID");  
クラスパス:とクラスパス*:の違い: 
クラスパス:   設定ファイルは一つしか読み込めません.複数設定されている場合は、最初のファイルだけをロードします. 
クラスパス*:  複数のプロファイルを読み込むことができます.複数のプロファイルがあれば、これを使います. 
引用src下の複数のファイルには、以下のいくつかの方法があります.
BeanFactory ac = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml","applicationContext-test.xml"});  
BeanFactory ac = new ClassPathXmlApplicationContext("classpath*:/applicationContext*.xml");  
BeanFactory ac = new ClassPathXmlApplicationContext("classpath*:src/folder/applicationContext*.xml"); 
また、FileSystemXmlApplication Contect 
このクラスは、デフォルトで取得したのはプロジェクトパスです.プロジェクト名のこのレベルです.しかし、テストします.myeclipseの下で、mainメソッドを実行して、配置ファイルを取得して、経路はWebRoot/WEB-INF/で大丈夫です.でも、tomcatの下に発表したら、どうやって配置ファイルをすべてsrcの下に移すしかありません.linuxに発表したら問題がありません. 
以下はいくつかの用法で、WEB-INFの下の一つのファイルを引用して、以下のいくつかの方式があります. 
BeanFactory factory = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml");  
BeanFactory factory = new FileSystemXmlApplicationContext("file:D:/workspace/testproject/WebRoot/WEB-INF/applicationContext.xml");  
このうち、FileSystemXmlAppleicationContectのスタート経路はプロジェクトパスですので、直接WebRoot/WEB-INFと書くことができます. 
前にfileを入れたら、後の経路は全パスを書くということです.絶対パスです. 
以下はいくつかの用法で、WEB-INF/clasesの下の一つのファイルを引用して、以下のいくつかの方式があります. 
BeanFactory factory = new FileSystemXmlApplicationContext("classpath:applicationContext.xml");
これはClass PathXml Apple Conteetと同じです.複数はワイルドカードを入れます. 
以下はいくつかの用法で、WEB-INFの下の複数のファイルを引用して、以下のいくつかの方式があります. 
BeanFactory factory = new FileSystemXmlApplicationContext(new String[]{"WebRoot/WEB-INF/applicationContext.xml","WebRoot/WEB-INF/applicationContext-test.xml"});  
BeanFactory factory = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext*.xml");  
BeanFactory factory = new FileSystemXmlApplicationContext("file:D:/workspace/testproject/WebRoot/WEB-INF/applicationContext*.xml"); 
WEB-INF/clasesの下の複数のファイルを引用するのも同じです. 
BeanFactory factory = new FileSystemXmlApplicationContext(new String[]{"classpath:applicationContext.xml","classpath:applicationContext*.xml"});  
BeanFactory factory = new FileSystemXmlApplicationContext("classpath*:applicationContext*.xml"); 
転載先:http://heisetoufa.iteye.com/blog/1671306