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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • qtcpsocket编程_qtcpsocket判断连接状态

    qtcpsocket编程_qtcpsocket判断连接状态QTcpSocket和QTcpServer类实现了Qt的Tcp客户端和服务器。 tcp是一个流式协议。对于应用程序来说,数据是一个很长的流,有点像一个巨大的文件。 搞成此的协议建立在面向块的tcp协议(Block-oriented)或面向行(Line-oriented)的tcp协议上。 面向块的tcp协议,数据被当作一个2进制的块来传输。没每一个块被当作一个定义了大小的,后面

    2022年9月8日
  • JavaScript清空数组的三种方法

    JavaScript清空数组的三种方法1、length用length方法可以很轻松地清空数组,代码示例:vararr=[1,2,3];console.log(arr);arr.length=0;console.log(arr);结果如下:2、splisesplice()方法向/从数组中添加/删除项目,然后返回被删除的项目vararr=[1,2,3]…

    2022年6月9日
  • 阿里云域名备案之如何填写真实性核验单

    阿里云域名备案之如何填写真实性核验单

    2021年9月23日
  • 自用知识_实用小知识

    自用知识_实用小知识1异步内部类privateHandlerhandler=newHandler(){                  @OverridepublicvoidhandleMessage(Messagemsg){                           if(msg.obj!=null&&listener!=null){

    2022年10月29日
  • 最新VMware 安装Windows10——图文操作,超详细~~~「建议收藏」

    最新VMware 安装Windows10——图文操作,超详细~~~「建议收藏」VMware安装win10系统之前一直卡在找不到映像文件和开机需要登陆密码之个步骤,后续又卡在了设置,干脆自己梳理了下具体步骤,防止再次踩坑~

    2022年6月16日
  • 数据库锁概述[通俗易懂]

    数据库锁概述[通俗易懂]行锁和表锁主要是针对锁粒度划分的,一般分为行锁、表锁、库锁行锁:访问数据库的时候,锁定整个行数据,防止并发错误。表锁:访问数据库的时候,锁定整个表数据,防止并发错误。二者的区别:表锁:开销小,加锁快,不会出现死锁;锁定粒度大,发生锁冲突概率高,并发度最低。行锁:开销大,加锁慢,会出现死锁;锁定粒度小,发生锁冲突的概率低,并发度高。乐观锁和悲观锁乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有更新这个数据,可以使用版

    2022年6月18日

发表回复

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

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