春天aopframework实现
- 包 cn.itcast.day3.aopframework;
 - 进口 java.io.IOException的;
 - 进口 的java.io.InputStream;
 - 进口 java.util.Properties;
 - 进口 cn.itcast.day3.Advice;
 - 公共 类 的BeanFactory {
 - 属性道具= 新 特性();
 - 公共 Bean工厂(IPS的InputStream){
 - 尝试 {
 - props.load(IPS);
 - } 赶上 (IOException异常E){
 - e.printStackTrace();
 - }
 - }
 - 公共 对象的getBean(字符串名称){
 - 弦乐的className = props.getProperty(名称);
 - 对象豆= 空;
 - 尝试 {
 - clazz类=的Class.forName(类名);
 - 豆= clazz.newInstance();
 - } 赶上 (例外五){
 - e.printStackTrace();
 - }
 - 如果(豆 的instanceof 的ProxyFactoryBean){
 - 对象代理= 空;
 - ProxyFactoryBean中的ProxyFactoryBean =(ProxyFactoryBean里)豆;
 - 尝试 {
 - 意见建议=(咨询)的Class.forName(props.getProperty(姓名+ “.advice” ))的newInstance()。
 - 对象目标=的Class.forName(props.getProperty(名称+ “的.target” ))的newInstance()。
 - proxyFactoryBean.setAdvice(咨询);
 - proxyFactoryBean.setTarget(目标);
 - 代理= proxyFactoryBean.getProxy();
 - } 赶上 (例外五){
 - e.printStackTrace();
 - }
 - 返回 代理;
 - }
 - 返回 豆;
 - }
 - }
 - 包 cn.itcast.day3.aopframework;
 - 进口 的java.io.InputStream;
 - 进口 java.util.Collection的;
 - 公共 类 AopFrameworkTest {
 - / **
 - * @参数的args
 - * /
 - 公共 静态 无效 的主要(字串[]
args) 抛出 异常{ - // TODO自动生成方法存根
 - InputStream的IPS = AopFrameworkTest。类.getResourceAsStream(“config.properties” );
 - 对象豆= 新 的BeanFactory(IPS).getBean(“XXX” );
 - 的System.out.println(bean.getClass()的getName());
 - ((集合)豆).clear();
 - }
 - }
 - 包 cn.itcast.day3.aopframework;
 - 进口 java.lang.reflect.InvocationHandler;
 - 进口 java.lang.reflect.Method中;
 - 进口 java.lang.reflect.Proxy;
 - 进口 cn.itcast.day3.Advice;
 - 公共 类 的ProxyFactoryBean {
 - 私人 咨询建议;
 - 私人 对象的目标;
 - 公众 咨询getAdvice(){
 - 返回 意见;
 - }
 - 公共 无效 setAdvice(咨询意见){
 - 这.advice =意见;
 - }
 - 公共 对象了getTarget(){
 - 返回 的目标;
 - }
 - 公共 无效 setTarget(目标对象){
 - 这.TARGET =目标;
 - }
 - 公共 对象的getProxy(){
 - // TODO自动生成方法存根
 - 反对Proxy3服务器= Proxy.newProxyInstance(
 - target.getClass()。getClassLoader(),
 - / *新的Class [] {} Collection.class,* /
 - target.getClass()。getInterfaces(),
 - 新 的InvocationHandler(){
 - 公共 对象调用(对象代理,方法的方法,对象[]参数)
 - 抛出 的Throwable
 - / *长BEGINTIME = System.currentTimeMillis的();
 - 对象retVal的= method.invoke(目标参数);
 - 长endTime的= System.currentTimeMillis的();
 - 的System.out.println(method.getName()+“运行时间”+(endTime的 - BEGINTIME));
 - 返回retVal的; * /
 - advice.beforeMethod(法);
 - 对象retVal的= method.invoke(目标参数);
 - advice.afterMethod(法);
 - 返回 retVal的;
 - }
 - }
 - );
 - 返回 Proxy3发出;
 - }
 - }
 - config.properties
 - #XXX =的java.util.ArrayList
 - XXX = cn.itcast.day3.aopframework.ProxyFactoryBean
 - xxx.advice = cn.itcast.day3.MyAdvice
 - xxx.target =的java.util.ArrayList
 
春天aopframework实现的更多相关文章
- 剁手党也有春天 -- 淘宝 UWP ”比较“功能诞生记
		
前言 网购已经不再是现在的时髦,而变成了我们每天的日常生活.上网已经和买买买紧密地联系在了一起,成为了我们的人生信条.而逛街一词,越来越多地变成了一种情怀.有时候我们去逛街,要么是为了打发时间,要么是 ...
 - web前端的春天 or 噩梦
		
