美文网首页
spring基础(1)

spring基础(1)

作者: kevin0016 | 来源:发表于2018-06-08 18:32 被阅读24次

1、Bean的初始化和销毁

    (1)、java配置方式:使用@Bean的initMethod和destroyMethod(相当于XML配置的init-method和destory-method)

    (2)、注解方式,利用jsr250标准的@PostConstruct和@PreDestory

通过配置的方式bean的数据 通过注解的方式 配置类 主方法调用spring的容器

2、事件

    spring的事件,为bean和bean之间的消息通信提供了支持

    当一个bean处理完任务之后,希望另外一个bean知道并能够做相应的处理

    (1)、自定义事件,继承ApplicationEvent

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

    (3)、使用容器发布事件

自定义事件 定义事件监听器

        其中@EventListener注解就是监听的到之后要执行的方法,@Order注解表示多个监听器时执行的顺序

3、spring Aware

    BeanNameAware:获得到容器Bean的名称

    BeanFactoryAware:获得当前bean factory,这样可以调用容器的服务

    ApplicationContextAware:当前的application context 这样可以调用容器的服务

    MessageSourceAware:获得MessageSource,这样可以获得文本信息

    ApplicationEventPublisherAware:应用事件发布器,可以发布事件

    ResourceLoaderAware:获得资源加载器,可以获得外部资源文件

        spring Aware的目的就是为了让Bean获得spring容器的服务,因为ApplicationContext接口集成了MessageSource接口、ApplicationEventPublisher接口和ResourceLoader接口,所以Bean继承了ApplicationContextAware可以获得spring容器所有的服务,但是原则上,我们还是需要用到什么接口,就实现什么接口

4、多线程

    spring通过任务执行器(TaskExecutor)来实现多线程和并发编程,使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor,而实际开发中任务一般是非阻碍的,即异步的,所以我们要在配置类中通过@EnableAsync开启对于异步任务的支持,并通过实际执行的Bean的方法中使用@Async注解,来声明其是一个异步任务

上代码说明:

配置类 调用类 执行类

    通过@Async注解表明该方法是个异步方法,如果这个注解放在类上,则这个类中所有的方法都是异步方法

5、计划任务

配置中添加@EnableScheduling注解,表示开启计划任务

方法中添加@Scheduled注解表示这个方法是计划任务,其中fixedRate属性,表示每隔固定的事件执行,也可以用cron属性,按照制定的时间表达式执行

相关文章

网友评论

      本文标题:spring基础(1)

      本文链接:https://www.haomeiwen.com/subject/kseasftx.html