StringUtils增加splitComma、joinComma

This commit is contained in:
thinkgem
2023-06-09 20:47:15 +08:00
parent 7fe1faf915
commit 8e4be5f03c
17 changed files with 89 additions and 86 deletions

View File

@@ -29,7 +29,7 @@ public class DesUtils {
if ("Base64".equalsIgnoreCase(secretKey)) {
return EncodeUtils.encodeBase64(data);
}
String[] ks = StringUtils.split(secretKey, StringUtils.COMMA);
String[] ks = StringUtils.splitComma(secretKey);
if (ks.length >= 3){
return desCore.strEnc(data, ks[0], ks[1], ks[2]);
}
@@ -50,7 +50,7 @@ public class DesUtils {
return StringUtils.EMPTY;
}
}
String[] ks = StringUtils.split(secretKey, StringUtils.COMMA);
String[] ks = StringUtils.splitComma(secretKey);
if (ks.length >= 3){
return desCore.strDec(data, ks[0], ks[1], ks[2]);
}

View File

@@ -69,7 +69,7 @@ public class PropertiesUtils {
// 获取 spring.config.location 外部自定义的配置文件
String customConfigs = System.getProperty("spring.config.location");
if (StringUtils.isNotBlank(customConfigs)){
for (String customConfig : StringUtils.split(customConfigs, ",")){
for (String customConfig : StringUtils.splitComma(customConfigs)){
if (!customConfig.contains("$")){
customConfig = org.springframework.util.StringUtils.cleanPath(customConfig);
if (!ResourceUtils.isUrl(customConfig)){
@@ -89,7 +89,7 @@ public class PropertiesUtils {
for (String location : configFiles){
configSet.add(location);
if (StringUtils.isNotBlank(profiles)){
for (String pf : StringUtils.split(profiles, ",")) {
for (String pf : StringUtils.splitComma(profiles)) {
if (location.endsWith(".properties")){
configSet.add(StringUtils.substringBeforeLast(location, ".properties")
+ "-" + pf + ".properties");
@@ -214,7 +214,7 @@ public class PropertiesUtils {
* @return 获取不到返回空defValue默认值
*/
public String[] getPropertyToArray(String key, String defValue) {
return StringUtils.split(getProperty(key, defValue), ",");
return StringUtils.splitComma(getProperty(key, defValue));
}
/**

View File

@@ -4,20 +4,19 @@
*/
package com.jeesite.common.lang;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.reflect.InvocationTargetException;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.nustaq.serialization.FSTConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.core.NamedThreadLocal;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.reflect.InvocationTargetException;
/**
* 对象操作工具类,继承 org.apache.commons.lang3.ObjectUtils 类
* @author ThinkGem
@@ -29,7 +28,7 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
private static final boolean isJavaSerialize;
static {
String[] ver = StringUtils.split(System.getProperty("java.version"), '.');
String[] ver = StringUtils.split(System.getProperty("java.version"), StringUtils.DOT);
isJavaSerialize = ver.length > 0 && Integer.parseInt(ver[0]) > 1;
}

View File

@@ -21,6 +21,7 @@ import java.util.regex.Pattern;
*/
public class StringUtils extends org.apache.commons.lang3.StringUtils {
public static final String DOT = ".";
public static final String COMMA = ",";
public static final String COLON = ":";
public static final String TILDE = "~";
@@ -31,10 +32,19 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
* @param str
* @return
*/
public static String[] split(final String str) {
public static String[] splitComma(final String str) {
return split(str, COMMA);
}
/**
* 连接字符串(默认逗号分隔)
* @param iterable
* @return
*/
public static String joinComma(final Iterable<?> iterable) {
return join(iterable, COMMA);
}
/**
* 转换为字节数组
* @param str

View File

@@ -1,11 +1,11 @@
package com.jeesite.common.network;
import javax.servlet.http.HttpServletRequest;
import com.jeesite.common.codec.EncodeUtils;
import com.jeesite.common.io.PropertiesUtils;
import com.jeesite.common.lang.StringUtils;
import javax.servlet.http.HttpServletRequest;
public class IpUtils {
/**
@@ -28,7 +28,7 @@ public class IpUtils {
}
if (StringUtils.isNotBlank(ip)){
ip = EncodeUtils.xssFilter(ip, request);
ip = StringUtils.split(ip, ",")[0];
ip = StringUtils.splitComma(ip)[0];
}
if (StringUtils.isBlank(ip)){
ip = "unknown";

View File

@@ -7,8 +7,8 @@ package com.jeesite.common.reflect;
import com.jeesite.common.collect.MapUtils;
import com.jeesite.common.lang.DateUtils;
import com.jeesite.common.lang.ObjectUtils;
import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.reflect.asm.MethodAccess;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Validate;
import org.apache.poi.ss.usermodel.DateUtil;
import org.slf4j.Logger;
@@ -26,11 +26,11 @@ import java.util.Map;
@SuppressWarnings("rawtypes")
public class ReflectUtils {
private static Logger logger = LoggerFactory.getLogger(ReflectUtils.class);
private static final Logger logger = LoggerFactory.getLogger(ReflectUtils.class);
private static final String SETTER_PREFIX = "set";
private static final String GETTER_PREFIX = "get";
private static final String CGLIB_CLASS_SEPARATOR = "$$";
private static Map<String, Map<String, Method>> methodClassCache = MapUtils.newHashMap();
private static final Map<String, Map<String, Method>> methodClassCache = MapUtils.newHashMap();
/**
* 调用Getter方法v5.3.0+ 变更为ASM方式不支持私有方法调用高性能
@@ -41,7 +41,7 @@ public class ReflectUtils {
@SuppressWarnings("unchecked")
public static <E> E invokeGetter(Object obj, String propertyName) {
Object object = obj;
for (String name : StringUtils.split(propertyName, ".")){
for (String name : StringUtils.split(propertyName, StringUtils.DOT)){
if (obj instanceof Map){
object = ((Map)obj).get(name);
}else{
@@ -62,7 +62,7 @@ public class ReflectUtils {
@SuppressWarnings("unchecked")
public static <E> void invokeSetter(Object obj, String propertyName, Object... args) {
Object object = obj;
String[] names = StringUtils.split(propertyName, ".");
String[] names = StringUtils.split(propertyName, StringUtils.DOT);
for (int i=0; i<names.length; i++){
if(i<names.length-1){
if (obj instanceof Map){

View File

@@ -35,8 +35,8 @@ public class ServletUtils {
// 定义静态文件后缀静态文件排除URI地址
private static final PropertiesUtils PROPS = PropertiesUtils.getInstance();
private static final String[] STATIC_FILE = StringUtils.split(PROPS.getProperty("web.staticFile"), ",");
private static final String[] STATIC_FILE_EXCLUDE_URI = StringUtils.split(PROPS.getProperty("web.staticFileExcludeUri"), ",");
private static final String[] STATIC_FILE = StringUtils.splitComma(PROPS.getProperty("web.staticFile"));
private static final String[] STATIC_FILE_EXCLUDE_URI = StringUtils.splitComma(PROPS.getProperty("web.staticFileExcludeUri"));
// AJAX 请求参数和请求头名
public static final String AJAX_PARAM_NAME = PROPS.getProperty("web.ajaxParamName", "__ajax");

View File

@@ -6,9 +6,9 @@ package com.jeesite.test;
import com.jeesite.common.lang.DateUtils;
import com.jeesite.common.lang.ObjectUtils;
import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.lang.TimeUtils;
import com.jeesite.common.reflect.ReflectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Validate;
import org.apache.poi.ss.usermodel.DateUtil;
import org.slf4j.Logger;
@@ -244,7 +244,7 @@ class ReflectUtils2 {
@SuppressWarnings("unchecked")
public static <E> E invokeGetter(Object obj, String propertyName) {
Object object = obj;
for (String name : StringUtils.split(propertyName, ".")){
for (String name : StringUtils.split(propertyName, StringUtils.DOT)){
if (obj instanceof Map){
object = ((Map)obj).get(name);
}else{
@@ -264,7 +264,7 @@ class ReflectUtils2 {
@SuppressWarnings("unchecked")
public static <E> E invokeGetterCache(Object obj, String propertyName) {
Object object = obj;
for (String name : StringUtils.split(propertyName, ".")){
for (String name : StringUtils.split(propertyName, StringUtils.DOT)){
if (obj instanceof Map){
object = ((Map)obj).get(name);
}else{
@@ -284,7 +284,7 @@ class ReflectUtils2 {
@SuppressWarnings("unchecked")
public static <E> void invokeSetter(Object obj, String propertyName, E value) {
Object object = obj;
String[] names = StringUtils.split(propertyName, ".");
String[] names = StringUtils.split(propertyName, StringUtils.DOT);
for (int i=0; i<names.length; i++){
if(i<names.length-1){
if (obj instanceof Map){
@@ -333,7 +333,7 @@ class ReflectUtils2 {
@SuppressWarnings("unchecked")
public static <E> void invokeSetterCache(Object obj, String propertyName, E value) {
Object object = obj;
String[] names = StringUtils.split(propertyName, ".");
String[] names = StringUtils.split(propertyName, StringUtils.DOT);
for (int i=0; i<names.length; i++){
if(i<names.length-1){
if (obj instanceof Map){

View File

@@ -102,7 +102,7 @@ public class ArticleService extends CrudService<ArticleDao, Article> {
return list;
}
Article where = new Article();
where.setId_in(StringUtils.split(ids, ","));
where.setId_in(StringUtils.splitComma(ids));
dao.findList(where).forEach((e) -> {
list.add(new Object[] { e.getCategory().getId(), e.getId(), StringUtils.abbr(e.getTitle(), 50) });
});

View File

@@ -147,7 +147,7 @@ public class CmsUtils {
// 增加获取层次级别条件
List<Integer> sortGradeList = ListUtils.newArrayList();
for (String s : StringUtils.split(sortGrades, ",")) {
for (String s : StringUtils.splitComma(sortGrades)) {
sortGradeList.add(ObjectUtils.toInteger(s));
}
category.setSortGradeList(sortGradeList);
@@ -370,7 +370,7 @@ public class CmsUtils {
String outlineViewOfSiteCodes = Global.getConfig("cms.article.outlineViewOfSiteCodes");
if (StringUtils.isNotBlank(outlineViewOfSiteCodes) && !"0".equals(outlineViewOfSiteCodes)) {
if (category.getSite() != null && StringUtils.isNotBlank(category.getSite().getSiteCode())) {
if (StringUtils.inString(category.getSite().getSiteCode(), StringUtils.split(outlineViewOfSiteCodes, ","))) {
if (StringUtils.inString(category.getSite().getSiteCode(), StringUtils.splitComma(outlineViewOfSiteCodes))) {
if (!StringUtils.contains(str.toString(), "&outlineView=")) {
str.append("&outlineView=true");
}

View File

@@ -33,8 +33,8 @@ public class PostListType implements FieldType {
*/
@Override
public Object getValue(String val) {
List<String> list = new ArrayList<String>();
for (String s : StringUtils.split(val, ",")) {
List<String> list = new ArrayList<>();
for (String s : StringUtils.splitComma(val)) {
for (Post e : postList) {
if (StringUtils.trimToEmpty(s).equals(e.getPostName())) {
list.add(e.getPostCode());

View File

@@ -33,8 +33,8 @@ public class RoleListType implements FieldType {
*/
@Override
public Object getValue(String val) {
List<String> list = new ArrayList<String>();
for (String s : StringUtils.split(val, ",")) {
List<String> list = new ArrayList<>();
for (String s : StringUtils.splitComma(val)) {
for (Role e : roleList) {
if (StringUtils.trimToEmpty(s).equals(e.getRoleName())) {
list.add(e.getRoleCode());

View File

@@ -28,14 +28,12 @@ public class LogInterceptorConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
InterceptorRegistration registration = registry.addInterceptor(new LogInterceptor());
String apps = Global.getProperty("web.interceptor.log.addPathPatterns");
String epps = Global.getProperty("web.interceptor.log.excludePathPatterns");
for (String uri : StringUtils.split(apps, ",")){
for (String uri : StringUtils.splitComma(Global.getProperty("web.interceptor.log.addPathPatterns"))){
if (StringUtils.isNotBlank(uri)){
registration.addPathPatterns(StringUtils.trim(uri));
}
}
for (String uri : StringUtils.split(epps, ",")){
for (String uri : StringUtils.splitComma(Global.getProperty("web.interceptor.log.excludePathPatterns"))){
if (StringUtils.isNotBlank(uri)){
registration.excludePathPatterns(StringUtils.trim(uri));
}

View File

@@ -28,14 +28,12 @@ public class MobileViewInterceptorConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
InterceptorRegistration registration = registry.addInterceptor(new MobileInterceptor());
String apps = Global.getProperty("web.interceptor.mobile.addPathPatterns");
String epps = Global.getProperty("web.interceptor.mobile.excludePathPatterns");
for (String uri : StringUtils.split(apps, ",")){
for (String uri : StringUtils.splitComma(Global.getProperty("web.interceptor.mobile.addPathPatterns"))){
if (StringUtils.isNotBlank(uri)){
registration.addPathPatterns(StringUtils.trim(uri));
}
}
for (String uri : StringUtils.split(epps, ",")){
for (String uri : StringUtils.splitComma(Global.getProperty("web.interceptor.mobile.excludePathPatterns"))){
if (StringUtils.isNotBlank(uri)){
registration.excludePathPatterns(StringUtils.trim(uri));
}

View File

@@ -106,8 +106,8 @@ public class MsgInnerService extends CrudService<MsgInnerDao, MsgInner> {
empUser.setCodes(new String[]{});
empUserList = empUserService.findUserList(empUser);
}else{
String[] codes = StringUtils.split(msgInner.getReceiveCodes(), ",");
String[] names = StringUtils.split(msgInner.getReceiveNames(), ",");
String[] codes = StringUtils.splitComma(msgInner.getReceiveCodes());
String[] names = StringUtils.splitComma(msgInner.getReceiveNames());
if (codes != null && names != null && codes.length > 0 && codes.length == names.length){
EmpUser empUser = new EmpUser();
empUser.setCodes(codes);
@@ -144,7 +144,7 @@ public class MsgInnerService extends CrudService<MsgInnerDao, MsgInner> {
if (empUserList == null || empUserList.size() <= 0){
return;
}
String[] notifyTypes = StringUtils.split(msgInner.getNotifyTypes(), ",");
String[] notifyTypes = StringUtils.splitComma(msgInner.getNotifyTypes());
List<MsgInnerRecord> recordList = ListUtils.newArrayList();
empUserList.forEach(user -> {
MsgInnerRecord r = new MsgInnerRecord();

View File

@@ -4,25 +4,23 @@
*/
package com.jeesite.modules.sys.entity;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import org.apache.commons.lang3.StringUtils;
import com.jeesite.common.collect.ListUtils;
import com.jeesite.common.entity.BaseEntity;
import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.entity.Extend;
import com.jeesite.common.entity.TreeEntity;
import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.JoinTable;
import com.jeesite.common.mybatis.annotation.JoinTable.Type;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 公司管理Entity
* @author ThinkGem
@@ -32,35 +30,35 @@ import com.jeesite.common.mybatis.mapper.query.QueryType;
@Column(includeEntity=BaseEntity.class),
@Column(includeEntity=DataEntity.class),
@Column(includeEntity=TreeEntity.class),
@Column(name="company_code", attrName="companyCode", label="公司编码", isPK=true),
@Column(name="view_code", attrName="viewCode", label="公司代码"),
@Column(name="company_name", attrName="companyName", label="公司名称", queryType=QueryType.LIKE, isTreeName=true),
@Column(name="full_name", attrName="fullName", label="公司全称", queryType=QueryType.LIKE),
@Column(name="area_code", attrName="area.areaCode", label="区域编码"),
@Column(name="company_code", attrName="companyCode", label="公司编码", isPK=true),
@Column(name="view_code", attrName="viewCode", label="公司代码"),
@Column(name="company_name", attrName="companyName", label="公司名称", queryType=QueryType.LIKE, isTreeName=true),
@Column(name="full_name", attrName="fullName", label="公司全称", queryType=QueryType.LIKE),
@Column(name="area_code", attrName="area.areaCode", label="区域编码"),
@Column(includeEntity=Extend.class, attrName="extend"),
}, joinTable={
@JoinTable(type=Type.LEFT_JOIN, entity=Area.class, alias="b",
on="b.area_code = a.area_code",
columns={
@Column(name="area_code", label="区域代码", isPK=true),
@Column(name="area_name", label="区域名称", isQuery=false),
@Column(name="area_type", label="区域类型"),
@Column(name="tree_names", label="区域全称"),
}),
@Column(name="area_code", label="区域代码", isPK=true),
@Column(name="area_name", label="区域名称", isQuery=false),
@Column(name="area_type", label="区域类型"),
@Column(name="tree_names", label="区域全称"),
}),
}, extWhereKeys="dsf", orderBy="a.tree_sorts, a.company_code"
)
public class Company extends TreeEntity<Company> {
private static final long serialVersionUID = 1L;
private String companyCode; // 公司编码
private String viewCode; // 公司代码
private String companyName; // 公司名称
private String fullName; // 公司全称
private Area area; // 区域编码
private Extend extend; // 扩展字段
private List<CompanyOffice> companyOfficeList = ListUtils.newArrayList(); // 公司所包含的部门信息
private static final long serialVersionUID = 1L;
private String companyCode; // 公司编码
private String viewCode; // 公司代码
private String companyName; // 公司名称
private String fullName; // 公司全称
private Area area; // 区域编码
private Extend extend; // 扩展字段
private final List<CompanyOffice> companyOfficeList = ListUtils.newArrayList(); // 公司所包含的部门信息
public Company() {
this(null);
}
@@ -68,7 +66,7 @@ public class Company extends TreeEntity<Company> {
public Company(String id){
super(id);
}
@Override
public Company getParent() {
return parent;
@@ -78,7 +76,7 @@ public class Company extends TreeEntity<Company> {
public void setParent(Company parent) {
this.parent = parent;
}
public String getCompanyCode() {
return companyCode;
}
@@ -86,7 +84,7 @@ public class Company extends TreeEntity<Company> {
public void setCompanyCode(String companyCode) {
this.companyCode = companyCode;
}
@NotBlank(message="公司代码不能为空")
@Pattern(regexp="[a-zA-Z0-9_]{0,30}", message="代码长度不能大于 30 个字符,并且只能包含字母、数字、下划线")
public String getViewCode() {
@@ -96,7 +94,7 @@ public class Company extends TreeEntity<Company> {
public void setViewCode(String viewCode) {
this.viewCode = viewCode;
}
@NotBlank(message="公司名称不能为空")
@Size(min=0, max=200, message="公司名称长度不能超过 200 个字符")
public String getCompanyName() {
@@ -106,7 +104,7 @@ public class Company extends TreeEntity<Company> {
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
@NotBlank(message="公司全称不能为空")
@Size(min=0, max=200, message="公司全称长度不能超过 200 个字符")
public String getFullName() {
@@ -116,7 +114,7 @@ public class Company extends TreeEntity<Company> {
public void setFullName(String fullName) {
this.fullName = fullName;
}
public Area getArea() {
return area;
}
@@ -124,7 +122,7 @@ public class Company extends TreeEntity<Company> {
public void setArea(Area area) {
this.area = area;
}
public Extend getExtend() {
return extend;
}
@@ -136,9 +134,9 @@ public class Company extends TreeEntity<Company> {
public List<CompanyOffice> getCompanyOfficeList() {
return companyOfficeList;
}
public void setOfficeCodes(String officeCodes) {
String[] list = StringUtils.split(officeCodes, ",");
String[] list = StringUtils.splitComma(officeCodes);
if (list != null){
for (String val : list){
if (StringUtils.isNotBlank(val)){
@@ -151,5 +149,5 @@ public class Company extends TreeEntity<Company> {
}
}
}
}

View File

@@ -155,7 +155,7 @@ public class Employee extends DataEntity<Employee> {
}
public void setEmployeePosts(String employeePosts) {
String[] list = StringUtils.split(employeePosts, ",");
String[] list = StringUtils.splitComma(employeePosts);
for (String val : list){
if (StringUtils.isNotBlank(val)){
EmployeePost e = new EmployeePost();