Skip to content

Commit 25f6921

Browse files
committed
Merge remote-tracking branch 'origin/develop'
2 parents bc53850 + e3752d4 commit 25f6921

File tree

12 files changed

+132
-58
lines changed

12 files changed

+132
-58
lines changed

src/main/java/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@
66
* `TestController`-一些乱七八糟的测试...
77
* `MySpringTextWsHandler`spring-websocket测试
88
* `UserController`测试数据获取、json/pdf/excel视图
9+
---
910

1011
> 使用idea编译工程需要在maven pom.xml中配置打包xml/properties资源,默认idea不打包,eclipse会打包

src/main/java/cn/com/ttblog/ssmbootstrap_table/controller/UserController.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,4 +180,14 @@ public ModelAndView showUserXML(HttpServletRequest request, Model model) {
180180
us.add(userService.getUserById(2));
181181
return us;
182182
}
183+
184+
/**
185+
* 测试异步方法执行
186+
*/
187+
@RequestMapping(value = "/testasync",method = RequestMethod.GET)
188+
public @ResponseBody String testasync() {
189+
//会立即返回响应success
190+
userService.execute();
191+
return "success";
192+
}
183193
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package cn.com.ttblog.ssmbootstrap_table.listener;
2+
3+
import cn.com.ttblog.ssmbootstrap_table.event.LoginEvent;
4+
import org.slf4j.Logger;
5+
import org.slf4j.LoggerFactory;
6+
import org.springframework.context.ApplicationListener;
7+
import org.springframework.scheduling.annotation.Async;
8+
import org.springframework.stereotype.Component;
9+
import java.util.concurrent.TimeUnit;
10+
11+
@Component
12+
public class LoginProcessListener implements ApplicationListener<LoginEvent> {
13+
14+
private static final Logger LOG=LoggerFactory.getLogger(LoginProcessListener.class);
15+
16+
/**
17+
* @Async异步处理
18+
*/
19+
@Async
20+
@Override
21+
public void onApplicationEvent(LoginEvent loginEvent) {
22+
LOG.warn("开始异步记录用户登录日志");
23+
try {
24+
TimeUnit.SECONDS.sleep(10);
25+
} catch (InterruptedException e) {
26+
LOG.error("sleep error",e);
27+
}
28+
LOG.warn("结束异步记录用户登录日志:{}",loginEvent);
29+
}
30+
}

src/main/java/cn/com/ttblog/ssmbootstrap_table/service/IUserService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ public interface IUserService {
1818
public void addUM();
1919
public void addUMtest() throws IllegalArgumentException;
2020
public void deleteById(Long id);
21+
void execute();
2122
}

src/main/java/cn/com/ttblog/ssmbootstrap_table/serviceimpl/UserServiceImpl.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.List;
55
import java.util.Map;
66
import java.util.Random;
7+
import java.util.concurrent.TimeUnit;
78

89
import javax.annotation.Resource;
910

@@ -13,6 +14,7 @@
1314
import org.slf4j.Logger;
1415
import org.slf4j.LoggerFactory;
1516
import org.springframework.cache.annotation.Cacheable;
17+
import org.springframework.scheduling.annotation.Async;
1618
import org.springframework.stereotype.Service;
1719
import org.springframework.transaction.annotation.Transactional;
1820
import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -128,4 +130,16 @@ public User getUserByName(String userName) {
128130
return userDao.selectByName(userName);
129131
}
130132

133+
@Async
134+
@Override
135+
public void execute() {
136+
logger.warn("异步方法开始执行");
137+
try {
138+
TimeUnit.SECONDS.sleep(10);
139+
} catch (InterruptedException e) {
140+
e.printStackTrace();
141+
}
142+
logger.warn("异步方法结束执行");
143+
}
144+
131145
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package cn.com.ttblog.ssmbootstrap_table.util;
2+
3+
import org.springframework.context.annotation.Configuration;
4+
import org.springframework.scheduling.annotation.EnableAsync;
5+
6+
/**
7+
* 启用异步方法
8+
* 发现在xml中配置<task:annotation-driven></task:annotation-driven>不生效,
9+
* 基于java config是生效的
10+
* http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scheduling/annotation/EnableAsync.html
11+
*/
12+
@Configuration
13+
@EnableAsync
14+
public class Config {
15+
}

