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

专业建设网站服务公司国外酷炫网站

专业建设网站服务公司,国外酷炫网站,wordpress 开发者模式,在网上怎么卖货Spring提供了一系列名称以Enable *开头的注释#xff0c;这些注释本质上使某些Spring管理的功能可以被激活。 这样的注释的一个很好的例子是EnableWebMvc #xff0c;它引入了在基于Spring的应用程序中支持MVC流所需的所有bean。 另一个很好的例子是EnableAsync注释#xff… Spring提供了一系列名称以Enable *开头的注释这些注释本质上使某些Spring管理的功能可以被激活。 这样的注释的一个很好的例子是EnableWebMvc 它引入了在基于Spring的应用程序中支持MVC流所需的所有bean。 另一个很好的例子是EnableAsync注释用于在基于Spring的应用程序中激活bean以支持异步功能。 我对这样的注释如何工作感到好奇并希望记录下我的理解。 支持这些注释的方式可以视为SPI的一部分因此如果将来内部实现发生更改则可能会中断。 简单的启用*注释 考虑这些自定义注释的一种方法是它们将一组新bean添加到Spring的应用程序上下文中。 让我们首先定义一个这样的自定义注释 Retention(RetentionPolicy.RUNTIME) Target(ElementType.TYPE) interface EnableSomeBeans {} 并将此注释应用于Spring Configuration类 Configuration EnableSomeBeans public static class SpringConfig {} 因此现在在应用此批注时引入一组bean就像添加通过Import批注以这种方式引入的bean组一样简单 Retention(RetentionPolicy.RUNTIME) Target(ElementType.TYPE) Import(SomeBeanConfiguration.class) interface EnableSomeBeans {} 本质上就是这样如果此导入的Configuration类定义了任何bean则它们现在将成为Application上下文的一部分 Configuration class SomeBeanConfiguration {Beanpublic String aBean1() {return aBean1;}Beanpublic String aBean2() {return aBean2;} } 这是一个具有工作样本的要点 。 使用选择器启用*注释 启用注释可能要复杂得多它们可以根据周围的上下文来激活不同的Bean系列。 这样的注释的一个示例是EnableCaching 它基于类路径中可用的不同缓存实现来激活配置。 与之前的简单示例相比编写此类Enable *注释要花费更多的精力。 与之前一样从一个自定义注释开始 Retention(RetentionPolicy.RUNTIME) Target(ElementType.TYPE) Import(SomeBeanConfigurationSelector.class) public interface EnableSomeBeansSelector {String criteria() default default; } 请注意在这种情况下自定义注释具有一个称为标准的示例字段我要做的是根据此标准激活两组不同的bean。 这可以通过使用Configuration选择器来实现该选择器可以根据上下文返回不同的Configuration文件在此示例中criteria字段的值。 该选择器具有一个简单的签名这是一个示例实现 import org.springframework.context.annotation.ImportSelector; import org.springframework.core.annotation.AnnotationAttributes; import org.springframework.core.type.AnnotationMetadata;public class SomeBeanConfigurationSelector implements ImportSelector {Overridepublic String[] selectImports(AnnotationMetadata importingClassMetadata) {AnnotationAttributes attributes AnnotationAttributes.fromMap(importingClassMetadata.getAnnotationAttributes (EnableSomeBeansSelector.class.getName(), false));String criteria attributes.getString(criteria);if (criteria.equals(default)) {return new String[]{enableannot.selector.SomeBeanConfigurationDefault};}else {return new String[]{enableannot.selector.SomeBeanConfigurationType1};}} }Configuration class SomeBeanConfigurationType1 {Beanpublic String aBean() {return Type1;}}Configuration class SomeBeanConfigurationDefault {Beanpublic String aBean() {return Default;}} 因此如果条件字段为“默认”则添加“ SomeBeanConfigurationDefault”中的bean否则添加“ SomeBeanConfigurationType1”中的bean 这是一个具有工作样本的要点 。 结论 我希望这能对Spring如何在内部实现 Enable *注释有所了解作为应用程序开发人员您可能不需要自己创建此类注释一种更简单的机制是使用Configuration类和Spring Bean配置文件来组成应用程序。 翻译自: https://www.javacodegeeks.com/2015/04/spring-enable-annotation-writing-a-custom-enable-annotation.html
http://www.zqtcl.cn/news/249105/

相关文章:

  • 珠海网站建设 金蝶天元建设集团有限公司李华
  • 海安市建设局网站成都官网seo技术
  • 网站建设策划书结束语wordpress付费版
  • 进口网站建设做网站用什么格式的图片
  • 青海省住房和城乡建设部网站进入网站空间
  • 做公司简介的开源网站企业seo多少费用
  • 学校网站建设工作方案昆明做网站词排名优化
  • 镇江企业做网站针对人群不同,网站做细分
  • 个人单页网站建设台州网站建设惠店
  • 专做婚礼logo的网站做搜狗pc网站快速排
  • 北京网站建设公司分享网站改版注意事项做网站需要多大空间
  • 主机网站建设制作天津西青区天气预报
  • 网站没有内容可以备案吗横向网站源码
  • 做的网站浏览器提示不安全站优化
  • dede移动端网站源码电子商务网站建设开题报告
  • 做网站价格多少优质做网站哪家好
  • 网站建设及推广服务的合同范本留言网站建设的报告
  • 工程师招聘网站做网站需要公司资质吗
  • 苏州模板网站建站开网店如何运营和推广
  • 换空间网站备案北京网页设计平台
  • 德德模板网站建设步骤可信的品牌网站建设
  • 网站权重0免费好用的ip代理
  • 赣州建设网站公司敬请期待英文怎么写
  • 可以做多边形背景的网站深圳网站建设 套餐
  • 建设工程的招标网站有哪些长江证券官方网站下载
  • 鹤壁网站建设智能网站建设步骤
  • 建设工程规划许可证在哪个网站查询手机免费推广软件
  • 微信上的网站怎么做的吗网页设计结果分析怎么写
  • 网站电子备案哪个网站做网销更好
  • 做电子商务网站需要什么软件西北舜天建设有限公司网站