代码优化。
This commit is contained in:
@@ -24,6 +24,10 @@ package fun.asgc.neutrino.core.bean;
|
||||
import com.google.common.collect.Lists;
|
||||
import fun.asgc.neutrino.core.annotation.*;
|
||||
import fun.asgc.neutrino.core.aop.Aop;
|
||||
import fun.asgc.neutrino.core.aop.interceptor.ExceptionHandler;
|
||||
import fun.asgc.neutrino.core.aop.interceptor.Filter;
|
||||
import fun.asgc.neutrino.core.aop.interceptor.Interceptor;
|
||||
import fun.asgc.neutrino.core.aop.interceptor.ResultAdvice;
|
||||
import fun.asgc.neutrino.core.exception.BeanException;
|
||||
import fun.asgc.neutrino.core.runner.ApplicationRunner;
|
||||
import fun.asgc.neutrino.core.util.*;
|
||||
@@ -31,6 +35,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -43,6 +48,11 @@ import java.util.stream.Collectors;
|
||||
@Slf4j
|
||||
public class SimpleBeanFactory extends AbstractBeanFactory {
|
||||
|
||||
/**
|
||||
* 类集合
|
||||
*/
|
||||
private Set<Class<?>> classes = new HashSet<>();
|
||||
|
||||
public SimpleBeanFactory(String name) {
|
||||
super(name);
|
||||
}
|
||||
@@ -256,4 +266,26 @@ public class SimpleBeanFactory extends AbstractBeanFactory {
|
||||
}
|
||||
super.init();
|
||||
}
|
||||
|
||||
public void register(Set<Class<?>> classes) {
|
||||
if (CollectionUtil.isEmpty(classes)) {
|
||||
return;
|
||||
}
|
||||
this.classes.addAll(classes);
|
||||
classes.stream()
|
||||
.filter(item -> ClassUtil.isAnnotateWith(item, Component.class)
|
||||
|| Interceptor.class.isAssignableFrom(item)
|
||||
|| Filter.class.isAssignableFrom(item)
|
||||
|| ExceptionHandler.class.isAssignableFrom(item)
|
||||
|| ResultAdvice.class.isAssignableFrom(item)
|
||||
)
|
||||
.forEach(clazz -> {
|
||||
String beanName = TypeUtil.getDefaultVariableName(clazz);
|
||||
Component component = ClassUtil.getAnnotation(clazz, Component.class);
|
||||
if (null != component && StringUtil.notEmpty(component.value())) {
|
||||
beanName = component.value();
|
||||
}
|
||||
registerBean(clazz, beanName);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,11 +22,6 @@
|
||||
|
||||
package fun.asgc.neutrino.core.context;
|
||||
|
||||
import fun.asgc.neutrino.core.annotation.Component;
|
||||
import fun.asgc.neutrino.core.aop.interceptor.ExceptionHandler;
|
||||
import fun.asgc.neutrino.core.aop.interceptor.Filter;
|
||||
import fun.asgc.neutrino.core.aop.interceptor.Interceptor;
|
||||
import fun.asgc.neutrino.core.aop.interceptor.ResultAdvice;
|
||||
import fun.asgc.neutrino.core.base.GlobalConfig;
|
||||
import fun.asgc.neutrino.core.bean.BeanFactoryAware;
|
||||
import fun.asgc.neutrino.core.bean.SimpleBeanFactory;
|
||||
@@ -37,6 +32,7 @@ import lombok.experimental.Accessors;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -116,27 +112,11 @@ public class ApplicationContext implements LifeCycle {
|
||||
*/
|
||||
private void register() throws IOException, ClassNotFoundException {
|
||||
Set<Class<?>> classes = ClassUtil.scan(environment.getScanBasePackages());
|
||||
if (CollectionUtil.isEmpty(classes)) {
|
||||
return;
|
||||
}
|
||||
classes.stream()
|
||||
.filter(item -> ClassUtil.isAnnotateWith(item, Component.class)
|
||||
|| Interceptor.class.isAssignableFrom(item)
|
||||
|| Filter.class.isAssignableFrom(item)
|
||||
|| ExceptionHandler.class.isAssignableFrom(item)
|
||||
|| ResultAdvice.class.isAssignableFrom(item)
|
||||
)
|
||||
.forEach(clazz -> {
|
||||
String beanName = TypeUtil.getDefaultVariableName(clazz);
|
||||
Component component = ClassUtil.getAnnotation(clazz, Component.class);
|
||||
if (null != component && StringUtil.notEmpty(component.value())) {
|
||||
beanName = component.value();
|
||||
}
|
||||
this.applicationBeanFactory.registerBean(clazz, beanName);
|
||||
});
|
||||
if (!applicationBeanFactory.hasBean(BeanManager.class)) {
|
||||
applicationBeanFactory.registerBean(BeanManager.class);
|
||||
if (null == classes) {
|
||||
classes = new HashSet<>();
|
||||
}
|
||||
classes.add(BeanManager.class);
|
||||
applicationBeanFactory.register(classes);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -34,7 +34,7 @@ import fun.asgc.neutrino.core.launcher.NeutrinoLauncher;
|
||||
public class ProxyServer {
|
||||
|
||||
public static void main(String[] args) {
|
||||
NeutrinoLauncher.run(ProxyServer.class, args);
|
||||
NeutrinoLauncher.run(ProxyServer.class, args).sync();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user