「 微信应用号可以做什么」 简单说,微信"小程序"可以为开发者提供基于微信的表单.导航.地图.媒体和位置等开发组件,让他们在微信的网页里构建一个 HTML 5 应用.同时微信还开放 ...
 - TODO:小程序的春天你想做什么
		
TODO:小程序的春天你想做什么 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 初步了解小程序的特点 导航明确,来去自如 统一稳定, 视觉规范 ...
 - python opencv 利用Lab空间把春天的场景改为秋天
		
前一段时间实现了Reinhard颜色迁移算法,感觉挺有意思的,然后在代码上随意做了一些更改,有了一些发现,把Lab通道的a通道值改为127左右,可以将绿色改为黄色,而对其他颜色的改动非常小,因此可以将 ...
 - 企业SAAS的春天,将以手机应用的形式,即将到来
		
派尔科技吴春福 *本文是派尔为什么要投身企业移动应用的内部分享文章: *我没有仔细核查资料,仅代表个人看法,思路也是在整理过程,逻辑未必很完整,看官将就着看. 企业SAAS,概念起源是N年前,先行者也 ...
 - 8年,属于 HTML 5 春天的到来悄悄!
		
[核心提示] 在 8 年时间中,HTML 5 为整个行业都带来了什么.标准终于确定后又会产生什么样的变革呢? 微博微信Twitter对于非常多人来说,非常有可能在微信的朋友圈里玩过「围住神经猫」,也非 ...
 - 《如莲春天》Java开发框架
		
关于 如莲者,净洁如莲之意,希望打造一个简洁的系统框架.系统主要采用Spring相关技术,故取名:如莲春天. 如莲春天,包括一套系统界面.一个权限管理系统.一个CURD代码生成模块.一些基础模块 ...
 - 春天的事务之9.3编程式事务 - 跟我学spring3
		
9.3编程式事务 9.3.1编程式事务概述 所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理. Spring框架提供一致的事务抽象,因此对于JDBC还是JTA事务都是采用相同 ...
 - 春天JDBC事务管理
		
JDBC事务管理 春天提供编程式的事务管理(编程式事务管理)与声明式的事务管理(声明式事务management),为不同的事务实现提供了一致的编程模型,这节以JDBC事务为例,介绍Spring的事务管 ...
 
随机推荐
- SpringMVC系列之(一) 入门实例
			
Spring MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了.Spring MVC结构简单,应了那句话简单就是美,而且他强大不失灵活,性能也 ...
 - Oracle采购模块中的多组织访问控制(MOAC)
			
 1. 概述 从Release12开始启用多组织访问控制功能,将允许用户在一个单独的职责中访问一个或者多个经营单位(OU-Operation Units)的数据.这个功能允许用户在一个可共享服务的 ...
 - android sdutio常用快捷键
			
快捷键 说明 F2 定位到高亮错误或警告的位置 F4 若选中项目,打开 Project Struture F5 复制文件 Alt+F3 选中文本,逐个往下查找相同文本,并高亮显示 Alt+F1 可以将 ...
 - Activity, Service,Task, Process and Thread之间的关系
			
Activity, Service,Task, Process and Thread之间到底是什么关系呢? 首先我们来看下Task的定义,Google是这样定义Task的:a task is what ...
 - git常用技巧
			
一般的过程: ①如果还没有库先用 git clone 克隆一个库. ②使用 git checkout master切换到master分支. ③使用 git pull 同步远程master分支(即git ...
 - Ajax分页 Spring MVC + Hibernate
			
效果图: 1. 添加公共类.方法.代码 1. 分页类:Page.java package cn.com.aperfect.sso.base.dao; import java.util.Arra ...
 - Oracle中job的实例
			
一.Oracle定时器(Job)各时间段写法汇总 对于DBA来说,数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等 ...
 - SpringMVC提供两种校验机制
			
本文不讲如何使用SpringMVC提供的两种校验机制,只是简单的说明一下其中的差别而已: 1.创建一个Bean,在Bean的属性中添加校验信息,通过配置LocalValidatorFactoryBea ...
 - 【Android 应用开发】Android - 按钮组件详解
			
总结了Android中常用的按钮用法 示例源码下载地址 : -- CSDN : http://download.csdn.net/detail/han1202012/6852091 -- GitHu ...
 - iOS中关于UIApplication的详细介绍
			
UIApplication 什么是UIApplication? UIApplication对象是应用程序的象征.每一个应用都有自己的UIApplication对象,这个对象是系统自动帮我们创建的, 它 ...