spring基础(1)

1、Bean的初始化和销毁

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

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

img_4b5edfd1c889626b14425c2d0e9f6243.png
通过配置的方式bean的数据
img_b4c192d9e604df8126f8aeb1bf4165c5.png
通过注解的方式
img_03c47c7b9d9b73d0e02ec6419ebb1f17.png
配置类
img_0820e360844cd9e2f30ff33e50d6c4f4.png
主方法调用spring的容器
2、事件

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

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

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

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

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

img_e875d2e0f3efe3c9ad102a66395fe29c.png
自定义事件
img_5795dddabd20b8c8efd69a6228802169.png
定义事件监听器

        其中@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注解,来声明其是一个异步任务

上代码说明:

img_51fcb54e27b258c2a310b34ef3a17a7d.png
配置类
img_d571926878d621d7efe28031580fb93b.png
调用类
img_47ffb3e87ec515346273aa6d8fd879a9.png
执行类

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

5、计划任务

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值