Skip to content

Commit 2b14f83

Browse files
author
zhaoyuanli6
committed
spring 操作util
1 parent aab3f71 commit 2b14f83

File tree

3 files changed

+204
-18
lines changed

3 files changed

+204
-18
lines changed

pom.xml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -201,36 +201,36 @@
201201
<dependency>
202202
<groupId>org.activiti</groupId>
203203
<artifactId>activiti-engine</artifactId>
204-
<version>5.16</version>
204+
<version>6.0.0</version>
205205
<scope>test</scope>
206206
</dependency>
207207
<dependency>
208208
<groupId>org.activiti</groupId>
209209
<artifactId>activiti-bpmn-converter</artifactId>
210-
<version>5.16</version>
210+
<version>6.0.0</version>
211211
</dependency>
212212
<dependency>
213213
<groupId>org.activiti</groupId>
214214
<artifactId>activiti-bpmn-model</artifactId>
215215
<version>6.0.0</version>
216216
</dependency>
217-
<dependency>
218-
<groupId>org.activiti</groupId>
219-
<artifactId>activiti-bpmn-layout</artifactId>
220-
<version>5.16</version>
221-
</dependency>
217+
<!--<dependency>-->
218+
<!--<groupId>org.activiti</groupId>-->
219+
<!--<artifactId>activiti-bpmn-layout</artifactId>-->
220+
<!--<version>6.0.0</version>-->
221+
<!--</dependency>-->
222222
<dependency>
223223
<groupId>joda-time</groupId>
224224
<artifactId>joda-time</artifactId>
225225
<version>2.7</version>
226226
</dependency>
227227

228228
<!-- activiti与spring整合依赖 -->
229-
<dependency>
230-
<groupId>org.activiti</groupId>
231-
<artifactId>activiti-spring</artifactId>
232-
<version>5.16</version>
233-
</dependency>
229+
<!--<dependency>-->
230+
<!--<groupId>org.activiti</groupId>-->
231+
<!--<artifactId>activiti-spring</artifactId>-->
232+
<!--<version>6.0.0</version>-->
233+
<!--</dependency>-->
234234

235235

236236
<!-- slf4j -->

src/main/java/com/code/repository/util/DateUtil.java

Lines changed: 62 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.code.repository.util;
22

33
import org.apache.commons.lang3.StringUtils;
4+
import org.apache.commons.lang3.time.DateUtils;
45

56
import java.math.BigDecimal;
67
import java.text.Format;
@@ -410,6 +411,19 @@ public static List<Map<String,Object>> getStartEndDateByMonth(Date startDate,Dat
410411
return monthList;
411412
}
412413

