• Spring--AOP


    AOP目的:为了解耦,可以让一组类共享相同的行为。

    OOP中只能通过继承类和实现接口,来使代码的耦合度增强,且类继承只能是单继承。

    Spring支持AspectJ的注解式切面编程:

      1)使用@AspectJ声明是一个切面;

      2)使用@After、@Before、@Arround定义建言,可直接将拦截规则(切点)作为参数;

      3)其中@After、@Before、@Arround参数的拦截规则为切点,为了使切点复用,可使用@PointCut专门定义拦截规则,然后在@After、@Before、@Arround的参数中调用;

      4)其中符合条件的每一个被拦截处为连接点。

     

    Bean的Scope:

      1)Singleton:一个Spring容器中只有一个Bean的实例,此为Spring的默认配置,全容器共享一个实例

      2)Prototype:每次调用新建一个Bean的实例

      3)Request:Web项目中,给每一个http request 新建一个Bean实例

      4)Session:Web项目中,给每一个http session 新建一个Bean实例

      5)GlobalSession:给每一个portal http session 新建一个Bean实例

     

    Spring的事件:

      1)自定义事件,继承ApplicationEvent;

    public class DemoEvent extends ApplicationEvent {

    private static final long serialVersionUID = 1L;

    private String msg;

    public DemoEvent(Object source,String msg) {
    super(source);
    this.msg = msg;
    }

    public String getMsg() {
    return msg;
    }

    public void setMsg(String msg) {
    this.msg = msg;
    }


    }

      2)定义事件监听器,实现ApplicationListener;

    @Component
    public class DemoListener implements ApplicationListener<DemoEvent> {

    @Override
    public void onApplicationEvent(DemoEvent demoEvent) {
    String msg = demoEvent.getMsg();
    System.out.println("我接收到发布的消息:" + msg);
    }
    }

      3)使用容器发布事件。

    @Component
    public class DemoPublisher {

    @Autowired
    ApplicationContext applicationContext;

    public void publish(String msg){
    applicationContext.publishEvent(new DemoEvent(this,msg));
    }
    }

     

  • 相关阅读:
    HTML5+php图片自由裁剪上传功能
    一个日期时间显示框的美化风格示例
    PHP+jquery 瀑布流+LightBox图片盒子特效
    类型
    异常语句
    穷举
    练习
    累加求和
    猜拳游戏(三局两胜)
    正则表达式
  • 原文地址:https://www.cnblogs.com/fqfanqi/p/9297339.html
Copyright © 2020-2023  润新知