首页 文章 精选 留言 我的

精选列表

搜索[Java],共10000篇文章
优秀的个人博客,低调大师

使用Java类加载SpringBoot、SpringCloud配置文件

版权声明:本文为博主原创文章,未经博主允许不得转载。博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/81750872 我们都知道平常在使用SpringBoot和SpringCloud的时候,如果需要加载一两个配置文件的话我们通常使用@Value("${属性名称}")注解去加载。但是如果配置文件属性特别多的时候使用这种方式就显得特别的不友好了。 比如说,我们要加载下方这个名为application.yml的配置文件。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 kafka: brokerAddress: 110.35.113.62:9092,123.27.143.72:9095,180.17.133.52:9096 smsTopic: testTopic smsCosumeGroup: testTopicGroup timerTaskTopic: timerTopic timerTaskGroup: timerGroup jvmNumbers: 3 security: authentication: jwt: secret: 0550224055e1848081dba46d8ad325f503fa141b tokenValidityInSeconds: 86400 此时我们有两种方式来简化这个加载方式 1 这种方式呢,是同过层层嵌套的方式一层一层的按照配置文件属性的方式来进行注入的。大家只要把这个类跟上方提供的配置文件进行对比就会明白它的方式了。(注意,下方的所有属性因为篇幅问题没有增加get、set方法,实际使用过程中请自行添加) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 @ConfigurationProperties(prefix = "application", ignoreUnknownFields = false) public class ApplicationProperties1 { private final Security security = new Security(); private final Kafka kafka = new Kafka(); public static class Kafka { private String brokerAddress; private String smsTopic; private String smsCosumeGroup; private String timerTaskTopic; private String timerTaskGroup; private String jvmNumbers; } public static class Security { private final Authentication authentication = new Authentication(); public static class Authentication { private final Jwt jwt = new Jwt(); public static class Jwt { private String secret; private long tokenValidityInSeconds; } } } } 2 这种方式就是以指定的配置前缀为依据去取配置(同上没有写get、set方法) 例如:kafka的配置可以这样来 1 2 3 4 5 6 7 8 9 10 11 12 @Configuration @ConfigurationProperties(prefix = "kafka",ignoreUnknownFields = false) @PropertySource(value = { "classpath:application.yml" },ignoreResourceNotFound=false) public class ApplicationProperties { private String brokerAddress; private String smsTopic; private String smsCosumeGroup; private String timerTaskTopic; private String timerTaskGroup; private String jvmNumbers; } 而Security的配置这样来 1 2 3 4 5 6 7 8 9 @Configuration @ConfigurationProperties(prefix = "security.authentication.jwt",ignoreUnknownFields = false) @PropertySource(value = { "classpath:application.yml" },ignoreResourceNotFound=false) public class ApplicationProperties { private String secret; private long tokenValidityInSeconds; } 补充 大家可能会注意到我上方的几个类中都没有写get和set方法,因为那个东西其实所占的篇幅实在是太长了。那么,有什么办法可以补救么,其实是有办法的,一个注解就可以全搞定哟。 什么?你不信,不信来看看呀:IDEA中使用lombok插件 结语 怎么样,学会这个以后Leader还会担心你的代码臃肿么。 本文出自http://zhixiang.org.cn,转载请保留。

优秀的个人博客,低调大师

Java记忆篇 - 关键字与保留字

共“53”个关键字(含2个保留字) 保留字 1).const有道释义:n.常量,常数 用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改 2).goto有道释义:vi.转到 指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。 访问修饰符的关键字(共3个) 定义类、接口、抽象类和实现接口、继承类的关键字、实例化对象(共6个) 包的关键字(共2个) 数据类型的关键字(共12个) 条件循环(流程控制)(共12个) 修饰方法、类、属性和变量(共9个) volatile 1.当写一个volatile变量时,JMM会把该线程对应的本地内存中的变量强制刷新到主内存中去; 2.这个写会操作会导致其他线程中的缓存无效。 上面的例子只需将status声明为volatile,即可保证在线程A将其修改为true时,线程B可以立刻得知 volatile boolean status = false; 错误处理(共5个) 其他 publicenumColor{RED,BLUE,GREEN,BLACK;}

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册