Inject Spring beans into RestEasy
Asked Answered
P

4

7

Is it possible to inject Spring beans into an RestEasy @Path class? I managed to do it with Jersey, with @InjectParam annotation, but for some other reasons, I need to switch to RestEasy, and I can't seem to find a way to do it (tried good ol' javax.inject.Inject, but nothing).

EDIT

This solution works: http://www.mkyong.com/webservices/jax-rs/resteasy-spring-integration-example/

but it's not injection.. I'd still prefer something a little more elegant.

Pycnometer answered 25/1, 2012 at 20:18 Comment(0)
R
2

Simply annotate your RestEasy class with Spring's @Component and then inject your beans using Spring's @Autowired. Don't forget to include the annotation-config and component-scan elements in your spring configuration.

Renaldo answered 25/2, 2012 at 16:50 Comment(1)
Tried with 3.0.4.Final, following ResteasyDoc it simply does not work. Using SpringBeanAutowiringSupport was the only way I could make it work.Valerie
H
2

There is a working example that integrates RestEasy with Spring just try spring-resteasy.

Hardison answered 5/11, 2013 at 10:41 Comment(0)
C
0

You could use the @Configurable annotation to make a normal class (created by new) a spring Bean. Then you can use the normal Spring annotation to inject everything in that class/instance like in a "normal" Spring Bean.

But that requires AspectJ!

@See Spring Reference Chapter 7.8.1 Using AspectJ to dependency inject domain objects with Spring

Commonable answered 25/1, 2012 at 20:38 Comment(0)
J
0

I totally agree with Peter's answer but there is another way to do it: you make all your exposition beans (RESTEasy or JAX-WS, which are not Spring components) extending the SpringBeanAutowiringSupport.

That way you can easily inject your Spring Services by @Autowired annotation in these classes.

Jugate answered 25/11, 2012 at 10:25 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.