spring基础(1)

简介: 1、Bean的初始化和销毁    (1)、java配置方式:使用@Bean的initMethod和destroyMethod(相当于XML配置的init-method和destory-method)    (2)、注解方式,利用jsr250标准的@...

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属性,按照制定的时间表达式执行

相关文章
|
XML Oracle Java
Spring boot——logback 基础使用篇(一)
Spring boot——logback 基础使用
Spring boot——logback 基础使用篇(一)
|
运维 负载均衡 安全
Spring Cloud Zuul 基础搭建
通过前几篇文章的介绍,我们了解了Spring Cloud Eureka 如何搭建注册中心,Spring Cloud Ribbon 如何做负载均衡,Spring Cloud Hystrix 断路器如何保护我们的服务,以防止雪崩效应的出现,Spring Cloud Feign进行声明式服务调用都有哪些应用,相比Ribbon和Hystrix都有哪些改善。可以说,以上几个组件都是搭建一套微服务架构所必须的。通过以上思路,能够梳理出下面这种基础架构:
151 0
Spring Cloud Zuul 基础搭建
|
XML 消息中间件 开发框架
后端开发必须知道的Spring框架基础模块大全
后端开发必须知道的Spring框架基础模块大全
198 0
后端开发必须知道的Spring框架基础模块大全
|
设计模式 XML 存储
Spring 基础容器 BeanFactory
什么是BeanFactory? Spring官网对BeanFactory的解释 BeanFactory API 为Spring的IoC功能提供了底层基础。它的特定契约主要用于Spring的其他部分以及相关第三方框架其他部分的集成,它的DefaultListableBeanFactory实现是更高级别GenericApplicationContext容器的一个委托。
153 0
Spring 基础容器 BeanFactory
|
前端开发 Java Spring
Spring Mvc基础篇 (请求路径和参数绑定)详情
该篇章主要介绍SpringMvc基础学习中的 请求路径 参数绑定 详情
Spring Mvc基础篇 (请求路径和参数绑定)详情
|
存储 Java 容器
|
XML 运维 负载均衡
|
XML 缓存 Java
Spring系列二:基础篇(2)
​ 目录 IOC IOC 5.说一说什么是IOC?什么是DI? Java 是面向对象的编程语言,一个个实例对象相互合作组成了业务逻辑,原来,我们都是在代码里创建对象和对象的依赖。 所谓的IOC(控制反转):就是由容器来负责控制对象的生命周期和对象间的关系。以前是我们想要什么,就自己创建什么,现在是我们需要什么,容器就给我们送来什么。 引入IOC之前和引入IOC之后 也就是说,控制对象生命周期的不再是引用它的对象,而是容器。对具体对象,以前是它控制其它对象,现在所有对象都被容器控制,所以这就叫控制反转。 控制反转示意图 DI(依赖注入):指的是容器在实例化对象的时候把
102 0
Spring系列二:基础篇(2)
|
设计模式 前端开发 Java
Spring系列一:Spring基础篇
有人说,“Java程序员都是Spring程序员”,小叶秋不太赞成这个观点,但是这也可以看出Spring在Java世界里举足轻重的作用。今天叶秋学长带领小伙伴们一起进入Spring学习体系,还等什么快跟着叶秋学长一起内卷起来~~ 基础 1.Spring是什么?特性?有哪些模块? 2.Spring有哪些模块呢? 3.Spring有哪些常用注解呢? 4.Spring 中应用了哪些设计模式呢?
167 0
Spring系列一:Spring基础篇
|
XML 前端开发 Java
spring学习23-基础组件
spring学习23-基础组件
123 0