Java的零碎知识记录

Java的零碎知识记录

在开发或学习中遇到一些零碎的Java的知识,记录一下,以便实现懒人计划 : ) ...

一,Java中两个不同Bean各个类变量复制可以使用Spring已有的功能,
org.springframework.beans.BeanUtils.copyProperties(源bean,目标bean);
其中源bean和目标bean两个bean的类型可以不同,其结果是把源Bean中所有各个类变量(例如a)的值复制或覆盖到目标Bean中各个对应相同名称的类变量(例如a)中,源和目标类都有某个类变量则源bean的类变量值覆盖目标Bean相应的类变量值,目标Bean有而源Bean没有的类变量的值不受影响;


二,Springboot的注解@MapperScan()在扫描java的接口文件时,如果存在多个SqlSessionFactoryService的实例时,使用哪个实例应指定该值;
@MapperScan(value="库表映射的java的mapper接口文件", sqlSessionFactoryRef="SqlSessionFactoryService的bean实例名称")


三,Springboot中配置文件的读取方式,

首先是注意前提SpringBoot扫描到相应的包;同时如果Bean希望放到 spring 的 ioc 容器中一般加 @Configuration 注解在类前,
下面是Springboot中配置文件的读取方式:

1,直接一个注解指定配置key前缀,配置文件application.yml(或properties)如果放在Springboot默认的resources目录路径下时;
@ConfigurationProperties(prefix="key前缀")

2,直接一个注解指定配置key前缀和配置文件放在项目中非默认路径时;
@ConfigurationProperties(prefix="key前缀",locations="classpath:xpath/application.properties")

3,分两个注解,一个指定key前缀,一个指定配置文件(放在项目中非默认)路径;
@ConfigurationProperties(prefix="key前缀") //指定key前缀
@PropertySource("classpath:xpath/application.properties")//指定配置文件路径


四,Java中时间单位在redis缓存中使用到,Java中已经直接提供了,参见类:java.util.concurrent.TimeUnit类中的Seconds/Munites/Hours/Days等

import java.util.concurrent.TimeUnit;

TimeUnit.SECONDS;
TimeUnit.MINUTES;
TimeUnit.HOURS;
TimeUnit.DAYS;

个人简要记录,欢迎拍砖留言讨论...