AOP与IOC的冲突/aop无法注入

问题描述

AOP与IOC的冲突/aop无法注入
项目架构同时搭建spring 和 spring mvc
在分库架构体系下我打算用aop来实现分库的实现流程,
我在spring xml里扫描了service,在mvc xml里扫描了controller
于是在mvc里配置aop 切面aspect可以设定service为切入目标
但是在spring里配置aop 切面aspect既不能设定service也不能设置controller为切入点
注:使用了@controller @service注解

问题在于,无论我是在mvc里切入service,还是在spring里切入dao,程序能够正常启动但是无法正常切入,打印切面的代码。配置文件可以识别切面的目标

不知道是配置文件的错误还是jar包冲突导致的

```

/context:component-scan

    <aop:aspectj-autoproxy proxy-target-class=""true""/><bean id=""logAspect"" class=""com.gm.spring.aop.log.LogAspect"" /><bean class=""org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator"" />
```@Component@Aspectpublic class LogAspect {    //Logger logger = Logger.getLogger(gm_log.class);    //String logStr = null;    @Before(""execution(* com.core.user.service..*(..))"")    public void doBefore(JoinPoint jp){/*      logStr = jp.getTarget().getClass().getName() + ""类的""                 + jp.getSignature().getName() + ""方法开始执行  ****Start****"";        logger.info(logStr);*/        System.out.println(""执行执行执行执行执行执行执行执行执行执行"");    }    }
@Transactionalpublic class sysMenuService {    @Autowired    private sysMenuMapper mapper;    public List<sysMenu> getMenu(){        return mapper.getMenu();    }

解决方案

IOC AOP
AOP IOC
IOC与AOP

解决方案二:

附上一张jar包图,不知道是不是有jar包冲突造成的

时间: 2024-08-30 14:36:35

AOP与IOC的冲突/aop无法注入的相关文章

【SSH系列】深入浅出spring IOC中三种依赖注入方式

spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入什么?控制什么?依赖注入和控制反转是一样的概念吗?接触新的知识,小编的脑袋中全是大大的问号,不过没有关系,今天这篇博文,小编主要来简单的介绍一下在spring IOC中依赖注入的方法. 依赖注入和控制反转,目的是为了使类与类之间解耦合,提高系统的可扩展性和可维护性.我们可以从以下几个方面理解: a.参与者都

AOP解析:含简单AOP框架实现(包括Proxy模式实现与Attribute实现)

AOP简介: AOP(Aspect Oriented Programming)"面向切面编程",其实和OOP(Object Oriented Programming)"面向对象编程"一样是一种编程思路,而且个人以为翻译为"切面导向编程 "更为妥当,OOP也应翻译为"对象导向编程".因为正是有了"切面"和"对象"的想法和 概念才产生了"Aspect Oriented Progra

AOP 你想干什么 IOC 你服务什么

前言: 记得N年前,就听过AOP,曾扫过几篇文章,不过看不懂,还是N年前,面试被问到AOP的切面,还是不懂! 中秋之假,有点闲,在博客园里搜了下AOP看了看,试图看懂些许文章,可惜文章都说的太中规中矩,没发现一篇能浅显看的易懂的.   AOP,全称Aspect Oriented Programming,中文名称叫面向方面编程,也叫面向切面编程.   AOP,你出来的意图? 借用一图: 不就为解耦,分离出权限/操作日志/异常/事务等模块出来?   这里贴一段我项目中的代码,最常见的修改密码:   

依赖注入(DI)有助于应用对象之间的解耦,而面向切面编程(AOP)有助于横切关注点与所影响的对象之间的解耦(转good)

依赖注入(DI)有助于应用对象之间的解耦,而面向切面编程(AOP)有助于横切关注点与所影响的对象之间的解耦.所谓横切关注点,即影响应用多处的功能,这些功能各个应用模块都需要,但又不是其主要关注点,常见的横切关注点有日志.事务和安全等. 将横切关注点抽离形成独立的类,即形成了切面.切面主要由切点和通知构成,通知定义了切面是什么,以及何时执行何种操作:切点定义了在何处执行通知定义的操作. http://ju.outofmemory.cn/entry/216839 引子: AOP(面向方面编程:Asp

Java Spring的IoC和AOP的知识点速记

Spring简介 Spring解决的最核心的问题就是把对象之间的依赖关系转为用配置文件来管理,这个是通过Spring的依赖注入机制实现的. Spring Bean装配 1. IOC的概念以及在Spring容器中如何进行IOC的操作. IOC:Inversion of Control,控制反转.在Java开发中,IOC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制,这称为控制反转,就是被调用类的实例由原先的调用类控制创建.销毁现在转变成由Spring的容器管理. 2. Spring容器

IoC+AOP的简单实现

对EnterLib有所了解的人应该知道,其中有一个名叫Policy Injection的AOP框架:而整个EnterLib完全建立在另一个叫作Unity的底层框架之上,我们可以将Unity看成是一个IoC的框架.对于一个企业应用来说说,AOP和IoC是我们进行逻辑分离和降低耦合度最主要的方式,而将两者结合起来具有重要的现实意义. 一.基于IoC+AOP的编程 到底将IoC和AOP进行整合后,会对编程但来怎样的影响,我写了一个简单的例子(你可以从这里下载该实例).假设我现在有两个模块,分别称为Fo

AOP之PostSharp7-解决IOC 不能直接new问题,简化IOC开发和IOC对象LazyLoad

    经过几节的postsharp基础和每节的一个应用实例,已经基本PostSharp应用的能力,PostSharp主要是简化我们的开发,让编译器时候给我注入重复疲劳代码.      在今天我们的demo是,关于ioc(控制反转)的问题,ioc框架我们都会从ioc容器中取得我们的ioc对象注入,所以我们不能直接new对象得到我们的实例,必须Resolve.我一直都是很懒得人,既然有了PostSharp就的好好利用起来.大部份ioc逻辑是从以前的一篇利用Attribute简化Unity框架IOC

一起谈.NET技术,IoC+AOP的简单实现

对EnterLib有所了解的人应该知道,其中有一个名叫Policy Injection的AOP框架:而整个EnterLib完全建立在另一个叫作Unity的底层框架之上,我们可以将Unity看成是一个IoC的框架.对于一个企业应用来说说,AOP和IoC是我们进行逻辑分离和降低耦合度最主要的方式,而将两者结合起来具有重要的现实意义. 一.基于IoC+AOP的编程 到底将IoC和AOP进行整合后,会对编程但来怎样的影响,我写了一个简单的例子(你可以从这里下载该实例).假设我现在有两个模块,分别称为Fo

C#及.NET中从控制反转(依赖注入)想到事件注入 (非AOP)

概要 所谓事件注入是我一时兴起随便杜撰的词,其思想借鉴依赖注入.当然看到这个词很多同学会想到AOP,这里先不置可否. 依赖注入(Dependency Injection),是这样一个过程:由于某客户类只依赖于服务类的一个接口,而不依赖于具体服务类,所以客户类只定义一个注入点.在程序运行过程中,客户类不直接实例化具体服务类实例,而是客户类的运行上下文环境或专门组件负责实例化服务类,然后将其注入到客户类中,保证客户类的正常运行. 也就是说依赖注入在我们的项目场景中充当一个解耦的角色.在项目结构中它可