Junnit Testはspring容器beanの2つの方式を持っています.
2998 ワード
先に言います.Class PathXml Apple Contect.
このクラスは、デフォルトで取得したのはWEB-INF/classis/下の経路、つまりmyeclipseのsrc下の経路ですので、これではWEB-INF下の配置ファイルが入手できません.
以下はいくつかの用法で、引用srcの下の一つの文書には、以下のいくつかの方法があります.
クラスパス: 設定ファイルは一つしか読み込めません.複数設定されている場合は、最初のファイルだけをロードします.
クラスパス*: 複数のプロファイルを読み込むことができます.複数のプロファイルがあれば、これを使います.
引用src下の複数のファイルには、以下のいくつかの方法があります.
このクラスは、デフォルトで取得したのはプロジェクトパスです.プロジェクト名のこのレベルです.しかし、テストします.myeclipseの下で、mainメソッドを実行して、配置ファイルを取得して、経路はWebRoot/WEB-INF/で大丈夫です.でも、tomcatの下に発表したら、どうやって配置ファイルをすべてsrcの下に移すしかありません.linuxに発表したら問題がありません.
以下はいくつかの用法で、WEB-INFの下の一つのファイルを引用して、以下のいくつかの方式があります.
前にfileを入れたら、後の経路は全パスを書くということです.絶対パスです.
以下はいくつかの用法で、WEB-INF/clasesの下の一つのファイルを引用して、以下のいくつかの方式があります.
以下はいくつかの用法で、WEB-INFの下の複数のファイルを引用して、以下のいくつかの方式があります.
このクラスは、デフォルトで取得したのは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