public interface UserService {
String getUserInfo();
}
public interface UserDao {
void saveUser(String username);
}
public class UserServiceImpl implements UserService {
private UserDao userDao;
@Inject
public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
}
public String getUserInfo() {
return "User Info";
}
}
public class UserDaoImpl implements UserDao {
public void saveUser(String username) {
System.out.println("Save user: " + username);
}
}
public class AppModule extends AbstractModule {
@Override
protected void configure() {
bind(UserService.class).to(UserServiceImpl.class);
bind(UserDao.class).to(UserDaoImpl.class);
}
}
public class Main {
public static void main(String[] args) {
Injector injector = Guice.createInjector(new AppModule());
UserService userService = injector.getInstance(UserService.class);
userService.getUserInfo();
}
}