./springframework/autowiring.txt

download original
spring @Autowired wiring-up of objects created using operator "new":

package org.springframework.beans.factory.aspectj;

public abstract aspect AbstractDependencyInjectionAspect {
    ...

	/**
	 * Post-construction configuration.
	 */
	@SuppressAjWarnings("adviceDidNotMatch")
	after(Object bean) returning : 
		beanConstruction(bean) && postConstructionCondition() && inConfigurableBean() {
		configureBean(bean);
	}

    ...
}


definitions of the pointcuts:

(from AbstractInterfaceDrivenDependencyInjectionAspect)

	/**
	 * Select initialization join point as object construction
	 */
	public pointcut beanConstruction(Object bean) : 
		initialization(ConfigurableObject+.new(..)) && this(bean);  //see declare parents below



(from AnnotationBeanConfigurerAspect)

	public pointcut inConfigurableBean() : @this(Configurable);

	declare parents: @Configurable * implements ConfigurableObject;


(from AbstractDependencyInjectionAspect)

	private pointcut postConstructionCondition() :
		mostSpecificSubTypeConstruction() && !preConstructionConfiguration();

	/**
	 * Select join points in beans to be configured prior to construction?
	 * By default, use post-construction injection matching the default in the Configurable annotation.
	 */
	public pointcut preConstructionConfiguration() : if(false);


	/**
	 * Select the most-specific initialization join point 
	 * (most concrete class) for the initialization of an instance.
	 */
	public pointcut mostSpecificSubTypeConstruction() :
		if(thisJoinPoint.getSignature().getDeclaringType() == thisJoinPoint.getThis().getClass());



