public class AopManager extends Object
| 限定符和类型 | 方法和说明 |
|---|---|
<T> void |
addMapping(Class<T> from,
Class<? extends T> to)
添加父类到子类的映射,或者接口到实现类的映射。
|
<T> void |
addMapping(Class<T> from,
String to)
功能与 addMapping(Class
|
void |
addSingletonObject(Class<?> type,
Object singletonObject)
添加单例对象
由于 Aop 创建对象时不支持为构造方法传递参数,故添加此方法
示例:
// Service 类的构造方法中传入了两个参数
Service service = new Service(paraAaa, paraBbb);
AopManager.me().addSingletonObject(Service.class, service);
// 上面代码添加完成以后,可以在任何地方通过下面的方式获取单例对象
service = Aop.get(Service.class);
// 被添加进去的对象还可以用于注入
|
void |
addSingletonObject(Object singletonObject) |
AopFactory |
getAopFactory() |
boolean |
isInjectDependency() |
boolean |
isInjectSuperClass() |
boolean |
isSingleton() |
static AopManager |
me() |
void |
setAopFactory(AopFactory aopFactory)
设置 AopFactory,便于扩展自己的 AopFactory 实现
|
void |
setInjectDependency(boolean injectDependency)
设置对 Controller、Interceptor、Validator 进行依赖注入,默认值为 false
被注入对象默认为 singleton,可以通过 AopManager.me().setSingleton(boolean) 配置
该默认值。
|
void |
setInjectSuperClass(boolean injectSuperClass)
设置是否对超类进行注入
|
void |
setSingleton(boolean singleton)
设置被注入的对象是否为单例,可在目标类上使用 @Singleton(boolean) 覆盖此默认值
|
public static AopManager me()
public void setInjectDependency(boolean injectDependency)
public boolean isInjectDependency()
public void setInjectSuperClass(boolean injectSuperClass)
public boolean isInjectSuperClass()
public void addSingletonObject(Class<?> type, Object singletonObject)
示例: // Service 类的构造方法中传入了两个参数 Service service = new Service(paraAaa, paraBbb); AopManager.me().addSingletonObject(Service.class, service); // 上面代码添加完成以后,可以在任何地方通过下面的方式获取单例对象 service = Aop.get(Service.class); // 被添加进去的对象还可以用于注入
public void addSingletonObject(Object singletonObject)
public <T> void addMapping(Class<T> from, Class<? extends T> to)
示例:
// 定义接口
public interface IService {
public void justDoIt();
}
// 定义接口的实现类
public class MyService implements IService {
public void justDoIt() {
...
}
}
// 添加接口与实现类的映射关系
AopManager.me().addMapping(IService.class, MyService.class)
public class MyController {
// 由于前面添加了接口与实现类的关系,所以下面将被注入实现类 MyService 对象from - 父类或者接口to - 父类的子类或者接口的实现类public <T> void addMapping(Class<T> from, String to)
示例:
AopManager.me().addMapping(IService.class, "com.xxx.MyService")
以上代码的参数 "com.xxx.MyService" 可通过外部配置文件传入,便于通过配置文件切换接口的
实现类:
AopManager.me().addMapping(IService.class, PropKit.get("ServiceImpl"));
public void setAopFactory(AopFactory aopFactory)
public AopFactory getAopFactory()
public void setSingleton(boolean singleton)
public boolean isSingleton()
Copyright © 2022. All rights reserved.