SpringBoot开发中的一些小细节(九)

SpringBoot开发中的一些小细节(九)

2019, Mar 24    

前言

本文主要记录最近工作中关于开发中的一些小技巧以及感悟

小细节

String转Long

使用Long.parseLong,而不是Long.getLong

Guava库

Joiner

超好用的Guava库,主要用于字符串的拼接,可以自动在中间加上分隔符

    String yamlStart = "---\n";
    String yamlEnd = "...\n";
    Joiner joinerContent = Joiner.on("...\n---\n").skipNulls();
    return Joiner.on("").join(yamlStart, joinerContent.join(yamlList), yamlEnd);
Splitter

可以很方便的将字符串分割成对应的数据结构

	//将source进行处理
    List<String> tempSource = Splitter.on(",").splitToList(param.getSource());

String占位符的用法

原来:

	String title = "[" + characterName + "][" + task.getEnv() + "][" + pipelineStage.getService() + "]";

改进:

	String title = String.format("[%s][%s][%s]",

线程中的问题

不能直接使用Autowired,需要定义了成员变量之后,使用外界已经加载好的service作为入参传入初始化这个线程,如果每一个线程都启一个service的话,资源消耗会很大。 (仅仅是我暂时这么理解,TODO 搞清楚原因)

数据入库的操作

建议先入队列,然后再入库

Configuration的问题

定义了两个configuration,一个masterClient,一个jobClient 然后有个地方使用了@Autowired来进行配置(一个在外层service,一个是另外一个service),这时候就出现了冲突,开始报错。配置一定要清晰

重复代码的问题

在mac中,如果是在同一个类中的重复冗余的代码,可以使用option+command加上m,可以将重复代码进行抽离。如果是在不同的类中,可以使用将重复方法抽离到父类的方法,或者是抽离到静态工具类的方法。避免重复代码的最好的方式,就是在编码的时候,尽量不要使用复制粘贴的方式来进行编码,而应该想办法,提高自己的代码的可复用性和可扩展性。

小感悟

工作不知不觉已经是第七个月,但是自己的能力,还有薪资,都是处于一个“穷”的状态,俗话说得好,穷则独善其身。现在的我,还没有资格去管别人的事情,能将自己的事情做好就已经不错了。