From: Robert W. <rw...@gm...> - 2008-06-10 21:31:53
|
Thank you for your quick response. I am attempting to easily get instances out of the "current" ApplicationContext as a factory rather than using IoC. A few outlines are given below. 1) Here is an example of what I am trying to avoid. I will comment on an example below (perhaps I am doing this wrong and someone help with that). // I do not want them to have to know the resources to pass in. This assumes it is locatorContext.xml, but that can change. // This flexibility is externalized for a web application using the contextConfigLocation parameter BeanFactoryLocator locator = ContextSingletonBeanFactoryLocator.getInstance("locatorContext.xml"); // Here I need to get a bean factory too? Why is it not just an ApplicationContext that is returned? Are there benefits to this? // If there are, I do not like that the user must know the id of the factory and have that in the code (similar to the resource location, it isn't externalized) BeanFactoryReference factoryRef = locator.useBeanFactory("springFactory"); // Get an instance of the object. Here I am not concerned with the user knowing the id of the bean. Service service = (Service)factoryRef.getFactory().getBean("service"); Another thing I do not like is that there are so many steps involved in getting the bean out of the applicationcontext. I just want to get an instance. 2) One approach I have seen that is similar to what I want is outlined below: // get the applicationcontext (but i do not want it to depend on j2ee. // For example ContextLoader contains a compile time dependency on ServletContext. ApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); // get a bean from the applicationcontext // once again, knowing the id of the bean is acceptable (and expected) Service s = (Service) context.getBean("service"); // use the bean Is there any approach similar to #2 that works without a dependency on j2ee? I am certain I could write some code to do this, but I would like to do this with code that exists and in the cleanest way possible. Feedback on even doing this is appreciated too. I would like to know that part of the requirement is to use Spring as a Factory (Unfortunately, IoC is not permissible for this use case). Thanks! On Tue, Jun 10, 2008 at 2:03 PM, Chris Beams <chr...@sp...> wrote: > Hi Robert, > > Please provide a bit more context about what you're trying to achieve > (a simple code example would suffice). > > - Chris > > -- > > Chris Beams > Senior Consultant, SpringSource > http://www.springsource.com > > > On Jun 10, 2008, at 3:00 PM, Robert Winch wrote: > > > I am looking for a method to easily access the current > > ApplicationContext that is not bound to j2ee. The closest thing I > > have found is > org.springframework.web.context.ContextLoader.getCurrentWebApplicationContext > > (), but this class has dependencies on j2ee. Is there a recommended > > way of obtaining the current ApplicationContext for applications > > that may exist outside the web? > > > > Thanks in advance! > > Rob > > ------------------------------------------------------------------------- > > Check out the new SourceForge.net Marketplace. > > It's the best place to buy or sell services for > > just about anything Open Source. > > > http://sourceforge.net/services/buy/index.php_______________________________________________ > > Springframework-developer mailing list > > Spr...@li... > > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > |