public class MyAppModule extends AbstractModule {
@Override
protected void configure() {
bind(DataSource.class).to(MySqlDataSource.class);
bind(UserService.class).to(UserServiceImpl.class);
}
}
public class MyApp {
public static void main(String[] args) {
Injector injector = Guice.createInjector(new MyAppModule());
UserService userService = injector.getInstance(UserService.class);
userService.getUserList();
}
}
public class UserServiceImpl implements UserService {
private UserDao userDao;
@Inject
public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
}
@Override
public List<User> getUserList() {
return userDao.getUserList();
}
}
public class MyApp {
public static void main(String[] args) {
Injector injector = Guice.createInjector(new MyAppModule());
UserService userService = injector.getInstance(UserService.class);
List<User> userList = userService.getUserList();
for (User user : userList) {
System.out.println(user.getName());
}
}
}