IOC与AOP

  • 这两个功能基本是不分家,如果没有IOC或者变相的IOC就不会有AOP,所以就放在一起讲了
  • 使用方法相信大家都不陌生

IOC使用方法

在类上面加上MarsBean注解,即可将该类注册成一个bean,在需要注入该bean对象的字段上 加上MarsWrite注解即可注入,如下图:

  1. @MarsBean("testService")
  2. public class TestService {
  3. @MarsWrite("testDao")
  4. private TestDao testDao;
  5. }

可以不写括号和括号里的内容,默认为 该类的名称首字母小写,默认为字段名称。

AOP使用方法

创建一个类,并实现BaseAop接口,如下图所示

  1. public class TestAop implements BaseAop {
  2. /**
  3. * 方法开始前
  4. * @param objects 被监听的方法的参数
  5. */
  6. public void startMethod(Object[] objects) {
  7. System.out.println(objects);
  8. }
  9. /**
  10. * 方法开始后
  11. * @param objects 被监听的方法的参数
  12. * @param result 被监听的方法的返回数据
  13. */
  14. public void endMethod(Object[] objects, Object result) {
  15. System.out.println(objects);
  16. }
  17. /**
  18. * 方法出异常
  19. */
  20. public void exp(Throwable e) {
  21. System.out.println("出异常了"+e);
  22. }
  23. }

在需要监听的方法上加上MarsAop注解,如下图所示

  1. @MarsAop(className = TestAop.class)
  2. public List<Map> selectList(){
  3. return testDao.selectList();
  4. }