增加ResourceInjected功能
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package org.redkale.test.util;
|
||||
package org.redkale.test.inject;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.annotation.*;
|
||||
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
*
|
||||
*/
|
||||
package org.redkale.test.inject;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.redkale.annotation.Resource;
|
||||
import org.redkale.annotation.ResourceInjected;
|
||||
import org.redkale.inject.ResourceFactory;
|
||||
import org.redkale.service.Service;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
*/
|
||||
public class ResourceInjectedTest {
|
||||
|
||||
public static void main(String[] args) throws Throwable {
|
||||
ResourceInjectedTest test = new ResourceInjectedTest();
|
||||
test.run();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void run() throws Exception {
|
||||
ResourceFactory factory = ResourceFactory.create();
|
||||
factory.register("res.id", "2345");
|
||||
factory.register("res.name", "my old name");
|
||||
ResourceService res = new ResourceService();
|
||||
factory.inject(res);
|
||||
factory.register("", res);
|
||||
RoomService serice = new RoomService();
|
||||
factory.inject(serice);
|
||||
Assertions.assertEquals(1, ResourceService.counter.get());
|
||||
}
|
||||
|
||||
public static class RoomService implements Service {
|
||||
|
||||
@Resource
|
||||
private ResourceService resService;
|
||||
|
||||
public void test() {
|
||||
resService.doing();
|
||||
}
|
||||
}
|
||||
|
||||
public static class ResourceService implements Service {
|
||||
|
||||
private static final AtomicInteger counter = new AtomicInteger();
|
||||
|
||||
@Resource(name = "res.id")
|
||||
private int id;
|
||||
|
||||
@Resource(name = "res.name")
|
||||
private String name;
|
||||
|
||||
@ResourceInjected
|
||||
private void onInjected(Object src, String fieldName) {
|
||||
counter.incrementAndGet();
|
||||
System.out.println("资源被注入到对象(" + src + ")的字段(" + fieldName + ")上");
|
||||
}
|
||||
|
||||
public void doing() {
|
||||
System.out.println("id = " + id + ", name = " + name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,15 +1,15 @@
|
||||
/*
|
||||
*/
|
||||
package org.redkale.test.util;
|
||||
package org.redkale.test.inject;
|
||||
|
||||
import java.util.Properties;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import org.junit.jupiter.api.*;
|
||||
import org.redkale.annotation.Resource;
|
||||
import org.redkale.annotation.ResourceListener;
|
||||
import org.redkale.inject.ResourceEvent;
|
||||
import org.redkale.inject.ResourceFactory;
|
||||
import org.redkale.util.*;
|
||||
import org.redkale.annotation.ResourceChanged;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -71,7 +71,7 @@ public class ResourceListenerTest {
|
||||
@Resource(name = "property.desc", required = false)
|
||||
private String desc;
|
||||
|
||||
@ResourceListener
|
||||
@ResourceChanged
|
||||
private void changeResource(ResourceEvent[] events) {
|
||||
for (ResourceEvent event : events) {
|
||||
counter.incrementAndGet();
|
||||
@@ -92,7 +92,7 @@ public class ResourceListenerTest {
|
||||
@Resource
|
||||
private Environment env;
|
||||
|
||||
@ResourceListener
|
||||
@ResourceChanged
|
||||
private void changeResource(ResourceEvent[] events) {
|
||||
for (ResourceEvent event : events) {
|
||||
counter.incrementAndGet();
|
||||
@@ -116,7 +116,7 @@ public class ResourceListenerTest {
|
||||
@Resource
|
||||
private Environment env;
|
||||
|
||||
@ResourceListener
|
||||
@ResourceChanged
|
||||
private void changeResource(ResourceEvent[] events) {
|
||||
for (ResourceEvent event : events) {
|
||||
counter.incrementAndGet();
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
*/
|
||||
package org.redkale.test.util;
|
||||
package org.redkale.test.inject;
|
||||
|
||||
import org.junit.jupiter.api.*;
|
||||
import org.redkale.annotation.Resource;
|
||||
@@ -3,7 +3,7 @@
|
||||
* To change this template bigint, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package org.redkale.test.util;
|
||||
package org.redkale.test.inject;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.util.Properties;
|
||||
@@ -77,7 +77,7 @@ class BService {
|
||||
|
||||
private String name = "";
|
||||
|
||||
@ResourceListener
|
||||
@ResourceChanged
|
||||
private void changeResource(ResourceEvent[] events) {
|
||||
for (ResourceEvent event : events) {
|
||||
System.out.println(getClass().getSimpleName() + " @Resource = " + event.name() + " 资源变更: newVal = " + event.newValue() + ", oldVal = " + event.oldValue());
|
||||
Reference in New Issue
Block a user