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

视频网站怎么做动图qq是用什么软件开发的

视频网站怎么做动图,qq是用什么软件开发的,外贸网站平台都有哪些 免费的,蜂箱尺寸与制作图片前言Conditional是Spring4新提供的注解#xff0c;它的作用是按照一定的条件进行判断#xff0c;满足条件给容器注册bean。Conditional的源码定义#xff1a;//此注解可以标注在类和方法上 Target({ElementType.TYPE, ElementType.METHOD}) Retention(RetentionPolicy.RUNTI…前言Conditional是Spring4新提供的注解它的作用是按照一定的条件进行判断满足条件给容器注册bean。Conditional的源码定义//此注解可以标注在类和方法上 Target({ElementType.TYPE, ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) Documented public interface Conditional {Class? extends Condition[] value(); }从代码中可以看到需要传入一个Class数组并且需要继承Condition接口类public interface Condition {boolean matches(ConditionContext var1, AnnotatedTypeMetadata var2); }Condition是个接口类需要实现matches方法返回true则注入beanfalse则不注入。举个栗子首先创建Person类Getter Setter NoArgsConstructor AllArgsConstructor Builder public class Person {private String name;private Integer age; }定义一个BeanConfig类用于配置两个Person实例并注入一个是比尔盖茨一个是林纳斯。Configuration public class BeanConfig {Bean(name bill)public Person person1(){return new Person(Bill Gates,62);}Bean(linus)public Person person2(){return new Person(Linus,48);} }接着定义一个测试类进行验证这两个Bean是否注入成功。public class ConditionalTest {AnnotationConfigApplicationContext applicationContext new AnnotationConfigApplicationContext(BeanConfig.class);Testpublic void beanTest(){MapString, Person map applicationContext.getBeansOfType(Person.class);System.out.println(map);} } 运行输出结果是这样的两个Person实例被注入进容器。2.1 条件注入bean如果想根据当前操作系统来注入Person实例windows下注入billlinux下注入linus怎么实现呢这就需要用到Conditional注解了前言中提到需要实现Condition接口并重写方法来自定义match规则。创建WindowsCondition类public class WindowsCondition implements Condition {/*** param conditionContext:判断条件能使用的上下文环境* param annotatedTypeMetadata:注解所在位置的注释信息* */Overridepublic boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {//获取ioc使用的beanFactoryConfigurableListableBeanFactory beanFactory conditionContext.getBeanFactory();//获取类加载器ClassLoader classLoader conditionContext.getClassLoader();//获取当前环境信息Environment environment conditionContext.getEnvironment();//获取bean定义的注册类BeanDefinitionRegistry registry conditionContext.getRegistry();//获得当前系统名String property environment.getProperty(os.name);//包含Windows则说明是windows系统返回trueif (property.contains(Windows)){return true;}return false;} }matches方法的两个参数的意思在注释中讲述了值得一提的是conditionContext提供了多种方法方便获取各种信息也是SpringBoot中 ConditonalOnXX注解多样扩展的基础。创建LinuxCondition类public class LinuxCondition implements Condition {Overridepublic boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {Environment environment conditionContext.getEnvironment();String property environment.getProperty(os.name);if (property.contains(Linux)){return true;}return false;} }接着就是使用这两个类了因为此注解可以标注在方法上和类上所以分开测试2.2 标注在方法上修改BeanConfigConfiguration public class BeanConfig {//只有一个类时大括号可以省略//如果WindowsCondition的实现方法返回true则注入这个bean Conditional({WindowsCondition.class})Bean(name bill)public Person person1(){return new Person(Bill Gates,62);}//如果LinuxCondition的实现方法返回true则注入这个beanConditional({LinuxCondition.class})Bean(linus)public Person person2(){return new Person(Linus,48);} }修改测试方法使其可以打印当前系统名 Testpublic void test1(){String osName applicationContext.getEnvironment().getProperty(os.name);System.out.println(当前系统为 osName);MapString, Person map applicationContext.getBeansOfType(Person.class);System.out.println(map);} 运行结果如下我是运行在windows上的所以只注入了bill嗯没毛病。接着实验linux下的情况不能运行在linux下但可以修改运行时参数修改后启动测试方法 一个方法只能注入一个bean实例所以Conditional标注在方法上只能控制一个bean实例是否注入。2.3 标注在类上一个类中可以注入很多实例Conditional标注在类上就决定了一批bean是否注入。我们试一下将BeanConfig改写修改后的BeanConfig如下如果WindowsCondition返回true则两个Person实例将被注入。(注意上一个测试将os.name改为linux这是我将把这个参数去掉)Conditional({WindowsCondition.class}) Configuration public class BeanConfig {Bean(name bill)public Person person1(){return new Person(Bill Gates,62);}Bean(linus)public Person person2(){return new Person(Linus,48);} }结果两个实例都被注入 如果将类上的WindowsCondition.class改为LinuxCondition.class结果应该可以猜到在windows环境下运行则注入的结果就是空的类中所有bean都没有注入。多个条件类前言中说Conditional注解传入的是一个Class数组存在多种条件类的情况。这种情况貌似判断难度加深了测试一波新增新的条件类实现的matches返回false这种写死返回false的方法纯属测试用没有实际意义public class ObstinateCondition implements Condition {Overridepublic boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {return false;} }BeanConfig修改一下Conditional({WindowsCondition.class,ObstinateCondition.class}) Configuration public class BeanConfig {Bean(name bill)public Person person1(){return new Person(Bill Gates,62);}Bean(linus)public Person person2(){return new Person(Linus,48);} }结果现在如果将ObstinateCondition的matches方法返回值改成true两个bean就被注入进容器结论得第一个条件类实现的方法返回true第二个返回false则结果false不注入进容器。第一个条件类实现的方法返回true第二个返回true则结果true注入进容器中。
http://www.w-s-a.com/news/336255/

相关文章:

  • 优质做网站价格设计手机商城网站建设
  • 高校网站建设制度无锡网站建设排名
  • 做网站的软件wd的叫啥无锡公司网站建设服务
  • 网站建设一般需要多久网站服务器基本要素有哪些
  • 大连开发区网站开发公司免费网站建设哪个好?
  • 关于建设门户网站的通知海曙区建设局网站
  • 韩国建设部网站温州企业网站制作
  • 苏州网站建设优化贵州网站建设lonwone
  • 网站建设与推广方案模板网站建设教程搭建浊贝湖南岚鸿给力
  • 网站建设内部下单流程图昆明网站制作公司
  • 手机网站焦点图在线外链推广
  • 做静态页面的网站中国建设银行河南省分行网站
  • 镇平县两学一做专题网站佛山家居网站全网营销
  • 做网站的需求wordpress图片怎么居中
  • 网站开发的技术流程图抖音seo排名优化软件
  • dedecms做电商网站得物app官方下载安装
  • python做网站教程微网站 举例
  • 百度喜欢什么样的网站如何引用网站上的资料做文献
  • 如何给网站添加网站地图军刀seo
  • 模板网站开发推广陈村大良网站建设
  • 建设工程网站单位名单广州微信网站建设效果
  • 网站开发选择框代码字节小程序开发教程
  • 杭州网站设计精选柚v米科技免费的简历制作
  • 网站域名 没有续费做外贸怎样上外国网站
  • 购物网站功能模块设计电子工程网站有哪些
  • 网站营销公司哪家好wordpress主题 破解主题
  • 做网站就是做服务中国效能建设网站
  • 唐河企业网站制作怎么样抖音seo排名软件哪个好
  • 做棋牌网站团队wordpress无限加载
  • 思创医惠网站建设微网站是手机网站吗