Skip to content

Commit

Permalink
Merge pull request #351 from fishlikewater/master
Browse files Browse the repository at this point in the history
add annotation Configuration
  • Loading branch information
hellokaton authored Sep 26, 2019
2 parents f1b7b80 + b1ad001 commit f9882be
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/main/java/com/blade/ioc/annotation/Bean.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @author <a href="mailto:biezhi.me@gmail.com" target="_blank">biezhi</a>
* @since 1.5
*/
@Target(ElementType.TYPE)
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Bean {
Expand Down
15 changes: 15 additions & 0 deletions src/main/java/com/blade/ioc/annotation/Configuration.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.blade.ioc.annotation;

import java.lang.annotation.*;

/**
* @author <a href="mailto:fishlikewater@126.com" target="_blank">zhangx</a>
* @since 2.0.15
**/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Configuration {

String name() default "";
}
2 changes: 1 addition & 1 deletion src/main/java/com/blade/mvc/http/Request.java
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ default boolean queryBoolean(@NonNull String name, Boolean defaultValue) {
default String address() {
String address = WebKit.ipAddress(this);
if (StringKit.isBlank(address) || UNKNOWN_MAGIC.equalsIgnoreCase(address)) {
address = remoteAddress().split(":")[0].substring(1);
address = remoteAddress().split(":")[0];
}
if (StringKit.isBlank(address)) {
address = "Unknown";
Expand Down
15 changes: 14 additions & 1 deletion src/main/java/com/blade/server/netty/NettyServer.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import com.blade.ioc.DynamicContext;
import com.blade.ioc.Ioc;
import com.blade.ioc.annotation.Bean;
import com.blade.ioc.annotation.Configuration;
import com.blade.ioc.annotation.Value;
import com.blade.ioc.bean.BeanDefine;
import com.blade.ioc.bean.ClassInfo;
Expand Down Expand Up @@ -70,6 +71,7 @@
import java.io.File;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
Expand Down Expand Up @@ -301,7 +303,18 @@ private void parseAndCreate(Class<?> clazz) {
Object controller = blade.getBean(clazz);
routeBuilder.addRouter(clazz, controller);
}

if (null != clazz.getAnnotation(Configuration.class) && clazz.getMethods().length > 0) {
Object config = ReflectKit.newInstance(clazz);
Arrays.stream(clazz.getMethods())
.filter(m -> m.getAnnotation(Bean.class) != null)
.forEach(n -> {
try {
blade.register(n.invoke(config));
} catch (Exception e) {
e.printStackTrace();
}
});
}
if (ReflectKit.hasInterface(clazz, WebHook.class) && null != clazz.getAnnotation(Bean.class)) {
URLPattern URLPattern = clazz.getAnnotation(URLPattern.class);
if (null == URLPattern) {
Expand Down

0 comments on commit f9882be

Please sign in to comment.