SSM 使用AOP注解方式,没有生效

 

首先是确认使用的AOP的代码没有错,然后在你的扫描xml里加上:

<aop:aspectj-autoproxy proxy-target-class="true"/>

因为很多项目都只配置了扫描service,controller这些,所以很容易漏掉开启扫描AOP的配置。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,这个问题需要对SSM整合以及注解有一定的了解。首先,SSM整合指的是Spring、SpringMVC、MyBatis三个框架的整合,而多对多查询是指在数据库中,两个表之间存在多对多的关系,需要通过中间表来进行查询。 使用注解方式实现多对多查询,可以通过在Mapper接口中定义方法,并使用注解来配置SQL语句。 首先,在多对多关系中,需要定义一个中间表来存储两个表之间的关系。假设我们有两个表:`student`和`course`,它们之间的关系是多对多,那么我们需要定义一个中间表`student_course`,它的结构可能是这样的: ```mysql CREATE TABLE student_course ( id INT(11) NOT NULL AUTO_INCREMENT, student_id INT(11) NOT NULL, course_id INT(11) NOT NULL, PRIMARY KEY (id), KEY student_id (student_id), KEY course_id (course_id), CONSTRAINT fk_student_course_student FOREIGN KEY (student_id) REFERENCES student (id), CONSTRAINT fk_student_course_course FOREIGN KEY (course_id) REFERENCES course (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ``` 然后,在MyBatis的Mapper接口中定义方法,使用注解来配置SQL语句: ```java public interface StudentMapper { // 查询某个学生所选的所有课程 @Select("SELECT c.* FROM course c JOIN student_course sc ON c.id = sc.course_id WHERE sc.student_id = #{studentId}") List<Course> selectCoursesByStudentId(Long studentId); // 查询某个课程的所有学生 @Select("SELECT s.* FROM student s JOIN student_course sc ON s.id = sc.student_id WHERE sc.course_id = #{courseId}") List<Student> selectStudentsByCourseId(Long courseId); } ``` 这样就可以使用注解方式实现多对多查询了。需要注意的是,在使用注解方式时,需要在MyBatis的配置文件中开启注解扫描: ```xml <mybatis:scan base-package="com.example.mapper"/> ``` 同时,在Spring的配置文件中也需要配置MyBatis的Mapper扫描器: ```xml <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper"/> </bean> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小目标青年

对你有帮助的话,谢谢你的打赏。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值