flying中的AOP和IOC


注入属性:
private synchronized void injectReferenceServices() {
if(this.injectReferenceServicesInitialized) return;
PropertyDescriptor[] pds = PropertyUtils.getPropertyDescriptors(this.serviceClass);
if(pds == null) return;
for(PropertyDescriptor pd: pds) {
Class<?> type = pd.getPropertyType();
if(type == null) continue;
if(type.getName().startsWith("java") || type.getName().startsWith("org")) continue;
if(module.getModuleConfig().getServiceConfigs().containsKey(type.getName())) {
try {
pd.getWriteMethod().invoke(this.serviceObject, new Object[]{module.getService(type)});
logger.debug(this.serviceClass.getName()+" injectReferenceService ‘"+pd.getName()+"’success!");
} catch (Exception e) {
logger.error(this.serviceClass.getName()+" injectReferenceService ‘"+pd.getName()+"’失败,可能导致部分功能无法正常使用!", e);
}
}
}
this.injectReferenceServicesInitialized = true;
}
服务调用拦截:
public Object intercept(Object service, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {
。。。。。。。。。。。
//
if(!injectReferenceServicesInitialized) {
this.injectReferenceServices();
}
。。。。。。。
}
如似乎,一个不太完美的IOC实现了。
flying中的AOP和IOC的更多相关文章
- 浅谈Java中的AOP面向切面的变成和控制反转IOC
https://blog.csdn.net/hi_kevin/article/details/7325554 https://www.cnblogs.com/zedosu/p/6632260.html ...
- .Net中的AOP读书笔记系列之AOP介绍
返回<.Net中的AOP>系列学习总目录 本篇目录 AOP是什么? Hello,World! 小结 本系列的源码本人已托管于Coding上:点击查看,想要注册Coding的可以点击该连接注 ...
- .Net中的AOP系列之《单元测试切面》
返回<.Net中的AOP>系列学习总目录 本篇目录 使用NUnit编写测试 编写和运行NUnit测试 切面的测试策略 Castle DynamicProxy测试 测试一个拦截器 注入依赖 ...
- .Net中的AOP系列之《拦截位置》
返回<.Net中的AOP>系列学习总目录 本篇目录 位置拦截 .Net中的字段和属性 PostSharp位置拦截 真实案例--懒加载 .Net中的懒加载 使用AOP实现懒加载 如何懒加载字 ...
- .Net中的AOP系列之《间接调用——拦截方法》
返回<.Net中的AOP>系列学习总目录 本篇目录 方法拦截 PostSharp方法拦截 Castle DynamicProxy方法拦截 现实案例--数据事务 现实案例--线程 .Net线 ...
- AOP和IOC的作用
IOC:控制反转,是一种设计模式.一层含义是控制权的转移:由传统的在程序中控制依赖转移到由容器来控制:第二层是依赖注入:将相互依赖的对象分离,在spring配置文件中描述他们的依赖关系.他们的依赖关系 ...
- Spring学习笔记(二)Spring基础AOP、IOC
Spring AOP 1. 代理模式 1.1. 静态代理 程序中经常需要为某些动作或事件作下记录,以便在事后检测或作为排错的依据,先看一个简单的例子: import java.util.logging ...
- Net中的AOP
.Net中的AOP系列之<单元测试切面> 返回<.Net中的AOP>系列学习总目录 本篇目录 使用NUnit编写测试 编写和运行NUnit测试 切面的测试策略 Castle ...
- AOP和IOC理解
在百度上看到一篇很有意思的文章,是对AOP的一种解释,如下:(摘自:百度文库的 AOP和IOC最容易理解的说明(Spring知识小计)): IOC,依赖倒置的意思, 所谓依赖,从程序的角度看,就是比如 ...
随机推荐
- 【转】Mac端包管理工具——Homebrew简介及安装
Homebrew官网 http://brew.sh/index_zh-cn.html Homebrew是神马 linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案, ...
- MDK C++中对内联的极度优化
先来看看我们SmartIRQ的具体实现 // 智能IRQ,初始化时备份,销毁时还原 class SmartIRQ { public: force_inline SmartIRQ(bool enable ...
- 腾讯windows系统服务器
今天用腾讯的服务器搭建起了自己的博客,先看主页效果...简单的ui设计,主要就是要上服务器看看. 说说服务器的搭建: 1.卖,进腾讯云,自己对应的买操作系统的就可以的啦.具体的链接: https ...
- 开源API测试工具 Hitchhiker v0.8 - 自动化测试结果统计
Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持自动化测试, 数据对比,压力测试,支持脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试Api. ...
- 使用js对form表单base64加密
利用js可以对前台数据加密,以防止被恶意获取,以下代码,用base64对数据进行加密,可以在后台进行解密. 引入的js <script type="text/javascript&qu ...
- python 浅析IO 模型
协程:遇到IO操作就切换,但是什么时候切回去呢?怎么确定IO操作? 很多程序员可能会考虑使用"线程池"或"连接池"."线程池"旨在减少创建和 ...
- Google学术搜索镜像网站搜集
Google学术搜索镜像网站: http://scholar.glgoo.com/ https://xie.lu/ https://g.wen.lu/ http://www.gfsoso.com/sc ...
- Java面向对象接口的应用实例练习
interface USB { public void open(); public void close(); } class Upan implements USB { public void o ...
- HDU2289-Cup-二分
Cup Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- BZOJ 3195: [Jxoi2012]奇怪的道路(状压dp)
f[i][j][s]表示当前处理第i个点,前i-1个点已连j条边,第i个点开始k个点的奇偶性状态. #include<cstring>#include<algorithm>#i ...