src/main/resources/spring/spring-context.xml

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<beans xmlns="http://www.springframework.org/schema/beans"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
4-
xmlns:context="http://www.springframework.org/schema/context"
5-
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc"
6-
xmlns:tx="http://www.springframework.org/schema/tx"
7-
xsi:schemaLocation="http://www.springframework.org/schema/beans
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:context="http://www.springframework.org/schema/context"
5+
xmlns:aop="http://www.springframework.org/schema/aop"
6+
xsi:schemaLocation="http://www.springframework.org/schema/beans
87
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
98
http://www.springframework.org/schema/context
10-
http://www.springframework.org/schema/context/spring-context-4.0.xsd
11-
http://www.springframework.org/schema/mvc
12-
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
13-
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
14-
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
15-
9+
http://www.springframework.org/schema/context/spring-context-4.0.xsd
10+
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
11+
<description>
12+
spring主配置文件
13+
</description>
14+
1615
<context:component-scan base-package="cn.com.ttblog.ssmbootstrap_table">
1716
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
1817
<context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" />
@@ -25,7 +24,6 @@
2524
<value>classpath*:app.properties</value>
2625
<value>classpath*:jdbc.properties</value>
2726
<value>classpath*:jmx.properties</value>
28-
<value>classpath*:swagger.properties</value>
2927
</list>
3028
</property>
3129
</bean>
@@ -35,11 +33,11 @@
3533
</bean>
3634

3735
<!-- 启用aop -->
38-
<aop:aspectj-autoproxy/>
36+
<aop:aspectj-autoproxy expose-proxy="true"></aop:aspectj-autoproxy>
3937

4038
<!-- 加载资源文件 -->
4139
<import resource="spring-mybatis.xml" />
42-
<import resource="spring-jmx.xml" />
40+
<!--<import resource="spring-jmx.xml" />-->
4341
<import resource="classpath*:cxf/cxf.xml" />
4442
<import resource="spring-ehcache.xml"/>
4543
<import resource="spring-websocket.xml"/>
@@ -71,4 +69,4 @@
7169
<property name="name" value="production-user" />
7270
</bean>
7371
</beans>
74-
</beans>
72+
</beans>

src/main/resources/spring/spring-jmx.xml

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,8 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<beans xmlns="http://www.springframework.org/schema/beans"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
4-
xmlns:context="http://www.springframework.org/schema/context"
5-
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc"
6-
xmlns:tx="http://www.springframework.org/schema/tx"
7-
xsi:schemaLocation="http://www.springframework.org/schema/beans
8-
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
9-
http://www.springframework.org/schema/context
10-
http://www.springframework.org/schema/context/spring-context-3.2.xsd
11-
http://www.springframework.org/schema/mvc
12-
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
13-
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
14-
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://www.springframework.org/schema/beans
5+
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
156
<bean
167
class="org.springframework.jmx.export.annotation.AnnotationMBeanExporter" />
178
<bean name="beanMonitor" class="cn.com.ttblog.ssmbootstrap_table.mbean.BeanMonitor"></bean>

src/test/java/cn/com/ttblog/ssmbootstrap_table/TestDelListContent.java

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,16 @@
11
package cn.com.ttblog.ssmbootstrap_table;
22

3-
import java.util.ArrayList;
4-
import java.util.Arrays;
5-
import java.util.HashSet;
6-
import java.util.Iterator;
7-
import java.util.List;
8-
import java.util.Set;
9-
10-
import net.sourceforge.pinyin4j.PinyinHelper;
11-
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
12-
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
13-
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
14-
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
15-
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
16-
3+
import cn.com.ttblog.ssmbootstrap_table.model.User;
174
import org.junit.Ignore;
185
import org.junit.Test;
196
import org.slf4j.Logger;
207
import org.slf4j.LoggerFactory;
218

