Gadtry是一个java工具库集合。包含:ioc, exec(fork进程), graph(图计算)等等常用工具集,并且完全零依赖。
maven
<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'
Create Factory:
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 object
Class Inject
public class TestInject { @Autowired private TestInject test; @Autowired public TestInject(HashMap set){ System.out.println(set); } }
Throw the task to the child process
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);