File tree Expand file tree Collapse file tree 8 files changed +55
-11
lines changed
02/20/注解@ConfigurationProperties使用方法 Expand file tree Collapse file tree 8 files changed +55
-11
lines changed Original file line number Diff line number Diff line change @@ -921,6 +921,7 @@ <h4 id="面试题"><a href="#面试题" class="headerlink" title="面试题"></a
921
921
< li > 相对于二叉树,层级更少,搜索效率高</ li >
922
922
< li > 对于 B-Tree,无论是叶子节点还是非叶子节点,都会保存数据,这样导致一页中存储的键值减少,指针也跟着减少,要同样保存大量数据,只能增加树的高度,导致性能降低</ li >
923
923
< li > 相对于 Hash 索引,B+Tree 支持范围匹配及排序操作</ li >
924
+ < li > 必看:< a href ="https://blog.csdn.net/qq_37102984/article/details/124296196 " target ="_blank " rel ="noopener "> https://blog.csdn.net/qq_37102984/article/details/124296196</ a > </ li >
924
925
</ ul >
925
926
< h3 id ="索引分类 "> < a href ="#索引分类 " class ="headerlink " title ="索引分类 "> </ a > 索引分类</ h3 > < table >
926
927
< thead >
Original file line number Diff line number Diff line change 7
7
error : '复制错误' ,
8
8
noSupport : '浏览器不支持'
9
9
}
10
- } </ script > </ head > < body > < canvas class ="fireworks "> </ canvas > < i class ="fa fa-arrow-right " id ="toggle-sidebar " aria-hidden ="true "> </ i > < div id ="sidebar "> < div class ="toggle-sidebar-info text-center "> < span data-toggle ="切换文章详情 "> 切换站点概览</ span > < hr > </ div > < div class ="sidebar-toc "> < div class ="sidebar-toc__title "> 目录</ div > < div class ="sidebar-toc__progress "> < span class ="progress-notice "> 你已经读了</ span > < span class ="progress-num "> 0</ span > < span class ="progress-percentage "> %</ span > < div class ="sidebar-toc__progress-bar "> </ div > </ div > < div class ="sidebar-toc__content "> < ol class ="toc "> < li class ="toc-item toc-level-2 "> < a class ="toc-link " href ="#ConfigurationProperties "> < span class ="toc-number "> 1.</ span > < span class ="toc-text "> @ConfigurationProperties</ span > </ a > </ li > < li class ="toc-item toc-level-2 "> < a class ="toc-link " href ="#作用于方法 "> < span class ="toc-number "> 2.</ span > < span class ="toc-text "> 作用于方法</ span > </ a > < ol class ="toc-child "> < li class ="toc-item toc-level-3 "> < a class ="toc-link " href ="#配置文件内容 "> < span class ="toc-number "> 2.1.</ span > < span class ="toc-text "> 配置文件内容</ span > </ a > </ li > < li class ="toc-item toc-level-3 "> < a class ="toc-link " href ="#java代码 "> < span class ="toc-number "> 2.2.</ span > < span class ="toc-text "> java代码</ span > </ a > </ li > </ ol > </ li > < li class ="toc-item toc-level-2 "> < a class ="toc-link " href ="#作用于Class类及其用法 "> < span class ="toc-number "> 3.</ span > < span class ="toc-text "> 作用于Class类及其用法</ span > </ a > < ol class ="toc-child "> < li class ="toc-item toc-level-3 "> < a class ="toc-link " href ="#配置文件内容-1 "> < span class ="toc-number "> 3.1.</ span > < span class ="toc-text "> 配置文件内容</ span > </ a > </ li > < li class ="toc-item toc-level-3 "> < a class ="toc-link " href ="#java代码-1 "> < span class ="toc-number "> 3.2.</ span > < span class ="toc-text "> java代码</ span > </ a > </ li > < li class ="toc-item toc-level-3 "> < a class ="toc-link " href ="#用法 "> < span class ="toc-number "> 3.3.</ span > < span class ="toc-text "> 用法</ span > </ a > </ li > </ ol > </ li > < li class ="toc-item toc-level-2 "> < a class ="toc-link " href ="#总结 "> < span class ="toc-number "> 4.</ span > < span class ="toc-text "> 总结</ span > </ a > </ li > </ ol > </ div > </ div > < div class ="author-info hide "> < div class ="author-info__avatar text-center "> < img src ="https://images5.alphacoders.com/423/423529.jpg "> </ div > < div class ="author-info__name text-center "> GeYu</ div > < div class ="author-info__description text-center "> Do what you want to do !</ div > < div class ="follow-button "> < a href ="https://github.com/NUISTGY "> Follow Me</ a > </ div > < hr > < div class ="author-info-articles "> < a class ="author-info-articles__archives article-meta " href ="/archives "> < span class ="pull-left "> 文章</ span > < span class ="pull-right "> 223</ span > </ a > < a class ="author-info-articles__tags article-meta " href ="/tags "> < span class ="pull-left "> 标签</ span > < span class ="pull-right "> 79</ span > </ a > < a class ="author-info-articles__categories article-meta " href ="/categories "> < span class ="pull-left "> 分类</ span > < span class ="pull-right "> 43</ span > </ a > </ div > </ div > </ div > < div id ="content-outer "> < div id ="top-container " style ="background-image: url(https://i.328888.xyz/2022/12/21/ARudF.png) "> < div id ="page-header "> < span class ="pull-left "> < a id ="site-name " href ="/ "> Yu's Blog</ a > </ span > < i class ="fa fa-bars toggle-menu pull-right " aria-hidden ="true "> </ i > < span class ="pull-right menus "> < a class ="site-page " href ="/ "> Home</ a > < a class ="site-page " href ="/archives "> Archives</ a > < a class ="site-page " href ="/tags "> Tags</ a > < a class ="site-page " href ="/categories "> Categories</ a > < a class ="site-page " href ="/about "> About</ a > </ span > </ div > < div id ="post-info "> < div id ="post-title "> Spring中@ConfigurationProperties的使用方法</ div > < div id ="post-meta "> < time class ="post-meta__date "> < i class ="fa fa-calendar " aria-hidden ="true "> </ i > 2023-02-20</ time > < span class ="post-meta__separator "> |</ span > < i class ="fa fa-inbox post-meta__icon " aria-hidden ="true "> </ i > < a class ="post-meta__categories " href ="/categories/Spring/ "> Spring</ a > < div class ="post-meta-wordcount "> < span > 字数总计: </ span > < span class ="word-count "> 944</ span > < span class ="post-meta__separator "> |</ span > < span > 阅读时长: 4 分钟</ span > </ div > </ div > </ div > </ div > < div class ="layout " id ="content-inner "> < article id ="post "> < div class ="article-container " id ="post-content "> < script src ="/assets/js/APlayer.min.js "> </ script > < h2 id ="ConfigurationProperties "> < a href ="#ConfigurationProperties " class ="headerlink " title ="@ConfigurationProperties "> </ a > @ConfigurationProperties</ h2 > < p > Spring源码中大量使用了ConfigurationProperties注解,比如< code > server.port</ code > 就是由该注解获取到的,通过与其他注解配合使用,能够实现Bean的按需配置。</ p >
10
+ } </ script > </ head > < body > < canvas class ="fireworks "> </ canvas > < i class ="fa fa-arrow-right " id ="toggle-sidebar " aria-hidden ="true "> </ i > < div id ="sidebar "> < div class ="toggle-sidebar-info text-center "> < span data-toggle ="切换文章详情 "> 切换站点概览</ span > < hr > </ div > < div class ="sidebar-toc "> < div class ="sidebar-toc__title "> 目录</ div > < div class ="sidebar-toc__progress "> < span class ="progress-notice "> 你已经读了</ span > < span class ="progress-num "> 0</ span > < span class ="progress-percentage "> %</ span > < div class ="sidebar-toc__progress-bar "> </ div > </ div > < div class ="sidebar-toc__content "> < ol class ="toc "> < li class ="toc-item toc-level-2 "> < a class ="toc-link " href ="#ConfigurationProperties "> < span class ="toc-number "> 1.</ span > < span class ="toc-text "> @ConfigurationProperties</ span > </ a > </ li > < li class ="toc-item toc-level-2 "> < a class ="toc-link " href ="#作用于方法 "> < span class ="toc-number "> 2.</ span > < span class ="toc-text "> 作用于方法</ span > </ a > < ol class ="toc-child "> < li class ="toc-item toc-level-3 "> < a class ="toc-link " href ="#配置文件内容 "> < span class ="toc-number "> 2.1.</ span > < span class ="toc-text "> 配置文件内容</ span > </ a > </ li > < li class ="toc-item toc-level-3 "> < a class ="toc-link " href ="#java代码 "> < span class ="toc-number "> 2.2.</ span > < span class ="toc-text "> java代码</ span > </ a > </ li > </ ol > </ li > < li class ="toc-item toc-level-2 "> < a class ="toc-link " href ="#作用于Class类及其用法 "> < span class ="toc-number "> 3.</ span > < span class ="toc-text "> 作用于Class类及其用法</ span > </ a > < ol class ="toc-child "> < li class ="toc-item toc-level-3 "> < a class ="toc-link " href ="#配置文件内容-1 "> < span class ="toc-number "> 3.1.</ span > < span class ="toc-text "> 配置文件内容</ span > </ a > </ li > < li class ="toc-item toc-level-3 "> < a class ="toc-link " href ="#java代码-1 "> < span class ="toc-number "> 3.2.</ span > < span class ="toc-text "> java代码</ span > </ a > </ li > < li class ="toc-item toc-level-3 "> < a class ="toc-link " href ="#用法 "> < span class ="toc-number "> 3.3.</ span > < span class ="toc-text "> 用法</ span > </ a > </ li > </ ol > </ li > < li class ="toc-item toc-level-2 "> < a class ="toc-link " href ="#总结 "> < span class ="toc-number "> 4.</ span > < span class ="toc-text "> 总结</ span > </ a > </ li > </ ol > </ div > </ div > < div class ="author-info hide "> < div class ="author-info__avatar text-center "> < img src ="https://images5.alphacoders.com/423/423529.jpg "> </ div > < div class ="author-info__name text-center "> GeYu</ div > < div class ="author-info__description text-center "> Do what you want to do !</ div > < div class ="follow-button "> < a href ="https://github.com/NUISTGY "> Follow Me</ a > </ div > < hr > < div class ="author-info-articles "> < a class ="author-info-articles__archives article-meta " href ="/archives "> < span class ="pull-left "> 文章</ span > < span class ="pull-right "> 223</ span > </ a > < a class ="author-info-articles__tags article-meta " href ="/tags "> < span class ="pull-left "> 标签</ span > < span class ="pull-right "> 79</ span > </ a > < a class ="author-info-articles__categories article-meta " href ="/categories "> < span class ="pull-left "> 分类</ span > < span class ="pull-right "> 43</ span > </ a > </ div > </ div > </ div > < div id ="content-outer "> < div id ="top-container " style ="background-image: url(https://i.328888.xyz/2022/12/21/ARudF.png) "> < div id ="page-header "> < span class ="pull-left "> < a id ="site-name " href ="/ "> Yu's Blog</ a > </ span > < i class ="fa fa-bars toggle-menu pull-right " aria-hidden ="true "> </ i > < span class ="pull-right menus "> < a class ="site-page " href ="/ "> Home</ a > < a class ="site-page " href ="/archives "> Archives</ a > < a class ="site-page " href ="/tags "> Tags</ a > < a class ="site-page " href ="/categories "> Categories</ a > < a class ="site-page " href ="/about "> About</ a > </ span > </ div > < div id ="post-info "> < div id ="post-title "> Spring中@ConfigurationProperties的使用方法</ div > < div id ="post-meta "> < time class ="post-meta__date "> < i class ="fa fa-calendar " aria-hidden ="true "> </ i > 2023-02-20</ time > < span class ="post-meta__separator "> |</ span > < i class ="fa fa-inbox post-meta__icon " aria-hidden ="true "> </ i > < a class ="post-meta__categories " href ="/categories/Spring/ "> Spring</ a > < div class ="post-meta-wordcount "> < span > 字数总计: </ span > < span class ="word-count "> 951</ span > < span class ="post-meta__separator "> |</ span > < span > 阅读时长: 4 分钟</ span > </ div > </ div > </ div > </ div > < div class ="layout " id ="content-inner "> < article id ="post "> < div class ="article-container " id ="post-content "> < script src ="/assets/js/APlayer.min.js "> </ script > < blockquote >
11
+ < p > 补充:< a href ="https://zhangxiaofan.blog.csdn.net/article/details/104429497?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5-104429497-blog-122876462.235%5Ev38%5Epc_relevant_anti_t3_base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5-104429497-blog-122876462.235%5Ev38%5Epc_relevant_anti_t3_base&utm_relevant_index=6 " target ="_blank " rel ="noopener "> @EnableConfigurationProperties注解作用</ a > </ p >
12
+ </ blockquote >
13
+ < h2 id ="ConfigurationProperties "> < a href ="#ConfigurationProperties " class ="headerlink " title ="@ConfigurationProperties "> </ a > @ConfigurationProperties</ h2 > < p > Spring源码中大量使用了ConfigurationProperties注解,比如< code > server.port</ code > 就是由该注解获取到的,通过与其他注解配合使用,能够实现Bean的按需配置。</ p >
11
14
< p > 该注解有一个prefix属性,通过指定的前缀,绑定配置文件中的配置,该注解可以放在类上,也可以放在方法上。</ p >
12
15
< figure class ="highlight java "> < table > < tr > < td class ="gutter "> < pre > < span class ="line "> 1</ span > < br > < span class ="line "> 2</ span > < br > < span class ="line "> 3</ span > < br > < span class ="line "> 4</ span > < br > < span class ="line "> 5</ span > < br > < span class ="line "> 6</ span > < br > < span class ="line "> 7</ span > < br > < span class ="line "> 8</ span > < br > < span class ="line "> 9</ span > < br > < span class ="line "> 10</ span > < br > < span class ="line "> 11</ span > < br > < span class ="line "> 12</ span > < br > < span class ="line "> 13</ span > < br > < span class ="line "> 14</ span > < br > < span class ="line "> 15</ span > < br > < span class ="line "> 16</ span > < br > < span class ="line "> 17</ span > < br > < span class ="line "> 18</ span > < br > < span class ="line "> 19</ span > < br > < span class ="line "> 20</ span > < br > < span class ="line "> 21</ span > < br > < span class ="line "> 22</ span > < br > < span class ="line "> 23</ span > < br > < span class ="line "> 24</ span > < br > < span class ="line "> 25</ span > < br > < span class ="line "> 26</ span > < br > < span class ="line "> 27</ span > < br > < span class ="line "> 28</ span > < br > < span class ="line "> 29</ span > < br > < span class ="line "> 30</ span > < br > </ pre > </ td > < td class ="code "> < pre > < span class ="line "> < span class ="comment "> //</ span > </ span > < br > < span class ="line "> < span class ="comment "> // Source code recreated from a .class file by IntelliJ IDEA</ span > </ span > < br > < span class ="line "> < span class ="comment "> // (powered by FernFlower decompiler)</ span > </ span > < br > < span class ="line "> < span class ="comment "> //</ span > </ span > < br > < span class ="line "> </ span > < br > < span class ="line "> < span class ="keyword "> package</ span > org.springframework.boot.context.properties;</ span > < br > < span class ="line "> </ span > < br > < span class ="line "> < span class ="keyword "> import</ span > java.lang.annotation.Documented;</ span > < br > < span class ="line "> < span class ="keyword "> import</ span > java.lang.annotation.ElementType;</ span > < br > < span class ="line "> < span class ="keyword "> import</ span > java.lang.annotation.Retention;</ span > < br > < span class ="line "> < span class ="keyword "> import</ span > java.lang.annotation.RetentionPolicy;</ span > < br > < span class ="line "> < span class ="keyword "> import</ span > java.lang.annotation.Target;</ span > < br > < span class ="line "> < span class ="keyword "> import</ span > org.springframework.core.annotation.AliasFor;</ span > < br > < span class ="line "> < span class ="keyword "> import</ span > org.springframework.stereotype.Indexed;</ span > < br > < span class ="line "> </ span > < br > < span class ="line "> < span class ="meta "> @Target</ span > ({ElementType.TYPE, ElementType.METHOD})</ span > < br > < span class ="line "> < span class ="meta "> @Retention</ span > (RetentionPolicy.RUNTIME)</ span > < br > < span class ="line "> < span class ="meta "> @Documented</ span > </ span > < br > < span class ="line "> < span class ="meta "> @Indexed</ span > </ span > < br > < span class ="line "> < span class ="keyword "> public</ span > < span class ="meta "> @interface</ span > ConfigurationProperties {</ span > < br > < span class ="line "> < span class ="meta "> @AliasFor</ span > (< span class ="string "> "prefix"</ span > )</ span > < br > < span class ="line "> < span class ="function "> String < span class ="title "> value</ span > < span class ="params "> ()</ span > < span class ="keyword "> default</ span > ""</ span > ;</ span > < br > < span class ="line "> </ span > < br > < span class ="line "> < span class ="meta "> @AliasFor</ span > (< span class ="string "> "value"</ span > )</ span > < br > < span class ="line "> < span class ="function "> String < span class ="title "> prefix</ span > < span class ="params "> ()</ span > < span class ="keyword "> default</ span > ""</ span > ;</ span > < br > < span class ="line "> </ span > < br > < span class ="line "> < span class ="function "> < span class ="keyword "> boolean</ span > < span class ="title "> ignoreInvalidFields</ span > < span class ="params "> ()</ span > < span class ="keyword "> default</ span > < span class ="keyword "> false</ span > </ span > ;</ span > < br > < span class ="line "> </ span > < br > < span class ="line "> < span class ="function "> < span class ="keyword "> boolean</ span > < span class ="title "> ignoreUnknownFields</ span > < span class ="params "> ()</ span > < span class ="keyword "> default</ span > < span class ="keyword "> true</ span > </ span > ;</ span > < br > < span class ="line "> }</ span > < br > </ pre > </ td > </ tr > </ table > </ figure >
13
16
Original file line number Diff line number Diff line change 24
24
< li > 任务队列:用于存放待处理的任务,提供一种缓冲机制</ li >
25
25
</ ul >
26
26
< p > Java 中的线程池是通过JDK提供的 Executor 框架实现的,该框架中用到了 Executor,Executors(工具类), ExecutorService,ThreadPoolExecutor ,Callable 和 Future、FutureTask ,ScheduledThreadPoolExecutor等几个类。</ p >
27
- < p > < strong > 线程池的状态:</ strong > </ p >
27
+ < p > < strong > 线程池的状态:</ strong > </ p >
28
+ < blockquote >
29
+ < p > < a href ="https://www.51cto.com/article/704618.html " target ="_blank " rel ="noopener "> 线程池状态转换</ a > </ p >
30
+ </ blockquote >
28
31
< table >
29
32
< thead >
30
33
< tr >
@@ -283,7 +286,7 @@ <h2 id="开发要求"><a href="#开发要求" class="headerlink" title="开发
283
286
< p > CPU 密集型简单理解就是利用 CPU 计算能力的任务比如在内存中对大量数据进行分析</ p >
284
287
</ li >
285
288
< li > < p > < strong > I/O 密集型任务:</ strong > 这种系统 CPU 处于阻塞状态,用大部分的时间来处理 I/O 交互,而线程在处理 I/O 的时间段内不会占用 CPU 来处理,这时就可以将 CPU 交出给其它线程使用,因此在 I/O 密集型任务的应用中,我们可以多配置一些线程,具体的计算方法是 2N 或 CPU 核数/ (1-阻塞系数),阻塞系数在 0.8~0.9 之间</ p >
286
- < p > IO 密集型就是涉及到网络读取,文件读取此类任务 ,特点是 CPU 计算耗费时间相比于等待 IO 操作完成的时间来说很少,大部分时间都花在了等待 IO 操作完成上</ p >
289
+ < p > IO 密集型就是涉及到网络读取,文件读取此类任务 ,特点是 CPU 计算耗费时间相比于等待 IO 操作完成的时间来说很少,大部分时间都花在了等待 IO 操作完成上 </ p >
287
290
</ li >
288
291
</ ul >
289
292
</ div > </ article > < div class ="post-copyright "> < div class ="post-copyright__author "> < span class ="post-copyright-meta "> 文章作者: </ span > < span class ="post-copyright-info "> < a href ="mailto:undefined "> GeYu</ a > </ span > </ div > < div class ="post-copyright__type "> < span class ="post-copyright-meta "> 文章链接: </ span > < span class ="post-copyright-info "> < a href ="https://nuistgy.github.io/2023/05/04/JUC-线程池技术/ "> https://nuistgy.github.io/2023/05/04/JUC-线程池技术/</ a > </ span > </ div > < div class ="post-copyright__notice "> < span class ="post-copyright-meta "> 版权声明: </ span > < span class ="post-copyright-info "> 本博客所有文章除特别声明外,均采用 < a href ="https://creativecommons.org/licenses/by-nc-sa/4.0/ "> CC BY-NC-SA 4.0</ a > 许可协议。转载请注明来自 < a href ="https://nuistgy.github.io "> Yu's Blog</ a > !</ span > </ div > </ div > < div class ="post-meta__tag-list "> < a class ="post-meta__tags " href ="/tags/Java/ "> Java</ a > < a class ="post-meta__tags " href ="/tags/并发编程/ "> 并发编程</ a > < a class ="post-meta__tags " href ="/tags/JUC/ "> JUC</ a > </ div > < div class ="addthis_inline_share_toolbox pull-right "> </ div > < script src ="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5befa2f76de7c6b5 " async > </ script > < nav id ="pagination "> < div class ="prev-post pull-left "> < a href ="/2023/05/05/MySQL-InnoDB-基本架构/ "> < i class ="fa fa-chevron-left "> </ i > < span > MySQL-InnoDB基本架构</ span > </ a > </ div > < div class ="next-post pull-right "> < a href ="/2023/04/25/JUC-Unsafe/ "> < span > JUC-Unsafe简介</ span > < i class ="fa fa-chevron-right "> </ i > </ a > </ div > </ nav > </ div > </ div > < footer class ="footer-bg " style ="background-image: url(https://i.328888.xyz/2022/12/21/ARudF.png) "> < div class ="layout " id ="footer "> < div class ="copyright "> ©2015 - 2023 By GeYu</ div > < div class ="framework-info "> < span > 驱动 - </ span > < a href ="http://hexo.io "> < span > Hexo</ span > </ a > < span class ="footer-separator "> |</ span > < span > 主题 - </ span > < a href ="https://github.com/Molunerfinn/hexo-theme-melody "> < span > Melody</ span > </ a > </ div > < div class ="footer_custom_text "> Enjoy the cyber world!</ div > < div class ="busuanzi "> < script async src ="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js "> </ script > < span id ="busuanzi_container_site_uv "> < i class ="fa fa-user "> </ i > < span id ="busuanzi_value_site_uv "> </ span > < span > </ span > </ span > < span class ="footer-separator "> |</ span > < span id ="busuanzi_container_site_pv "> < i class ="fa fa-eye "> </ i > < span id ="busuanzi_value_site_pv "> </ span > < span > </ span > </ span > </ div > </ div > </ footer > < i class ="fa fa-arrow-up " id ="go-up " aria-hidden ="true "> </ i > < script src ="https://cdn.jsdelivr.net/npm/animejs@latest/anime.min.js "> </ script > < script src ="https://cdn.jsdelivr.net/npm/jquery@latest/dist/jquery.min.js "> </ script > < script src ="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.js "> </ script > < script src ="https://cdn.jsdelivr.net/npm/velocity-animate@latest/velocity.min.js "> </ script > < script src ="https://cdn.jsdelivr.net/npm/velocity-ui-pack@latest/velocity.ui.min.js "> </ script > < script src ="/js/utils.js?version=1.6.1 "> </ script > < script src ="/js/fancybox.js?version=1.6.1 "> </ script > < script src ="/js/sidebar.js?version=1.6.1 "> </ script > < script src ="/js/copy.js?version=1.6.1 "> </ script > < script src ="/js/fireworks.js?version=1.6.1 "> </ script > < script src ="/js/transition.js?version=1.6.1 "> </ script > < script src ="/js/scroll.js?version=1.6.1 "> </ script > < script src ="/js/head.js?version=1.6.1 "> </ script > < script > if ( / A n d r o i d | w e b O S | i P h o n e | i P o d | B l a c k B e r r y / i. test ( navigator . userAgent ) ) {
You can’t perform that action at this time.
0 commit comments