414+
public static long getBetweenHours(Date start, Date end){
415+
try {
416+
if (start == null || end == null || start.getTime() > end.getTime()){
417+
return 0;
418+
}
419+
long time = end.getTime() - start.getTime();
420+
long hour = time / 1000 / (60 * 60);
421+
return hour;
422+
}catch (Exception e){
423+
return 0;
424+
}
425+
}
426+
413427
/**
414428
* 默认时间之前几天
415429
*
@@ -444,6 +458,8 @@ public static Date toDayBegin(Date date) {
444458

445459
public static void main(String[] args) {
446460

461+
toDayBegin(null);
462+
447463
// System.out.println(DateUtil.toDayBegin(new Date()));
448464
// String start = "2013-01-01 20:00:00";
449465
// String end = "2013-03-11 12:03:40";
@@ -453,13 +469,23 @@ public static void main(String[] args) {
453469
// System.out.println(formatDate((Date) m.get("start"))+" ##"+formatDate((Date) m.get("end")));
454470
// }
455471
// System.out.println(123);
472+
//
473+
// Date ss = DateUtil.toDayBegin(DateUtil.dateBefore(new Date(),1));
474+
//
475+
// Date ss1 = DateUtil.dateBefore(new Date(),0);
476+
// System.out.println(ss);
477+
// System.out.println(ss1);
478+
// System.out.println(ss.getTime());
479+
// System.out.println(ss1.getTime());
480+
481+
482+
Date ss00 =DateUtil.parseYyyyMMddHHmmss("2018-11-11 12:20:00");
483+
Date ss01 =DateUtil.parseYyyyMMddHHmmss("2018-11-12 12:00:00");
484+
485+
System.out.println(ss00.getTime());
486+
System.out.println(ss01.getTime());
487+
456488

457-
Date ss = DateUtil.dateBefore(new Date(),4);
458-
Date ss1 = DateUtil.dateBefore(new Date(),2);
459-
System.out.println(ss);
460-
System.out.println(ss1);
461-
System.out.println(ss.getTime());
462-
System.out.println(ss1.getTime());
463489
//
464490
// String num = "51696521212.230";
465491
// System.out.println(Float.valueOf(num).intValue());
@@ -471,6 +497,36 @@ public static void main(String[] args) {
471497
// String ss = "[2]电子口岸申报中,desc: 清单新增申报成功[电商企业编码:3301968FU0订单编号:223299468117755430],操作人:sys";
472498
// System.out.println(ss.length());
473499
// System.out.println(ss.substring(0,200));
500+
// System.out.println(DateUtil.class.getSimpleName());
501+
//
502+
// Object we = null;
503+
// System.out.println((String)we);
504+
505+
// List<Date> sdate = DateUtil.splitPayTime(ss00,ss01);
506+
// System.out.println(sdate.size());
507+
// for(Date date : sdate){
508+
// System.out.println(date);
509+
// }
510+
511+
}
512+
513+
514+
515+
public static List<Date> splitPayTime(Date startTime, Date endTime) {
516+
List<Date> payTimes = new ArrayList<>();
517+
long hours = DateUtil.getBetweenHours(startTime, endTime);
518+
if (hours < 1) {
519+
return payTimes;
520+
}
521+
for (int i = 0; i < hours+1; i++) {
522+
if (startTime.getTime() >= endTime.getTime()) {
523+
return payTimes;
524+
}
525+
payTimes.add(startTime);
526+
// 向后移动一个小时
527+
startTime = DateUtils.addHours(startTime, 1);
528+
}
529+
return payTimes;
474530
}
475531

476532
}
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
package com.code.repository.util;
2+
3+
import org.springframework.beans.factory.config.BeanDefinition;
4+
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
5+
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
6+
import org.springframework.beans.factory.support.GenericBeanDefinition;
7+
import org.springframework.context.ApplicationContext;
8+
import org.springframework.context.ApplicationContextAware;
9+
import org.springframework.context.ConfigurableApplicationContext;
10+
11+
import java.util.Map;
12+
13+
/**
14+
* Spring容器工具类
15+
* 注入bean,获取bean操作
16+
*/
17+
public class SpringContextUtils implements ApplicationContextAware {
18+
19+
// spring容器
20+
private static ApplicationContext applicationContext;
21+
22+
public static void init(ApplicationContext context) {
23+
applicationContext = context;
24+
}
25+
26+
public void setApplicationContext(ApplicationContext context) {
27+
applicationContext = context;
28+
}
29+
30+
public static <T> T getBean(Class<T> clazz) {
31+
return applicationContext.getBean(clazz);
32+
}
33+
34+
public static Object getBean(String name) {
35+
return applicationContext.getBean(name);
36+
}
37+
38+
/**
39+
* 注册bean到spring
40+
*/
41+
public static void registerBean(String name, Object bean) {
42+
43+
ConfigurableApplicationContext context = (ConfigurableApplicationContext) applicationContext;
44+
// 根据bean上对应的注解,通过spring容器注入依赖
45+
context.getBeanFactory().autowireBean(bean);
46+
// 将当前对象注入到spirng容器中
47+
context.getBeanFactory().registerSingleton(name, bean);
48+
}
49+
50+
/**
51+
* 避免重复注册bean到spring容器
52+
*/
53+
public static void registerIfNotExist(Class<?> clazz) {
54+
55+
// boolean includeNonSingletons, boolean allowEagerInit
56+
Map<String, ?> beanMap = applicationContext.getBeansOfType(clazz, false, false);
57+
58+
String beanId = springDefaultBeanName(clazz.getSimpleName());
59+
60+
// 判断是否已存在相同ID
61+
if (beanMap.size() == 1 || beanMap.containsKey(beanId)) {
62+
return;
63+
}
64+
65+
registerBean(beanId, clazz);
66+
}
67+
68+
/**
69+
* 从spring容器中获取bean,如果存在一个直接取出,如果存在多个,根据spring默认的bean名获取
70+
*/
71+
public static <T> T getMatchedBean(Class<T> clazz) {
72+
T beanObj = null;
73+
74+
// boolean includeNonSingletons, boolean allowEagerInit
75+
Map<String, T> beanMap = applicationContext.getBeansOfType(clazz, false, false);
76+
77+
String beanId = springDefaultBeanName(clazz.getSimpleName());
78+
79+
if (beanMap.size() == 1) {
80+
beanObj = applicationContext.getBean(clazz);
81+
} else {
82+
beanObj = beanMap.get(beanId);
83+
}
84+
85+
return beanObj;
86+
}
87+
88+
/**
89+
* spring默认beanName
90+
*/
91+
public static String springDefaultBeanName(String classSimpleName) {
92+
char[] ch = classSimpleName.toCharArray();
93+
94+
//判断首字母大写且第二个字母是小写时,将首字母转换成小写
95+
if (ch[0] >= 'A' && ch[0] <= 'Z' && ch[1] >= 'a' && ch[1] <= 'z') {
96+
ch[0] = (char) (ch[0] + 32);
97+
}
98+
return new String(ch);
99+
}
100+
101+
/**
102+
* 注册class到spring
103+
*/
104+
public static void registerBean(String id, Class<?> clazz) {
105+
106+
ConfigurableApplicationContext context = (ConfigurableApplicationContext) applicationContext;
107+
DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) context.getBeanFactory();
108+
109+
// 注册对象到spring容器中
110+
BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(clazz);
111+
// dataSourceBuider.addPropertyValue("msg", "hello ");
112+
beanFactory.registerBeanDefinition(id, beanDefinitionBuilder.getBeanDefinition());
113+
114+
}
115+
116+
/**
117+
* 注册className到spring
118+
*/
119+
public static void registerBean(String id, String className) {
120+
ConfigurableApplicationContext context = (ConfigurableApplicationContext) applicationContext;
121+
DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) context.getBeanFactory();
122+
123+
// 注册对象到spring容器中
124+
BeanDefinition beanDefinition = new GenericBeanDefinition();
125+
beanDefinition.setBeanClassName(className);
126+
// beanDefinition.getPropertyValues().add("msg", "hello ");
127+
beanFactory.registerBeanDefinition(id, beanDefinition);
128+
}
129+
130+
}

0 commit comments

Comments
 (0)