I think you problem is that you are mixing spring an guice (in an inappropriate way).

I reproduced your above example (by the way, can you tell me from which library you use Worker and WorkerRepository?).

The code is missing the binding for the worker. I added it.

Next problem is the @Autowire. This is a spring annotation and Guice will not react to it. If you replace it with @Inject the sample code is working as expected. (By the way I would recommend to favor constructor injection over field injection).

If this does not help. I would suggest you create a minimal reproducible case and publish it on a github repo so we can fiddle around with it.



On 23.04.2017 11:04, pradrone dev wrote:

Guice module integration issue with REST I have define one AOP guice based module, but when I tried to integrate with REST code, methodInvocation.proceed retun null. What might be best way to solve this issue.

Define AOP Guice based module as below

@Retention <https://github.com/Retention>(RetentionPolicy.RUNTIME)
@Target <https://github.com/Target>(ElementType.METHOD)
@interface <https://github.com/interface> NotOnWeekends {}
public class WeekendBlocker implements MethodInterceptor {

public Object invoke(MethodInvocation invocation) throws Throwable {

|Calendar today = new GregorianCalendar(); if (today.getDisplayName(DAY_OF_WEEK, LONG, ENGLISH).startsWith("S")) { throw new IllegalStateException( invocation.getMethod().getName() + " not allowed on weekends!"); } return invocation.proceed(); |

}

}

public class NotOnWeekendsModule extends AbstractModule {
protected void configure() {

|bindInterceptor(Matchers.any(), Matchers.annotatedWith(NotOnWeekends.class), new WeekendBlocker()); |

}
}

But I tried to Integrate this with my REST API

|public class WorkerBean implements Worker { @Autowired private WorkerRepository workerRepository; @Override @NotOnWeekends public Collection<Worker> findAll() { Collection<Worker> workers = workerRepository.findAll(); return workers; } |

@RestController <https://github.com/RestController>
public class WorkerController {

|@RequestMapping( value = "/api/workers", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<Collection<Worker>> getWorkers() { Worker worker = Guice.createInjector(new NotOnWeekendsModule()).getInstance(Worker.class); Collection<Worker> worker = worker.findAll(); // return null .... }|
--
You received this message because you are subscribed to the Google Groups "google-guice" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[email protected]>.
Visit this group at https://groups.google.com/group/google-guice.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-guice/cb641bf9-7ada-4021-aa73-20cfe1e15787%40googlegroups.com <https://groups.google.com/d/msgid/google-guice/cb641bf9-7ada-4021-aa73-20cfe1e15787%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-guice.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-guice/33550657-d897-01db-58c2-e9d99c50b8b2%40gmx.ch.
For more options, visit https://groups.google.com/d/optout.

Reply via email to