I'm using Google Guice for dependency injection in my application. I have a 
class structure like this,

Example is taken from here 
<http://www.journaldev.com/2403/google-guice-dependency-injection-example-tutorial>


This is my interface,

package com.journaldev.di.services;
@ImplementedBy(EmailService.class)public interface MessageService {

    boolean sendMessage(String msg, String receipient);}

Which I will implement here

package com.journaldev.di.services;
import javax.inject.Singleton;
//import com.google.inject.Singleton;
@Singletonpublic class EmailService implements MessageService {

    public boolean sendMessage(String msg, String receipient) {
        //some fancy code to send email
        System.out.println("Email Message sent to "+receipient+" with 
message="+msg);
        return true;
    }}

If I inject EmailService here.

package com.journaldev.di.consumer;
import javax.inject.Inject;
import com.journaldev.di.services.MessageService;
public class MyApplication {

    private MessageService service;

    @Inject
    public void setService(MessageService svc){
        this.service=svc;
    }

    public boolean sendMessage(String msg, String rec){
        //some business logic here
        return service.sendMessage(msg, rec);
    }}

If suppose my EmailService class looked like this,

package com.journaldev.di.services;
import javax.inject.Singleton;
//import com.google.inject.Singleton;
@Singletonpublic class EmailService implements MessageService {
    public EmailService(int someValue) {
         FancyEmailService fancyEmailService = new FancyEmailService(someValue);
    }
    public boolean sendMessage(String msg, String receipient) {
        fancyEmailService.doSomething();
        System.out.println("Email Message sent to "+receipient+" with 
message="+msg);
        return true;
    }}

In order to test the above EmailService code, I need to inject 
FancyEmailService than instantiating from the constructor. How do I inject 
FancyEmailService into EmailService code? and still be able to inject 
EmailService into MyApplication.

I posted the same question in Stackoverflow could not find any answers. 

-- 
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/241faaeb-f5a5-4b93-930c-db977a929899%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to