文章目录
DigestUtils加密的工具类
- org.springframework.util.DigestUtils
//它加密的长度是固定的32位
eg:public static String getDigestMD5(String sStr){
String hex = DigestUtils.md5DigestAsHex(sStr.getBytes());
return hex;
}
@Transactional 是声明式事务管理 编程中使用的注解
- @Transactional 属性配置
属性 | 类型 | 描述 |
---|---|---|
value | String | 可选的限定描述符,指定使用的事务管理器 |
propagation | enum: Propagation | 可选的事务传播行为设置 |
isolation | enum: Isolation | 可选的事务隔离级别设置 |
readOnly | boolean | 读写或只读事务,默认读写 |
timeout | int (in seconds granularity) | 事务超时时间设置 |
rollbackFor | Class对象数组,必须继承自Throwable | 导致事务回滚的异常类数组 |
rollbackForClassName | 类名数组,必须继承自Throwable | 导致事务回滚的异常类名字数组 |
noRollbackFor | Class对象数组,必须继承自Throwable | 不会导致事务回滚的异常类数组 |
noRollbackForClassName | 类名数组,必须继承自Throwable | 不会导致事务回滚的异常类名字数组 |
在类上面声明注解(只读)
@Service
@Transactional(readOnly = true)
public class AdminServiceImpl extends BaseServiceImpl<TbSysUser, TbSysUserMapper> implements AdminService {
}
在方法中取消只读注解
@Transactional(readOnly = false)
public void register(TbUser tbuser){
}
Lombok-简化臃肿代码
在pom文件中添加
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
</dependency>
- 使用
@Data
注解简化POJO
@Data
包含了@ToString
,@EqualsAndHashCode
,@Getter/@Setter
,@RequiredArgsConstructor
的功能
使用案例
@Data
@AllArgsConstructor//该注解使得该类的构造方法自动扩充
public static class Error {
private String field;
private String message;
}
StringUtils工具类的常用方法
前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅。
- isEmpty(String str) 是否为空,空格字符为false
- isNotEmpty(String str) 是否为非空,空格字符为true
- isBlank(String str) 是否为空,空格字符为true
- equals(String str1,String str2) 比较两个字符串是否相等,如果两个均为空则认为相等
- indexOf(String str,char searchChar) 返回searchChar 在字符串中第一次出现的位置,如果没找到则返回 -1,如果str 为null 或者 “”,也返回-1
- indexOf(String str,char searchChar,int startPos) 返回字符searchChar从startPos开始在字符串str中第一次出现的位置。
- contains(String str,char searchChar) str中是否包含字符searchChar,str为null 或者 searchChar为null,返回false 。
- StringUtils.contains("", “”) = true
- StringUtils.contains(“dfg”, “”) = true
- containsIgnoreCase(String str,String searchStr) str中是否包含字符searchChar,不区分大小写
- int indexOfAny(String str, char[] searchChars) 找出字符数组searchChars中的字符第一次出现在字符串str中的位置。 如果字符数组中的字符都不在字符串中,则返回-1 ,如果字符串为null或"",则返回-1
- subString(String str,int start) 从start 开始,包含start 那个字符,得到字符串str 的子串,如果start为负数,则从后面开始数起。如果str 为null 或者 “” 则返回其本身
- subStringBefore(String str,String separator) 得到字符串separator第一次出现前的子串。不包含那个字符,如果str 为null 或者 “” 则返回其本身。
- subStringAfter(String str,String separator) 得到字符串separator第一次出现后的子串,不包含那个字符,如果 str 为null,或者"",则返回其本身
- subString(String str,int start,int end) 同上
- left(String str,int len) 得到字符串str从左边数len长度的子串,如果str 为null 或者 “”,则返回其本身,如果len小于0,则返回""
- right(String str,int len)得到字符串str从右边数len长度的子串
- mid(String str,int pos,int len) 得到字符串str从pos开始len长度的子串,pos小于0,则设为0。
- split(String str) 把字符串拆分成一个字符串数组,用空白符 作为分隔符,字符串为null 返回null,字符串为"",返回空数组{}
- split(String str,char c) 按照 char c 拆分字符串
- join(Object[] arrey)把数组中的元素连接成一个字符串返回
- join(Object[] arrey,char c) 把数组中的元素拼接成一个字符串返回,把分隔符 c 也带上
- deleteWhitespace(String str) 删除字符串中的所有空白符,包括转义字符
更多可参考StringUtils工具类常用方法
谷歌的工具包guava
Guava是一种基于开源的Java库,谷歌很多项目使用它的很多核心库。这个库是为了方便编码,并减少编码错误。
首先先在pom.xml
中添加依赖
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>25.1-jre</version>
</dependency>
应用如:
List<BaseResult.Error> errors=Lists.newArrayList();
更多可参考Guava教程
随机获取不重复的字符串
在包import java.util.UUID;
下
使用为:
String token = UUID.randomUUID().toString();
将Json转化为对象
在包import com.funtl.itoken.common.utils.MapperUtils;
下
使用为:
TbSysUser tbSysUser = MapperUtils.json2pojo(json, TbSysUser.class);