- guice是google的一个轻量级的DI框架,下面上代码。
- 首先是几个接口
public interface UserService {
void process();
}
public interface LogService {
void log(String msg);
}
public interface Application {
void work();
}
public class UserServiceImpl implements UserService{
public void process() {
System.out.println("do some service...");
}
}
public class LogServiceImpl implements LogService{
public void log(String msg) {
System.out.println("log----" + msg);
}
}
public class MyApp implements Application {
@Inject
private UserService userService;
@Inject
private LogService logService;
public void work() {
userService.process();
logService.log("server is running...");
}
}
public class MyAppModule extends AbstractModule {
@Override
protected void configure() {
bind(LogService.class).to(LogServiceImpl.class);
bind(UserService.class).to(UserServiceImpl.class);
bind(Application.class).to(MyApp.class);
}
}
public class MyAppTest extends TestCase {
private static Injector injector;
@BeforeClass
protected void setUp() {
injector = Guice.createInjector(new MyAppModule());
}
@Test
public void testMyApp() {
MyApp app = injector.getInstance(MyApp.class);
app.work();
}
}
do some service...
log----server is running...