当前位置: 首页 > news >正文

个人备案网站做什么黔西南做网站的有几家

个人备案网站做什么,黔西南做网站的有几家,深圳跨境电商公司排行榜,3d房屋建筑设计软件Spring​ 有很多 Enable 开头的注解,平时在使用的时候也没有注意过为什么会有这些注解 Enable 注解 首先我们先看一下有哪些常用的 Enable 开头的注解,以及都是干什么用的。 EnableRetry​:开启Spring 的重试功能; EnableSch…

Spring​ 有很多 @Enable 开头的注解,平时在使用的时候也没有注意过为什么会有这些注解

@Enable 注解

首先我们先看一下有哪些常用的 @Enable 开头的注解,以及都是干什么用的。

    @EnableRetry​:开启Spring 的重试功能;
    @EnableScheduling​:开启Spring 的定时功能;
    @EnableAsync​:开启Spring 的异步功能;
    @EnableAutoConfiguration​:开启Spring 的自动装配功能;

    @EnableTransactionManagement:开启Spring的事务管理功能

那么我们首先指出一般呢我们这个前缀位Enable的注解是使用在神魔上边的?

我感觉应该是配置类上边的不知道

以Spring​ 重试为例,我们需要在启动类上面配置 @EnableRetry​ ,否则自动重试注解 @Retryable​ 是不会生效的  那么问题来了只能加enable**吗?

不是,还可以加上@Import 注解

那有的小伙伴就要问了,这个 @EnableRetry 注解到底有什么作用呢?不用这个注解就没办法了吗?

我们先来看看这个注解的源码

可以看到源码很简单,其中最有用的就一行 @Import(RetryConfiguration.class)​ ,我们可以尝试把这一行代码放到启动类上面看看效果,可以看到项目可以正常启动,并且也还是有效果的,说明跟我们的 @EnableRetry 注解是一样的。

        从上面的实验效果我们可以看到 @EnableRetry​ 注解其实就是对 @Import(RetryConfiguration.class)​ 的一个封装,同样的通过源码我们还可以看到 @EnableScheduling​ 注解就是对 @Import({SchedulingConfiguration.class}) 的一个封装。

         那如果在没有 @Enablexxx​ 注解的时候,我们直接通过 @Import​ 注解是可以这样写的,在一个 @Import​ 注解里面包含多个配置类,不过这种在配置类较多的场景下还是相对不够简洁的,因而才有了各自功能对应的 @Enable 注解。

       那么很多的小伙伴又要问了,为啥要通过使用 @Import​ 注解将配置类加载进来呢?在项目中的 Spring​ 上下文中不是能直接获取到吗?为此我们来实验一下,通过下面的代码我们看下是否能在 Spring​ 的容器中获取到 RetryConfiguration​ 的 Bean

       

package com.example.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Import;
import org.springframework.retry.annotation.RetryConfiguration;
import org.springframework.scheduling.annotation.SchedulingConfiguration;@SpringBootApplication
@ComponentScan(value = "com.example.demo.*")
//@Import({RetryConfiguration.class, SchedulingConfiguration.class})
public class DemoApplication {public static void main(String[] args) {ConfigurableApplicationContext applicationContext = SpringApplication.run(DemoApplication.class, args);Object bean = applicationContext.getBean("org.springframework.retry.annotation.RetryConfiguration");System.out.println(bean.toString());}
}

启动过后我们可以看到结果提示我们在容器中找不到这个 bean​,有点小伙伴会说是不是 bean 的名字写错了,其实并不是,紧接着我们再把注释的那一行放开再运行一下。

可以看到,这次我们成功的获取到了这个 Bean​,这个实验就是告诉我们,其实在默认情况下,Spring​ 的容器中是找不到RetryConfiguration​ 这个 Bean​ 的,因此我们需要通过使用  @Import 注解,将该类加载到容器中。

那么为什么在容器中找不到这个 Bean 呢?

其实很简单,因为这个 Bean​ 跟我们当前环境的类是不是同一个包里面的,在项目启动的过程中并不会扫描到 RetryConfiguration  类所在的包,因此找不到是很正常的。

总结

上面通过 @EnableRetry​ 这个注解带大家了解了一下 Spring​ 的 @Enable​ 开头的注解的使用原理,相信大家对这些注解有了更深入的了解。简单来说就是因为我们要使用的很多类并不在我们项目所在的包下面,我们不能将所有的依赖包都进行扫描,也不不方便将所有的配置类都通过 @Import​ 的方式进行导入,而是让每个功能的项目包都提供一个 @Enable 开头的注解,我们直接启用注解就可以达到效果。

这种方式我们在平时的开发中也可以自己实现,实现一个自己的 @Enable 开头的注解来实现特定的功能。


问题:enable一般用在什么上边呢?配置类?

http://www.yayakq.cn/news/500939/

相关文章:

  • 成都市网站建设公司it前端和后端的区别
  • 深圳网站建设服务电话视频特效制作软件
  • 免费查企业最好的网站中国高铁哪家公司建设
  • 湖州哪里做网站网站常见问题是什么
  • 莱州网站开发宣传片影视拍摄公司
  • 公司要建立网站要怎么做网站开发好难呀
  • 南京城乡住房建设厅网站可以做ppt的网站有哪些方面
  • 服务号微网站怎么做的网站维护一般都是维护什么
  • 站长必备网站专业做家具的网站
  • 五核网站建设海口发布公众号
  • 一个网站两个域名吗纯jsp做的留言板网站
  • 网站空间怎么建站重庆商务网站建设
  • 沈阳网站提升排名零售网站制作
  • 传统pc网站免费直播软件下载
  • 企业网站空间备案吗网站标题关键词堆砌
  • 厦门模板做网站wordpress 相关插件
  • 做分色找工作网站深圳推广
  • 深圳市住房和建设局网站怎么打不开了wordpress 公告栏
  • 做斗图的网站做网站要用到的技术
  • 网站内链建设和外链的推广什么是优化产业结构
  • 网站开发实习总结广告设计公司需要哪些设备
  • 网站开发招标方案范本同城新闻app有哪些
  • 西安商城网站开发南昌it培训机构
  • 青岛定制网站建设12306网站是是阿里巴巴做的吗
  • 做推广赚钱的网站有哪些东莞微网站建设报价
  • 国外优秀建筑设计网站wordpress5分钟安装
  • html5 开发网站网络推广方案的制定流程
  • 郑州网站制作网如何提升网站的流量
  • google网站增加关键词长沙景点大全 长沙景点排名
  • 网站公司网站定制网站内的链接怎么做