complete backtrace (autowired setter is FormTemplate#setFormRepository):

Thread [main] (Suspended (breakpoint at line 44 in FormTemplate))	
	FormTemplate.setFormRepository(FormTemplateRepository) line: 44	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
	Method.invoke(Object, Object...) line: 597	
	AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(Object, String, PropertyValues) line: 601	
	InjectionMetadata.inject(Object, String, PropertyValues) line: 84	
	AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(PropertyValues, PropertyDescriptor[], Object, String) line: 283	
	DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).populateBean(String, AbstractBeanDefinition, BeanWrapper) line: 1074	
	DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).autowireBeanProperties(Object, int, boolean) line: 374	
	BeanConfigurerSupport.configureBean(Object) line: 140	
	AnnotationBeanConfigurerAspect.configureBean(Object) line: 59	
	AnnotationBeanConfigurerAspect(AbstractDependencyInjectionAspect).ajc$afterReturning$org_springframework_beans_factory_aspectj_AbstractDependencyInjectionAspect$2$1ea6722c(Object) line: 89	
	<unknown receiving type>(FormTemplate).<init>() line: 28	
	NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line: not available [native method]	
	NativeConstructorAccessorImpl.newInstance(Object[]) line: 39	
	DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 27	
	Constructor<T>.newInstance(Object...) line: 513	
	PojoInstantiator.instantiate() line: 111	
	PojoInstantiator.instantiate(Serializable) line: 123	
	PojoEntityTuplizer(AbstractEntityTuplizer).instantiate(Serializable, SessionImplementor) line: 606	
	SingleTableEntityPersister(AbstractEntityPersister).instantiate(Serializable, SessionImplementor) line: 3888	
	SessionImpl.instantiate(EntityPersister, Serializable) line: 1412	
	SessionImpl.instantiate(String, Serializable) line: 1401	
	OneToManyLoader(Loader).instanceNotYetLoaded(ResultSet, int, Loadable, String, EntityKey, LockMode, EntityKey, Object, List, SessionImplementor) line: 1362	
	OneToManyLoader(Loader).getRow(ResultSet, Loadable[], EntityKey[], Object, EntityKey, LockMode[], List, SessionImplementor) line: 1271	
	OneToManyLoader(Loader).getRowFromResultSet(ResultSet, SessionImplementor, QueryParameters, LockMode[], EntityKey, List, EntityKey[], boolean) line: 619	
	OneToManyLoader(Loader).doQuery(SessionImplementor, QueryParameters, boolean) line: 745	
	OneToManyLoader(Loader).doQueryAndInitializeNonLazyCollections(SessionImplementor, QueryParameters, boolean) line: 270	
	OneToManyLoader(Loader).loadCollection(SessionImplementor, Serializable, Type) line: 2082	
	OneToManyLoader(CollectionLoader).initialize(Serializable, SessionImplementor) line: 62	
	OneToManyPersister(AbstractCollectionPersister).initialize(Serializable, SessionImplementor) line: 628	
	DefaultInitializeCollectionEventListener.onInitializeCollection(InitializeCollectionEvent) line: 83	
	SessionImpl.initializeCollection(PersistentCollection, boolean) line: 1853	
	PersistentSet(AbstractPersistentCollection).forceInitialization() line: 479	
	StatefulPersistenceContext.initializeNonLazyCollections() line: 899	
	QueryLoader(Loader).doQueryAndInitializeNonLazyCollections(SessionImplementor, QueryParameters, boolean) line: 275	
	QueryLoader(Loader).doList(SessionImplementor, QueryParameters) line: 2449	
	QueryLoader(Loader).listIgnoreQueryCache(SessionImplementor, QueryParameters) line: 2192	
	QueryLoader(Loader).list(SessionImplementor, QueryParameters, Set, Type[]) line: 2187	
	QueryLoader.list(SessionImplementor, QueryParameters) line: 452	
	QueryTranslatorImpl.list(SessionImplementor, QueryParameters) line: 363	
	HQLQueryPlan.performList(QueryParameters, SessionImplementor) line: 196	
	SessionImpl.list(String, QueryParameters) line: 1258	
	QueryImpl.list() line: 102	
	QueryImpl<X>.getSingleResult() line: 269	
	Event.findEventByUniqueIdForStudy_aroundBody10(String, Study, JoinPoint) line: 177	
	Event.findEventByUniqueIdForStudy(String, Study) line: 1	
	EventEntryConverter.convert(Object, ConversionContext) line: 26	
	Importer.importBaseXmlFragment(Object, String) line: 67	
	Importer.importBaseXml(Object, String) line: 40	
	Importer.importBaseXml(InputStream, String) line: 32	
	Importer.importBaseXml(String, String) line: 24	
	ImportTest.testImportData() line: 33	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
	Method.invoke(Object, Object...) line: 597	
	FrameworkMethod$1.runReflectiveCall() line: 44	
	FrameworkMethod$1(ReflectiveCallable).run() line: 15	
	FrameworkMethod.invokeExplosively(Object, Object...) line: 41	
	InvokeMethod.evaluate() line: 20	
	RunBeforeTestMethodCallbacks.evaluate() line: 74	
	RunAfterTestMethodCallbacks.evaluate() line: 82	
	SpringRepeat.evaluate() line: 72	
	SpringJUnit4ClassRunner.runChild(FrameworkMethod, RunNotifier) line: 240	
	SpringJUnit4ClassRunner(BlockJUnit4ClassRunner).runChild(Object, RunNotifier) line: 50	
	ParentRunner$3.run() line: 193	
	ParentRunner$1.schedule(Runnable) line: 52	
	SpringJUnit4ClassRunner(ParentRunner<T>).runChildren(RunNotifier) line: 191	
	ParentRunner<T>.access$000(ParentRunner, RunNotifier) line: 42	
	ParentRunner$2.evaluate() line: 184	
	RunBeforeTestClassCallbacks.evaluate() line: 61	
	RunAfterTestClassCallbacks.evaluate() line: 70	
	SpringJUnit4ClassRunner(ParentRunner<T>).run(RunNotifier) line: 236	
	SpringJUnit4ClassRunner.run(RunNotifier) line: 180	
	JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution) line: 49	
	TestExecution.run(ITestReference[]) line: 38	
	RemoteTestRunner.runTests(String[], String, TestExecution) line: 467	
	RemoteTestRunner.runTests(TestExecution) line: 683	
	RemoteTestRunner.run() line: 390	
	RemoteTestRunner.main(String[]) line: 197	

  
back to springframework

(C) 1998-2017 Olaf Klischat <olaf.klischat@gmail.com>