<dependency>
<groupId>com.github.racc.tscg</groupId>
<artifactId>silk</artifactId>
<version>1.0.0</version>
</dependency>
import com.github.racc.tscg.DefaultConfig;
@Singleton
public class UserServiceImpl implements UserService {
private UserDao userDao;
public UserServiceImpl(@Named("userDao") UserDao userDao) {
this.userDao = userDao;
}
public void addUser(User user) {
userDao.addUser(user);
}
}
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.github.racc.tscg.Configuration;
@Configuration
public class AppConfiguration extends AbstractModule {
@Provides
@Singleton
public UserDao provideUserDao() {
return new UserDaoImpl();
}
protected void configure() {
bind(UserService.class).to(UserServiceImpl.class);
}
}
import com.github.racc.tscg.InjectConfig;
import com.github.racc.tscg.InjectProperties;
@InjectConfig("com.example.AppConfiguration")
@InjectProperties
public class Application {
@Inject
private UserService userService;
public static void main(String[] args) {
Application application = new Application();
application.userService.addUser(new User("John Doe"));
}
}