Gadtry是一个java工具库集合。包含:ioc, exec(fork进程),graph(图计算)等等常用工具集,并且完全零依赖。
Usemaven
<dependency> <groupId>com.github.harbby</groupId> <artifactId>gadtry</artifactId> <version>1.1.0</version></dependency>gradle
compile group: 'com.github.harbby', name: 'gadtry', version: '1.0.0'IocCreateFactory:
IocFactory iocFactory = IocFactory.create(binder -> { binder.bind(Set.class).by(HashSet.class).withSingle(); binder.bind(HashSet.class).withSingle(); binder.bind(List.class).byCreator(ArrayList::new); //Single object binder.bind(Object.class, new Object()); binder.bind(Map.class).byCreator(HashMap::new).withSingle(); //Single object binder.bind(TestInject.class);});Set a1 = iocFactory.getInstance(Set.class);Set a2 = iocFactory.getInstance(Set.class);Assert.assertEquals(true, a1 == a2); // Single objectClassInject
public class TestInject{ @Autowired private TestInject test; @Autowired public TestInject(HashMap set){ System.out.println(set); }}ExecNewJvmThrowthetasktothechildprocess
JVMLauncher launcher = JVMLaunchers.newJvm() .setCallable(() -> { // this is child process System.out.println("************ runing your task ***************"); return 1; }) .addUserjars(Collections.emptyList()) .setXms("16m") .setXmx("16m") .setConsole((msg) -> System.out.println(msg)) .build();VmFuture out = launcher.startAndGet();Assert.assertEquals(out.get().get().intValue(), 1);
评论