2014-10-09 20 views
0

我是Java和Spring世界的新手,所以請耐心等待。我正在開發我的第一個Java項目。這裏我使用Spring框架,從ApplicationContext創建一個對象。在java項目中實例化beanfactory的地方

我在項目中有不同的包中的多個文件,如dao,lib,util,等我的問題是應該在哪裏下面的行。我將使用下面給出的相似代碼在各個地方創建多個類的對象。我應該在需要「OrganizationMapperService」對象還是其他類的任何地方使用它們?什麼是標準的做法呢?

ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml"); 

OrganizationMapperService orgMapperService = 
    (OrganizationMapperService) context.getBean("organizationMapperService"); 
+0

從不創建applicationcontext的實例。您每次都創建一個新實例。您應該只有一個上下文實例,其他所有應該依賴注入。 – 2014-10-09 12:45:36

+0

@ M.Deinum:是的,這看起來不對,如何做依賴注入,你可以給一些示例鏈接/代碼,我查了一下,變得更加困惑。 – Saurabh 2014-10-09 12:48:16

回答

0

如果您正在創建一個web應用程序,你應該配置應用程序上下文加載在web.xml:

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     /WEB-INF/context/applicationContext.xml,/WEB-INF/context/applicationContext-*.xml,classpath:context/visibility-applicationContext.xml,classpath:eventbus-applicationContext.xml,classpath:context/clients-applicationContext-ws.xml 
    </param-value> 
</context-param> 

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
+0

我正在做一個jar,它將被用作web應用程序的依賴項,它仍然可以工作嗎? – Saurabh 2014-10-09 12:57:06

0

想要集裝箱裝卸過程中注入可被聲明爲引用豆在應用程序上下文中的文件如下:

<context:component-scan base-package="package.name"></context:component-scan> 

<bean id="abc" class=" package.name.Abc" /> 

組件掃描將自動掃描組件。

現在你可以自動裝配在該區域中,你要使用它,如下所示在課堂上引用:你需要爲ApplicationContext的文件在web.xml中的條目

@Autowired 
private Abc abc 

+0

它開始給出錯誤:'Autowired成員必須在有效的spring bean(@ Component/@ Service等)中定義' – Saurabh 2014-10-09 13:06:04

+0

@saurabh你可以只發布你得到的實際錯誤 – 2014-10-09 13:23:18