Tag: aop

从ProceedingJoinPoint获取java.lang.reflect.Method?

问题是简短的:有没有办法从apsectj ProceedingJoinPoint获取Method对象? 目前我在做 Class[] parameterTypes = new Class[joinPoint.getArgs().length]; Object[] args = joinPoint.getArgs(); for(int i=0; i<args.length; i++) { if(args[i] != null) { parameterTypes[i] = args[i].getClass(); } else { parameterTypes[i] = null; } } String methodName = joinPoint.getSignature().getName(); Method method = joinPoint.getSignature() .getDeclaringType().getMethod(methodName, parameterTypes); 但我不认为这是要走的路

是否有任何有关ASP.NET MVC控制器操作设置的AJAX属性?

我想在ASP.NET MVC中使用AJAX调用的部分视图,这是我第一次使用它。 我刚刚search了一下,是否有什么特别的东西我应该事先知道,而我很好奇的其中一个,是看有没有什么特别的属性需要设置或者与AJAX调用有关? 像[ChildActionOnly]或[HttpGet]

面向方面的编程实例

任何人都可以发表一个面向方面编程(AOP), 不logging的例子吗? 我已经看了几个资源,但所有的例子都是微不足道的日志logging。 有什么用?

如何在C#中创build一个简单的dynamic代理

我想要构build一个dynamic的代理对象来为某个对象添加某些function。 基本上我想接收一个对象,用一个看起来与我原来相同的对象包装它,并拦截所有的调用。 class Wrapper : DynamicProxy// dynamic proxy is not a reall class, but i guess something like this exists… { public static T Wrap(T obj) { return (T) new Wrapper(obj); } public override object InterceptCall(MethodInfo info, object[] args) { // do stuff } } 只是为了澄清,我想做一些类似于WCF频道工厂… 我添加一个赏金,因为我需要一个很好的方法来代理类(而不是接口),并处理非虚拟方法(就像我inheritance和添加一个方法在“新”关键字下)。 我确信这一切都是非常可能的。

什么是可能的AOP用例?

我想了解一下在应用程序devise中有效参与AOP的可能情况。 我到目前为止所见到的是: 日志相关 安全检查 交易pipe理 调整遗留的应用程序 还要别的吗? (它不一定是Spring的基于代理的AOP – 而是JBoss AOP。) ( 相关问题 )

告诉IntelliJ IDEA哪些方法不被识别为未使用

IntelliJ IDEA有一个方便的function来检测未使用的方法,并以灰色显示它们,暗示潜在的死代码警告。 然而,有些方法不是直接执行,而是通过reflection。 一个很好的例子是由Spring执行的@RequestMapping -annotated方法。 IntelliJ有良好的弹簧集成,因此它检测到这个注释,并没有标记这样的方法未使用。 我有一个微小的AJAX框架,我使用自己的注释指向哪个方法执行基于特定的HTTP请求属性(非常类似于@RequestMapping正在做什么)。 可以理解的是,IntelliJ不知道我的注释是什么,并且标记为未使用的方法,增加了不必要的噪音。 我在想: 注释我的注释与另一个注释,但是有没有任何标准的会做这项工作,没有任何额外的努力? 在IntelliJ中find一个特定的设置来标识所使用的标记方法的自定义注释,但是这需要其他团队成员执行相同的操作,基本上是一个痛苦。 任何人都可以提出任何想法如何解决这个问题?

Java面向方面编程与注释

在一篇题为“AOP基础”的文章中 ,我要求国王的英文解释AOP是什么,它做了什么。 我收到了一些非常有帮助的答案,并链接了那些帮助我理解所有理论的文章。 但是现在AOP得到了我的全部关注,所有这些文章和章节摘录都是非常棒的,但是在任何情况下,它们都是由崇高的理论,模糊的UML模型和抽象的顺序组成的。 这里是我对AOP理论的理解,只是为了澄清,所以如果你看到一些看起来不对的东西,让我知道! 日志logging,身份validation,同步,validation,exception处理等交叉问题在非AOP系统中变得高度耦合,因为它们几乎被代码库中的每个组件/模块普遍使用。 AOP定义了使用连接点 , build议和切入点来抽象这些横切关注点的 方面 (类/方法)。 一个。 build议 – 实际的代码(一个方面的方法,也许?)实现交叉的关注(即做实际的日志logging,validation,authentication等) 湾 join点 ( Join Point) – 在非AOP代码中触发的事件,它导致特定方面的build议被执行(“编织”为非AOP代码) C。 切入点 – 实质上是连接点(触发事件)到build议执行的映射 所有方面都被模块化(LoggingAspect,AuthenticationAspect,ValidationAspect等)成组件并注册一个AspectWeaver 。 当非AOP / POJO代码遇到连接点时,AspectWeaver围绕非AOP代码“编织”(集成)映射build议: 公共类LoggingAspect { // … 公共无效的日志(string味精){…} } 公共类ExceptionHandlingAspect { // … public void handle(Exception exc){…} } 公共类NonAOPCode { // … @LoggingAspect @ExceptionHandlingAspect public void foo() […]

Google Guice与JSR-299 CDI / Weld

Weld,JSR-299上下文和dependency injection参考实现,认为自己是Spring和Guice的inheritance者。 CDI受到许多现有Java框架的影响,包括Seam,Guice和Spring。 然而,CDI具有自己独特的特征:比Seam更安全,比Spring更具有状态和更less的以XML为中心,比Guice更具networking和企业应用能力。 但是,如果没有上述框架的启发和JSR-299专家组(EG)的大量合作和辛勤工作,这些都不会有任何启发。 http://docs.jboss.org/weld/reference/latest/en-US/html/1.html 与Guice相比,什么让Weld更适合企业应用? 与Guice相比,有没有什么优缺点? 与Weld拦截器相比,您如何看待Guice AOP? 性能呢? 我的select 最后,我决定使用Guice,因为我喜欢干净的编程模型,默认情况下,除了@Inject之外几乎没有注释。 使用Guice的外部库比使用CDI容易得多。 Guice的AOP也很简单。

Spring AOP:JoinPoint和PointCut有什么区别?

我正在学习面向方面的编程概念和Spring AOP。 我不明白一个切入点和一个连接点的区别 – 他们两个对我来说似乎都是一样的。 切入点是你应用你的build议的地方,一个连接点也是我们可以应用我们的build议的地方,那么有什么区别? 一个切入点的例子可以是: @Pointcut("execution(* * getName()") 什么可以是一个Joinpoint的例子?

不使用存储库模式,使用ORM原样(EF)

我总是使用Repository模式,但对于我最近的项目,我想看看能否完善它的使用和“工作单元”的实现。 我开始挖掘越多,就开始问自己这个问题: “我真的需要它吗? 现在,这一切都从Stackoverflow上的一些评论开始,在他的博客上跟踪Ayende Rahien的post,其中有2个具体的, 存储库是最新单 问-ayende生活,而无需储存库,是-他们价值-生活 这可能会被永远讨论,并取决于不同的应用。 我想知道什么, 这种方法是否适合entity framework项目? 使用这种方法是业务逻辑仍然在一个服务层,或扩展方法(如下所述,我知道,扩展方法是使用NHib会话)? 这很容易使用扩展方法完成。 干净,简单,可重复使用。 public static IEnumerable GetAll( this ISession instance, Expression<Func<T, bool>> where) where T : class { return instance.QueryOver().Where(where).List(); } 使用这种方法和Ninject作为DI,我需要使Context成为一个接口,并在我的控制器注入?