Return-Path: X-Original-To: apmail-struts-issues-archive@minotaur.apache.org Delivered-To: apmail-struts-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2D0B411D41 for ; Wed, 6 Aug 2014 18:22:15 +0000 (UTC) Received: (qmail 18138 invoked by uid 500); 6 Aug 2014 18:22:14 -0000 Delivered-To: apmail-struts-issues-archive@struts.apache.org Received: (qmail 18112 invoked by uid 500); 6 Aug 2014 18:22:14 -0000 Mailing-List: contact issues-help@struts.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@struts.apache.org Delivered-To: mailing list issues@struts.apache.org Received: (qmail 18099 invoked by uid 99); 6 Aug 2014 18:22:14 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Aug 2014 18:22:14 +0000 Date: Wed, 6 Aug 2014 18:22:14 +0000 (UTC) From: "Lukasz Lenart (JIRA)" To: issues@struts.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Resolved] (WW-4110) struts2+spring intergration,when user aop, maybe inject fail MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/WW-4110?page=3Dcom.atlassian.j= ira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart resolved WW-4110. ------------------------------- Resolution: Fixed Assignee: Lukasz Lenart Dedicated flag added, docs updated! Thanks for the patch! https://cwiki.apache.org/confluence/display/WW/Spring+Plugin > struts2+spring intergration,when user aop, maybe inject fail > ------------------------------------------------------------ > > Key: WW-4110 > URL: https://issues.apache.org/jira/browse/WW-4110 > Project: Struts 2 > Issue Type: Improvement > Components: Plugin - Spring > Affects Versions: 2.3.1.1 > Reporter: zhangkaitao > Assignee: Lukasz Lenart > Fix For: 2.3.18 > > Attachments: test.rar > > > 1. > {code:java} > @Autowired > private Resource resource; //no setter > {code} > {code:xml} > > {code} > 2. use aop, for example > {code:xml} > > > > > > {code} > 3. StrutsSpringObject > {code:java} > bean =3D autoWiringFactory.autowire(clazz, AutowireCapableBeanFactory.AUT= OWIRE_CONSTRUCTOR, false); > bean =3D autoWiringFactory.applyBeanPostProcessorsBeforeInitialization(be= an, bean.getClass().getName()); > // We don't need to call the init-method since one won't be registered. > bean =3D autoWiringFactory.applyBeanPostProcessorsAfterInitialization(bea= n, bean.getClass().getName()); //generate proxy > return autoWireBean(bean, autoWiringFactory); //inject error because pro= xy > {code} > spring`s processing flow : > (org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac= tory)=EF=BC=9A > # InstantiationAwareBeanPostProcessor.applyBeanPostProcessorsBeforeInstan= tiation > # InstantiationAwareBeanPostProcessor.applyBeanPostProcessorsAfterInitial= ization > # doCreateBean > ## createBeanInstance > ## populateBean > ### InstantiationAwareBeanPostProcessor.postProcessAfterInstantiation > ### autowire=EF=BC=8C for example AUTOWIRE_BY_NAME=EF=BC=8CAUTOWIRE_BY_TY= PE > ### InstantiationAwareBeanPostProcessor.postProcessPropertyValues > ### applyPropertyValues > # initializeBean > ## invokeAwareMethods > ## BeanPostProcessor.postProcessBeforeInitialization > ## invokeInitMethods > ## BeanPostProcessor.postProcessAfterInitialization > # solution > {code:java} > bean =3D autoWiringFactory.createBean(clazz, AutowireCapableBeanFactory.A= UTOWIRE_CONSTRUCTOR, false); > bean =3D autoWireBean(bean, autoWiringFactory); > bean =3D autoWiringFactory.initializeBean(bean, bean.getClass().getName()= ); > {code} > please delete src/main/java patch > com.opensymphony.xwork2.spring.SpringObjectFactory > test, will see resource is null=EF=BC=9B > but use this patch will be not null -- This message was sent by Atlassian JIRA (v6.2#6252)