springboot实战第三章

springboot实战第三章

springboot第三章小计

本章是spring的高级话题,涉及到内部和原理,但是例子比较简单。

1.spring aware

Spring依赖注入的最大亮点是所有的Bean对Spring容器的存在是没有意识的,可以将容器换成别的容器,但在实际项目中,不可避免用到Spring容器本身的功能资源,这时Bean必须意识到Spring容器的存在,才能调用Spring所提供的资源,这就是所谓的Spring Aware
一旦使用了它,Bean将会和Spring框架耦合。
spring提供了很多aware接口
* BeanNameAware
* BeanFactoryAware
* ApplicationContextAware 可以获得spring容器的所有服务
* MessageSourceAware
* ApplicationEventPublisherAware
* ResourceLoaderAware

2.spring多线程

Spring通过任务执行器(TaskExecutor)来实现多线程和并发编程。
配置类中,通过@EnableAsync 开启异步任务支持,
配置异步,通过实现AsyncConfigurer接口并重写getAsyncExecutor方法,并返回ThreadPoolTaskExecutor,这样就获得了一个基于线程池的TaskExecutor,在方法上@Async表明是个异步方法

3.计划任务

通过@Scheduled支持多种类型的计划任务,包括cron,fixDelay,fixRate等。
通过@EnableScheduling开启对计划任务的支持

4.条件注解@Conditional

Conditional 注解根据满足某一个特定条件创建一个特定的bean。

5.组合注解和元注解

6.enable*注解

开启一项功能的支持,避免自己配置大量的代码

7.测试

Spring通过Spring TestContext Framework对集成测试提供顶级支持。
Spring提供了一个SpringJUnit4ClassRunner类。
通过@ContextConfiguration来配置ApplicationContext,通过@ActiveProfiles确定活动的Profile
注意:在Maven中增加Spring测试的依赖包注意版本号,本次示例代码中spring-test版本原本为2.2.4,后来报错某个方法找不到,换了4.1.6的版本就可以了。

这部分的代码在:https://gitee.com/yuanhan93/learn_spring4 

找到ch3目录,就是本期内容

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100315.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c# Response.ContentType类型汇总

    c# Response.ContentType类型汇总 application/activemessageapplication/andrew-insetapplication/applefileapplication/atomicmailapplication/dca-rftapplication/dec-dxapplication/mac-binhex40hqxapplication/mac-compactprocptapplication/

    2022年7月19日
    32
  • CriticalSection_alternative question是什么意思

    CriticalSection_alternative question是什么意思线程锁,即在多线程中可以控制线程的执行顺序,防止使用中全局变量在两个线程中同时使用,变量发生改变的错误。示例:https://blog.csdn.net/ninedays/article/details/5381123线程锁的概念函数EnterCriticalSection和LeaveCriticalSection的用法注:使用结构CRITICAL_SECTION需加入头文件#in…

    2026年2月5日
    5
  • 用户日志管理「建议收藏」

    用户日志管理「建议收藏」摘要本发明涉及应用系统日志管理技术领域,提供了一种日志管理方法和系统,所述方法包括如下步骤:S1:初始化系统业务功能列表和业务功能方法列表;S2:将业务操作中的具体操作信息与系统日志表和历史数据日志表直接相关联;S4:根据业务操作自动记录日志信息。本发明从整体考虑整个应用系统的日志信息与业务操作挂接,用户在运行时可以根据当前的需要,选择某业务操作是否需要记录日志,并且在业务操作界面能即时将相关的日…

    2022年5月2日
    69
  • Git 工具 – 高级合并「建议收藏」

    高级合并在Git中合并是相当容易的。因为Git使多次合并另一个分支变得很容易,这意味着你可以有一个始终保持最新的长期分支,经常解决小的冲突,比在一系列提交后解决一个巨大的冲突要好。然而,有时也会有棘手的冲突。不像其他的版本控制系统,Git并不会尝试过于聪明的合并冲突解决方案。Git的哲学是聪明地决定无歧义的合并方案,但是如果有冲突,它不会尝试智能地自动解决它。因此,如果很久之后才合并两个分叉的分支,你可能会撞上一些问题。在本节中,我们将会仔细查看那些问题是什么以及Git

    2022年4月6日
    75
  • 将数据归一化到任意区间范围的方法

    将数据归一化到任意区间范围的方法将数据归一化到任意区间范围的方法一般常见的数据归一化,是归一化到0~1,或者-1~1的区间,但在一些特殊场合下,我们需要根据实际情况归一化到其他任意区间,方法是:将数据归一化到[a,b]区间范围的方法:(1)首先找到样本数据Y的最小值Min及最大值Max(2)计算系数为:k=(b-a)/(Max-Min)(3)得到归一化到[a,b]区间的数据:norY=a+k(Y-Min)Matla

    2022年6月23日
    150
  • Java 8系列之Stream的基本语法详解

    Java 8系列之Stream的基本语法详解本文转至:https://blog.csdn.net/io_field/article/details/54971761概述Stream是用函数式编程方式在集合类上进行复杂操作的工具,其集成了J

    2022年8月6日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号