自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (5)
  • 收藏
  • 关注

原创 golang 实现goroutine顺序输出

golang 实现goroutine顺序输出原理:waitgroup 保证协程阻塞,执行完毕。chan是有序的(先进先出)保证循序执行。func main() { str := make([]string, 0) str = append(str, "1") str = append(str, "2") str = append(str, "3") str = append(str, "4") str = append(str, "5") str = append(str, "6")

2021-06-11 18:00:56 551

原创 记录一次本地正常,线上页面无渲染的问题

发现是:异步请求跟页面渲染有时间差导致的所以改成在页面初始化的时候就 通过ajax从后台查数据

2019-10-12 15:56:00 374

原创 filter,interceptor,listener;三者的关系,执行顺序,以及线程安全性。

一、概念:1、servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。2、filter:filter是一个可以复用的代码片段,可以用来转换HTTP请求、响应和头信息。Filter不像Servlet,它不能产生一个请求或者响应,它只是修改对某一资源...

2019-09-25 23:03:26 724

原创 POI导入

controller:mezura-sa AreaController /** * 地域模板文件下载 * @param response */ @GetMapping(BranchUrl.AREA_DOWNLOAD_TEMPLATE) public void download(HttpServletResponse response){...

2019-09-05 14:37:26 235

原创 POI导出

controller:mezura-sa UserAccountController /** * 导出会员账户列表 * @param userAccountVo * @return */ @RequestMapping(BranchUrl.ACCOUNT_EXPORT) public PageData ExportUserAccount...

2019-09-05 14:27:32 170

原创 tomcat org.apache.catalina.core.StandardServer.await StandardServer.await: create[localhost:80]

10-May-2019 01:17:25.407 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-80"]10-May-2019 01:17:25.407 INFO [main] org.apache.coyote.AbstractProtocol.start St...

2019-05-10 10:12:37 11193 2

原创 SpringBoot文件单个上传下载,批量上传下载

多个上传https://www.jianshu.com/p/85017f5ecba1多个下载https://blog.csdn.net/zf18234031156/article/details/83744097https://blog.csdn.net/lqz1993/article/details/84855655

2019-04-29 17:33:47 1376

原创 分享一个小工具:Excel表快速转换成JSON字符串

在游戏项目中一般都需要由策划制作大量的游戏内容,其中很大一部分是使用Excel表来制作的。于是程序就需要把Excel文件转换成程序方便读取的格式。之前项目使用的Excel表导入工具都是通过Office Excel组件来实现数据访问的,效率十分令人不满。一个端游项目一般要上百个表格,手游项目20、30个表格基本也是要的,于是表格导入程序的过程一般要几分钟,项目后期要接近半个小时。此次分享的小...

2019-04-28 16:49:27 2594

原创 mybatis报错:java.lang.NumberFormatException: For input string

由改为或者:<if test="index == 'A'">改为<if test='index == "A"'>

2019-04-23 15:46:22 773

原创 MYBATIS MYSQL 获取当前时间戳

如图。附上参考链接:https://www.cnblogs.com/ggjucheng/p/3352280.html

2019-04-18 17:25:41 8896

原创 mybatis:Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the man

报错信息如下:java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' ' at line 7] with root ...

2019-04-17 17:08:47 22109

原创 SQL Count(*)函数,GROUP_By,Having的联合使用

SELECT v.*,count(*) from video vLEFT JOIN tags t on t.video_id =v.idwhere t.tag in(1,2,3) GROUP BY v.id HAVING(COUNT(*)>=3)常用于多对一(一对多)查询我想查 tag=1,tag=2,tag=3得数据,如果不加HAVING(COUNT(*)>=3),则ta...

2019-04-09 15:11:25 388

原创 IDEA mapper 报错:Invalid bound statement (not found)

抛开mybatis bing 问题不谈,很有可能是target 路径下mapper.xml未编译。解决:在pom.xml添加<resources> <!-- maven项目中src源代码下的xml等资源文件编译进classes文件夹, 注意:如果没有这个,它会自动搜索resources下是否有mapper.xml文件,...

2019-04-08 18:12:49 2482

原创 报错:java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

不要怀疑,就是配置文件有问题。检查app.properties,app-dev.properties,app-pro.properties,以及db.properties.总有一个有问题。

2019-04-01 17:14:41 299

转载 fastjson List转JSONArray以及JSONArray转List

1.fastjsonList转JSONArrayList<T> list = new ArrayList<T>();JSONArray array= JSONArray.parseArray(JSON.toJSONString(list));2.fastjsonJSONArray转ListJSONArray array = new JSONArray()...

2019-03-26 15:43:01 1067

原创 System.currentTimeMillis()计算方式与时间的单位转换

一、时间的单位转换1秒=1000毫秒(ms)1毫秒=1/1,000秒(s)1秒=1,000,000微秒(μs)1微秒=1/1,000,000秒(s)1秒=1,000,000,000纳秒(ns)1纳秒=1/1,000,000,000秒(s)1秒=1,000,000,000,000皮秒(ps)1皮秒=1/1,000,000,000,000秒(s)1分钟=60秒1小时=6...

2019-03-26 10:29:39 191575 8

原创 decompiled .class file byte version:52.0(java 8)

明明是.java 的项目源码用IDEA打开之后都变成.class 文件不用慌,mmp不要迷信IDEA,project,moudle,sdk都检查一下,重启它几次,会发现.class 文件消失,显示出红色J下表图片。怎么办呢?解决办法如下:一、File里打开project structure找到Modules,其中有个Sources,把右边第一个X点击,去掉Root路径后,重新添加二、在...

2019-03-22 10:25:52 7268

原创 IDEA 报错-source 1.5 中不支持 lambda 表达式(请使用 -source 8 或更高版本以启用 lambda 表达式)

Maven Compiler 插件默认会加 -source 1.5 及 -target 1.5 参数来编译(估计是为了兼容一些比较老的 Linux 服务器操作系统,它们通常只有 JDK 5),而我们的代码里使用了 JDK 7/8 的语法.so:在pom.xml 中添加在rebuild一下发现报错消失<project> [...] <build> ...

2019-03-21 11:59:19 1636

原创 RedisUtil工具类

package com.moyu.redarmy.util;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.stereotype.Componen...

2019-03-20 16:39:37 340

原创 【2019.3.20】redis 可以提供服务但计算机服务启动时报1053

redis 能提供服务redisdesktop 也能连接但计算机服务启动时报1053. 问题小记。

2019-03-20 10:55:53 1131

原创 springboot 使用区分不同环境下不同配置

办法有很多:1.注解:@Profiles()+@ActiveProfiles()@profile注解是spring提供的一个用来标明当前运行环境的注解,@ActiveProfiles用来表示使用哪种环境。当修改@ActiveProfile中的值时,所调用的内容也会随之改变。2.多环境配置:通过application.properties里spring.profiles...

2019-03-19 16:48:02 1059

原创 Spring中使用RedisTemplate操作Redis(spring-data-redis)

http://357029540.iteye.com/blog/2388965http://www.cnblogs.com/songanwei/p/9274348.html 详细

2019-02-25 17:09:44 319

转载 springboot + @scheduled 多任务并发

一、问题项目采用springboot搭建,想给方法添加@Scheduled注解,实现两个定时任务。可是运行发现,两个task并没有并发执行,而是执行完一个task才会执行另外一个。上代码:     package com.autohome.contentplatform.tasks;import org.springframework.beans.fact...

2019-01-07 22:10:28 778

原创 很考java基础的一道题

Test.main() 函数执行后的输出是()public class Test { public static void main(String [] args){ System.out.println(new B().getValue()); } static class A{ protected int valu...

2018-10-24 13:50:53 160

原创 Spring Boot 读取pom.xml中的值

 首先,Java代码中是无法直接读取pom.xml中的内容的,需要先把值转到xxx.properties中,再通过程序读取xxx.properties中对应的值。一、xxx.properties读取pom.xml1.xxx.properties中以pom.xml中的version标签为例。@xx@代表读取pom.xml中的值这里为什么是用@呢:由于${}方式会被maven处...

2018-10-18 14:41:59 8797

原创 通用Login登陆模块(单机项目一)

此登陆模块主要分为两点:1.加密解密:在前端加密,后端解密。2.生成随机码并验证。这里先介绍加密解密部分。/** * 检查用户名称 * * @param user * @param req * @return */ @RequestMapping(params = "checkuser") @ResponseBody public AjaxJson che...

2018-10-17 14:55:32 1196

原创 基于QuartzManager和ScheduleJobInitListener的动态维护定时任务

这里用的是QuartzManager和ScheduleJobInitListener实现的可实时更新的动态定时任务。(修改配置值时实时更新)使用ScheduleJobInitListener来实现实时更新,使用QuartzManager来实现动态维护。ps:(动态维护的本质是更改trigger )下面开始介绍内容:首先项目启动时进入监听器初始化定时任务。//首先项目启动时进入监听...

2018-10-15 17:34:32 1435

原创 Rest模式get,put,post,delete含义与区别(转)

Rest模式get,put,post,delete含义与区别(转)解释代码  POST   /uri     创建   DELETE /uri/xxx 删除    PUT    /uri/xxx 更新或创建   GET    /uri/xxx 查看  GET操作是安全的。所谓安全是指不管进行多少次操作,资源的状态都不会改变。比如我用GET浏览文章,不管浏览多少次,那篇文章还在那...

2018-10-11 11:35:38 174

转载 四、SpringCloud之Feign

  spring cloud的Netflix中提供了两个组件实现软负载均衡调用:ribbon和feign。本例主要讲解feign的适用,如需了解ribbon的适用,可以返回上一章进行阅读。Ribbon是一个基于 HTTP 和 TCP 客户端的负载均衡器它可以在客户端配置 ribbonServerList(服务端列表),然后轮询请求以实现均衡负载。FeignSpring Cloud N...

2018-10-11 11:14:14 86

转载 三、SpringCloud五大神兽之Ribbon(负载均衡)

       Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随即连接等)去连接这些机器。我们也很容易使用Ribbon实现自...

2018-10-11 11:05:32 186

转载 二、SpringCloud五大神兽之Eureka(服务注册与发现)

 ps:此工程为服务提供者集群的创建并且注册到eureka中,同时测试服务的发现,由于主要讲解eureka知识,因此本例中一些其余数据库操作等例子不一一指出,在系列文章结尾会提供完整版例子下载。1、pom文件编写:  &lt;dependencies&gt;&lt;!-- 引入自己定义的api通用包,可以使用Dept部门Entity --&gt;&lt;dependen...

2018-10-11 10:59:54 124

转载 一、SpringCloud五大神兽之Eureka(eurekaServer集群)

基本概念和方案    Eureka是基于REST(Representational State Transfer,代表性状态传输)的服务,主要用于AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移。我们称这个服务为Eureka服务器。Eureka还带有一个基于Java的客户端组件,即Eureka客户端,它使与服务的交互更容易。Eureka-Server1.pom引入依赖:...

2018-10-11 10:50:49 226

原创 eclispe 整合的svn切换账号

1.查看你的Eclipse中使用的是什么SVN Interface(中文:svn接口)windows &gt; preference &gt; Team &gt; SVN     在右边的设置面板中可以看到SVN Interface或中文的svn接口一栏,Client的选项框中显示的就是你当前用的svn接口 2.我在本机找到的目录是 :C:\Users\Administrator(对应...

2018-09-29 09:25:55 162

原创 map根据key进行排序

【java】Comparator的用法 :具体参考https://blog.csdn.net/u012250875/article/details/55126531/这两种其实都差不多,只是匿名内部类的不同写法而已。项目环境jdk7,故没用labmda表达式。第一种: public Map&lt;String, Object&gt; getDataQx(List&lt;ReportT...

2018-09-28 16:50:58 10857

转载 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].Standard

ps:我是换了个tomcat启动,报错消失。启动tomcat报出如下错误: ----------------------------------------------------------------------------------------------------------------------- 严重: ContainerBase.addChild: start:  org....

2018-09-25 14:08:58 566

转载 ORACLE系列异常总结ORA

本文对常见的Oracle使用中的异常解决方案进行总结1.ORACLE异常--ORA系列:ORA-00904 标识符无效 invalid identifier2.ORACLE异常--ORA-00918 未明确定义列 column ambiguously defined3.ORA-00942 表或视图不存在 table or view does not exist4.ORA-00984...

2018-09-20 09:47:50 137

转载 获取时间/时间戳,并比大小

获取当前时间戳的几种方法: 1.System.currentTimeMillis()2.Calendar.getInstance().getTimeInMillis()3.new Date().getTime();注:上面的获取时间戳值都是毫秒级的,返回的都是Long类型,例:1517543078375。可以除以1000换算成秒级的。我们在项目中经常会遇到时间戳比大小...

2018-09-13 18:43:17 3653

原创 jedis常用方法

//连接redis ,redis的默认端口是6379Jedis jedis = new Jedis ("localhost",6379); //验证密码,如果没有设置密码这段代码省略jedis.auth("password"); jedis.connect();//连接jedis.disconnect();//断开连接Set&lt;String&gt; k...

2018-07-18 11:25:54 2402

原创 公共头head.jsp

head.jsp:&lt;%@ page language="java" pageEncoding="UTF-8"%&gt;&lt;meta name="renderer" content="webkit"&gt;&lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;&

2018-07-11 10:00:46 1977

转载 遍历HashMap的四种方法

public static void main(String[] args) { Map&lt;String,String&gt; map=new HashMap&lt;String,String&gt;(); map.put("1", "value1"); map.put("2", "value2"); map.put("3&qu

2018-07-09 16:20:23 299

各类javaUntils整合工具类源码

各类javaUntils整合工具类源码,解压后cv直接使用:Base64ImageUtils.java ConfigUtils.java DateUtils.java DesEncryptUtils.java EncryptUtils.java ExcelBigDataUtils.java ExcelUtils.java FileUtils.java GenUtils.java HttpContextUtils.java ImageUtils.java IPUtils.java JacksonMapper.java PageUtils.java PathUtils.java PropertyBeanUtils.java RedisUtils.java RegexUtils.java ScheduleUtils.java ServiceLocator.java ShiroUtils.java SpringContextUtils.java SpringUtils.java StringUtils.java TestRedis.java TimeStampUtils.java UnixDateUtils.java UrlUtils.java ValidatorUtils.java XmlUtils.java

2019-04-17

spring boot aop 统一处理日志

spring boot aop 统一处理日志 demo spring boot aop 统一处理日志 demo

2018-10-18

tomcat 8.0.52 免安装

apache-tomcat-8.0.52免安装绿色版;apache-tomcat-8.0.52免安装绿色版

2018-07-19

cpmgr运营平台初步demo

@RequestMapping(value = "/insertActivitDiscount", produces = "text/plain;charset=utf-8", method = RequestMethod.POST) @ResponseBody public String insertActivitDiscount(@RequestBody String param,HttpServletRequest request,HttpSession session) { logger.info("enter insert activitDiscount ....."); ResponseVo resVo = new ResponseVo(); resVo.setCmd&#40;"insertActivitDiscount"&#41;; ActivitDiscount activitDiscount = handle(param, resVo); UserLog userLog = userLogService.initUserLog(request, session, "添加优惠活动(优惠活动名称 :"+activitDiscount.getName()+")"); userLog.setKeyWord("添加优惠活动"); userLog.setLoginNameType(1); userLogService.insert(userLog); if (resVo.getResult() != 0) { return JSONObject.toJSON(resVo).toString(); } if (activitDiscount.getName() == null) { resVo.setResult(1); resVo.setStatu(1); resVo.setResultNote("activitDiscount name is null"); logger.error("activitDiscount name is null"); return JSONObject.toJSON(resVo).toString(); } if (activitDiscount.getType() == null) { resVo.setResult(1); resVo.setStatu(1); resVo.setResultNote("type is null"); logger.error("type is null"); return JSONObject.toJSON(resVo).toString(); } // 优惠类型0价格优惠,1时间优惠,2折扣百分比 if (activitDiscount.getType() == 0) { if (activitDiscount.getPrice() == null) { resVo.setResult(1); resVo.setStatu(1); resVo.setResultNote("price is null"); logger.error("price is null"); return JSONObject.toJSON(resVo).toString(); } } else if (activitDiscount.getType() == 1) { if (activitDiscount.getBeginTime() == null || activitDiscount.getEndTime() == null) { resVo.setResult(1); resVo.setStatu(1); resVo.setResultNote("beginTime or endTime is null"); logger.error("beginTime or endTime is null"); return JSONObject.toJSON(resVo).toString(); } } else if (activitDiscount.getType() == 2) { if (activitDiscount.getPercentage() == null) { resVo.setResult(1); resVo.setStatu(1); resVo.setResultNote("percentage is null"); logger.error("percentage is null"); return JSONObject.toJSON(resVo).toString(); } } activitDiscount.setIsDelete(0);// 添加数据,默认不删除 Integer result = iActivitDiscountService.insertSelective(activitDiscount); if (result < 0) {// 处理失败 resVo.setStatu(1); resVo.setResult(1); resVo.setResultNote("SQL execution failure"); logger.error("SQL execution failure"); return JSONObject.toJSON(resVo).toString(); } userLog.setLevel(userLogService.SUCCESS_LEVEL); userLog.setDetail("添加优惠活动(优惠活动名称 :"+activitDiscount.getName()+")"); userLogService.updateByPrimaryKeySelective(userLog); logger.info(" insert activitDiscount ended ....."); return JSONObject.toJSON(resVo).toString(); }

2018-07-18

yunguanjiacode06131049.zip

package com.chinasoft.data.config; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.support.http.WebStatFilter; import com.chinasoft.data.annoation.ProductE; import com.chinasoft.data.annoation.TestE; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import javax.sql.DataSource; import java.sql.SQLException; /** * Created by VerRan.Liu on 2017/6/23. */ @Configuration @ProductE @TestE public class DruidDBConfig { private Logger logger = LoggerFactory.getLogger(DruidDBConfig.class); @Value("${spring.datasource.url}") private String dbUrl; @Value("${spring.datasource.username}") private String username; @Value("${spring.datasource.password}") private String password; @Value("${spring.datasource.driverClassName}") private String driverClassName; @Value("${spring.datasource.initialSize}") private int initialSize; @Value("${spring.datasource.minIdle}") private int minIdle; @Value("${spring.datasource.maxActive}") private int maxActive; @Value("${spring.datasource.maxWait}") private int maxWait; @Value("${spring.datasource.timeBetweenEvictionRunsMillis}") private int timeBetweenEvictionRunsMillis; @Value("${spring.datasource.minEvictableIdleTimeMillis}") private int minEvictableIdleTimeMillis; @Value("${spring.datasource.validationQuery}") private String validationQuery; @Value("${spring.datasource.testWhileIdle}") private boolean testWhileIdle; @Value("${spring.datasource.testOnBorrow}") private boolean testOnBorrow; @Value("${spring.datasource.testOnReturn}") private boolean testOnReturn; @Value("${spring.datasource.poolPreparedStatements}") private boolean poolPreparedStatements; @Value("${spring.datasource.maxPoolPreparedStatementPerConnectionSize}") private int maxPoolPreparedStatementPerConnectionSize; @Value("${spring.datasource.filters}") private String filters; @Value("{spring.datasource.connectionProperties}") private String connectionProperties; @Value("${druid.loginUsername}") private String loginUsername; @Value("${druid.loginPassword}") private String loginPassword; @Bean //声明其为Bean实例 @Primary //在同样的DataSource中,首先使用被标注的DataSource public DataSource dataSource(){ DruidDataSource datasource = new DruidDataSource(); datasource.setUrl(this.dbUrl); datasource.setUsername(username); datasource.setPassword(password); datasource.setDriverClassName(driverClassName); //configuration datasource.setInitialSize(initialSize); datasource.setMinIdle(minIdle); datasource.setMaxActive(maxActive); datasource.setMaxWait(maxWait); datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); datasource.setValidationQuery(validationQuery); datasource.setTestWhileIdle(testWhileIdle); datasource.setTestOnBorrow(testOnBorrow); datasource.setTestOnReturn(testOnReturn); datasource.setPoolPreparedStatements(poolPreparedStatements); datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize); try { datasource.setFilters(filters); } catch (SQLException e) { logger.error("druid configuration initialization filter", e); } datasource.setConnectionProperties(connectionProperties); return datasource; } /** * 注册一个StatViewServlet * @return ServletRegistrationBean */ @Bean public ServletRegistrationBean DruidStatViewServle2(){ //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册. ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); //添加初始化参数:initParams //白名单: servletRegistrationBean.addInitParameter("allow","127.0.0.1"); //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page. servletRegistrationBean.addInitParameter("deny","192.168.1.73"); //登录查看信息的账号密码. servletRegistrationBean.addInitParameter("loginUsername",loginUsername); servletRegistrationBean.addInitParameter("loginPassword",loginPassword); //是否能够重置数据. servletRegistrationBean.addInitParameter("resetEnable","false"); return servletRegistrationBean; } /** * 注册一个:filterRegistrationBean * @return FilterRegistrationBean */ @Bean public FilterRegistrationBean druidStatFilter2(){ FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); //添加过滤规则. filterRegistrationBean.addUrlPatterns("/*"); //添加不需要忽略的格式信息. filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid2/*"); return filterRegistrationBean; } }

2018-07-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除