Skip to content

Proxy bean can't get the property #33583

@huabro

Description

@huabro

I defined a bean configuration class:

@Configuration
public class CoreAppBeanConfiguration {
    @Bean
    @Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
    public CoreAppContext getCoreAppContext() {
        CoreAppContext context = new CoreAppContext();
        return context;
    }
}

Then I defined a filter to initialize the CoreAppContext:

@Provider
@Component
public class TestHandler implements ContainerRequestFilter, ContainerResponseFilter {
    @Autowired
    private CoreAppContext coreAppContext;

    @Override
    public void filter(ContainerRequestContext containerRequestContext) throws IOException {
        coreAppContext.id="1";
        coreAppContext.name="test";
        RequestContextHolder.currentRequestAttributes().setAttribute("coreAppContext", coreAppContext, RequestAttributes.SCOPE_REQUEST);
    }
}

Finally I defined a resource class to get the CoreAppContext value:

@Path("/test")
public class TestResource {

    @GET
    @Path("/get")
    public String get() {
        CoreAppContext coreAppContext= (CoreAppContext) RequestContextHolder.getRequestAttributes().getAttribute("coreAppContext", 0);
        String result = coreAppContext.getIdName();
        return result;
    }
}

As you can see in the below picture, I got the null value.
proxy_issue1
proxy_issue2
proxy_issue3

Metadata

Metadata

Assignees

No one assigned

    Labels

    for: stackoverflowA question that's better suited to stackoverflow.com

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions