1. BeanFactory V.S. ApplicationContext
BeanFactory only handles the managements of beans.
ApplicaitonContext is build upon BeanFactory (by inheritance) but add enterprise support to it, such as AOP/Resource etc.
2. BeanDefinition will hold the metadata for beans, such as scope, lazy-initialization and so on.
3. You can use your self-defined to create your bean, just by XML configuration
<bean id="exampleBean" factory-bean="serviceLocator" factory-method="createInstance"/>
3.
<ref local="someBean"/>
means that the container will try to seek this bean in the same xml file.
4.
<bean id="beanOne" class="ExampleBean" depends-on="manager"/>
will tell the container to initialize "beanOne" after it initializes "manager"
5.Inject "local" variable
package fiona.apple; // no more Spring imports! public abstract class CommandManager { public Object process(Object commandState) { // grab a new instance of the appropriate Command interface Command command = createCommand(); // set the state on the (hopefully brand new) Command instance command.setState(commandState); return command.execute(); } // okay... but where is the implementation of this method? protected abstract Command createCommand(); }
<bean id="commandManager" class="fiona.apple.CommandManager"> <lookup-method name="createCommand" bean="command"/> </bean>