代码优化。

This commit is contained in:
aoshiguchen
2022-07-07 14:07:35 +08:00
parent 0671cb5e59
commit d9f68be1f2
3 changed files with 38 additions and 26 deletions
@@ -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();
}
}