22-
import cn.com.ttblog.ssmbootstrap_table.model.User;
9+
import java.util.*;
2310

2411
public class TestDelListContent {
25-
26-
private static Logger logger = LoggerFactory.getLogger(TestMyBatis.class);
12+
13+
private static Logger logger = LoggerFactory.getLogger(TestDelListContent.class);
2714

2815
@Test
2916
@Ignore
@@ -53,7 +40,7 @@ public void testSystemProperties() {
5340
}
5441
System.out.println(arr.toString());
5542
}
56-
43+
5744
@Test
5845
public void testAddToIndex() {
5946
List<String> arr=new ArrayList<String>();
@@ -63,19 +50,19 @@ public void testAddToIndex() {
6350
arr.add("4");
6451
arr.add("5");
6552
arr.add("6");
66-
53+
6754
System.out.println("arr->tostring:"+arr.toString());
6855
System.out.println("arr->deeptostring:"+Arrays.deepToString(arr.toArray()));
69-
56+
7057
List<User> listuser=new ArrayList<User>();
71-
58+
7259
listuser.add(new User("1", "男", 22, "", "",23, "", null,null));
7360
listuser.add(new User("2", "男", 22, "", "",23, "", null,null));
7461
listuser.add(new User("3", "男", 22, "", "",23, "", null,null));
75-
62+
7663
System.out.println("listuser->tostring:"+listuser.toString());
7764
System.out.println("listuser->deeptostring:"+Arrays.deepToString(listuser.toArray()));
78-
65+
7966
List<String> arr2=new ArrayList<String>();
8067
arr2.add("7");
8168
arr2.add("8");

src/test/java/cn/com/ttblog/ssmbootstrap_table/TestJodaTime.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,25 @@
66

77
import org.joda.time.DateTime;
88
import org.joda.time.DateTimeUtils;
9+
import org.joda.time.LocalDate;
10+
import org.joda.time.LocalTime;
911
import org.junit.Ignore;
1012
import org.junit.Test;
1113
import org.slf4j.Logger;
1214
import org.slf4j.LoggerFactory;
1315

1416
import cn.com.ttblog.ssmbootstrap_table.util.JodaTimeUtil;
1517

18+
/**
19+
* LocalDate - date without time
20+
LocalTime - time without date
21+
Instant - an instantaneous point on the time-line
22+
DateTime - full date and time with time-zone
23+
DateTimeZone - a better time-zone
24+
Duration and Period - amounts of time
25+
Interval - the time between two instants
26+
A comprehensive and flexible formatter-parser
27+
*/
1628
//@Ignore
1729
public class TestJodaTime {
1830
Logger log = LoggerFactory.getLogger(this.getClass());
@@ -121,4 +133,22 @@ public void parse(){
121133
public void getTimeStamp(){
122134
System.out.println("timestamp:"+System.currentTimeMillis());
123135
}
136+
137+
@Test
138+
public void test() {
139+
LocalDate localDate = new LocalDate();
140+
System.out.println("localDate:" + localDate);
141+
System.out.println("localDate.toDate():" + localDate.toDate());
142+
LocalTime localTime=new LocalTime();
143+
System.out.println("localTime:"+localTime);
144+
System.out.println("localTime.toDateTimeToday():"+localTime.toDateTimeToday());
145+
LocalTime minTime=new LocalTime(0,0,0,0);
146+
LocalTime maxTime=new LocalTime(23,59,59,59);
147+
System.out.println("maxTime:"+maxTime);
148+
System.out.println("maxTime:"+maxTime.toDateTimeToday());
149+
System.out.println("昨天的时间从:"+minTime.toDateTimeToday().plusDays(-1)+"到:"+maxTime.toDateTimeToday().plusDays(-1));
150+
DateTime d1=new DateTime();
151+
DateTime d2=new DateTime().plusMinutes(2);
152+
System.out.println("d2.compareTo(d1):"+d2.compareTo(d1));
153+
}
124154
}

0 commit comments

Comments
 (0)