hbxflihua
- 浏览: 653433 次
- 性别:
- 来自: 杭州
社区版块
- ( 0)
- ( 0)
- ( 1)
最新评论
-
changerzhuo_319:
谢谢大佬, 查了一天了没解决
spring-boot构建多模块依赖工程时,maven打包异常:程序包xxx不存在 -
迪伦少校:
spring越来越优秀的同时,也越来越复杂
spring核心技术(1) -
hbxflihua:
ivi13 写道这种方式会有个问题,假如有个商户的交易量特别大 ...
使用spring-retry实现支付系统异步通知 -
ivi13:
这种方式会有个问题,假如有个商户的交易量特别大,通知全部失败, ...
使用spring-retry实现支付系统异步通知 -
ckxlnd:
挺好的 有借鉴意义
重写dispatcherservlet获取springmvc 所有requestmapping的url
文章列表
package com.huatech.gateway.filter;
import cn.hutool.http.contenttype;
import cn.hutool.http.header;
import cn.hutool.json.jsonutil;
import com.alibaba.fastjson.jsonarray;
import com.alibaba.fastjson.jsonobject;
import com.alibaba.fastjson.serializer.serializerfeature;
import com.google.co ...
针对目前越来越严的安全等级要求,我们在做产品研发和项目开发时,越来越需要注意安全问题,各种账号密码的在配置文件中明文存储就是一个很大的安全隐患。
现针对数据库密码加解密方面,利用druid工具类进行数据库加密,实现项目配置文件中数据库密码密文存储,一定程度上保证了数据安全。
步骤一:pom中引入druid依赖
com.alibaba
# 1、查询java进程id
jps -v
# 2、查询内存使用情况
jmap -heap
# 3、查询gc情况
jstat -gc
poi excel导入工具类importutil
import java.beans.beaninfo;
import java.beans.introspector;
import java.beans.propertydescriptor;
import java.io.inputstream;
import java.lang.reflect.method;
import java.math.bigdecimal;
import java.sql.date;
import java.text.decimalformat;
import java.text.pars ...
1、新建一个maven工程;
2、pom.xml中引入spring-context dependency
org.springframework
spring-context
${spring.version}
死锁是一种特定的程序状态,在实体之间,由于循环依赖导致彼此一直处于等待之中,没有任何个体可以继续前进。死锁不仅仅是在线程之间会发生,存在资源独占的进程之间同样也可能出现死锁。通常来说,我们大多是聚焦在多线程场景中的死锁,指两个或多个线程之间,由于相互持有对方需要的锁,而永久处于阻塞的状态。
定位死锁最常见的方式就是利用jstack等工具获取线程栈,然后定位相互之间的依赖关系,进而找到死锁。如果是比较明显的死锁,往往jstack等就能直接定位,类似jconsole甚至可以在图形界面进行有限的死锁检测。
如果程序运行时发生了死锁,绝大多数情况下都是无法在线解决的,只能重启、修正程 ...
反射机制是java语言提供的一种基础功能,赋予程序在运行时(注意:不是编译时)自省(introspect)的能力。通过反射我们可用直接操作类或者对象,比如获取某个对象类的定义,获取类声明的属性和方法,调用对象的方法或者构造对象,甚至可以在运行时修改类的定义。
反射会额外消耗一定的系统资源,还可以忽略权限检查,可能会破坏系统封装性产生安全问题。
动态代理是一种方便运行时动态构建代理、动态处理代理方法调用的机制,很多场景都是利用类似机制做到的,比如包装rpc调用、面向切面编程(aop)等。
实现动态代理的方式很多,比如jdk自身提供的动态代理,它是利用java
- 2019-04-13 14:02
- 浏览 1866
- 分类:编程语言
java的基本类型有八种,三大类:
字符型:char
布尔型:boolean
数值型:byte、short、int、long、float、double,前四种整型,后面两种浮点型
java八种基本类型的包装类和string都是immutable类,被声明为final class,所有的属性也都� ...
- 2019-04-13 10:00
- 浏览 618
- 分类:编程语言
在 java 语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型,指向各种不同的对象。理解引用对于掌握 java 对象生命周期和 jvm 内部相关机制非常有帮助。不同的引用类型,主要体现的是对象不同的可达性(reachable)状态和对垃圾收集的影响。
引用出现的根源是由于gc内存回收的基本原理-gc回收内本质上是回收对象,而目前比较流行的回收算法是可达性分析算法,从gc roots开始按照一定的逻辑判断一个对象是否可达,不可达的话就说明该对象已死(除此之外另外一种常见的算法就是引用计数法,但是这种算法不能解决相互引用的问题)。基于此java向用户提供了四种可用的引用 ...
- 2019-04-12 15:10
- 浏览 628
- 分类:编程语言
exception与error的区别?
- 博客分类:
- java
java语言在设计之初就提供了相对完善的异常处理机制,这种机制大大降低了编写和维护可靠程序的门槛,这也是java得以大行其道的原因。
exception与error
exception与error都继承自throwable类,在java中只有throwable类型的实例才可� ...
- 2019-04-11 09:25
- 浏览 446
- 分类:编程语言
前两篇介绍了应用国际化的注意事项和提示语国际化的简单实现。后来阅读spring源码发现,spring对国际化的支持已经很到位了,很多地方都不需要在程序中处理。比如语言切换的拦截器,spring已经自带了。本文介绍更简洁的基于spring的提示语国际化实现方案。
1、web.xml配置, web.xml中需要配置contextloaderlistener和dispatcherservlet,这个就不多讲了。
springservlet
- 2018-12-27 21:13
- 浏览 679
- 分类:互联网
上一篇介绍了应用国际化需要考虑的问题,本篇介绍后端如何实现提示语的国际化。
先说说系统框架,本项目采用react spring mybatis rabbitmq redis等主流框架组合搭建而成,前后端分离。不得不说,在spring framework的加持下,做什么事情都方便的多。
1、添加langcookiefilter,拦截参数中带有lang的请求,并将语言标识存入cookie。
import java.io.ioexception;
import javax.servlet.filter;
import javax.servlet.filte ...
- 2018-12-26 20:39
- 浏览 643
- 分类:互联网
最近在做数字资产交易所的项目,项目已经趋于稳定,下一步是提供国际化支持。接下来我来讲讲国际化需要考虑哪些问题?国际化如何落地?文章仅代表个人观点,欢迎留言拍砖。
应用国际化需要考虑的问题:
1、前后� ...
- 2018-12-26 20:08
- 浏览 700
- 分类:互联网
我们在做架构设计的时候,会提到几个关键词:高性能、高可用、可扩展、安全性、伸缩性、低成本等等。对于用户量不大、并发量不高的系统,我们没必要去追求高性能,甚至连架构设计都可以免了。
那么什么样的系统需要做性能优化呢?当你发现系统响应越来越慢,慢到已经影响到用户体验的时候;
网站性能优化的手段:
1、 web前端优化;
减少http请求;
使用浏览器缓存;
静态资源压缩;
减少cookie传输;
cdn加速;
反向代理;
2、 应用服务性能优化;
分布式缓存,通过添加缓存来提高应用层的响应效率;
消息异步化:线程、队列等等;
集群服务;
- 2018-09-28 10:15
- 浏览 1001
- 分类:企业架构
系统优化大致可以分为:业务优化、设计和程序优化、db和system优化、sql优化四个方面,这四个方面按优先级进行排列,并且越往后越不容易优化,他们之间又相辅相成、互相关联,我们优化的时候可以交替着去实施。下面着重 ...
- 2018-09-27 20:04
- 浏览 952
- 分类:企业架构
我们通过spring-amqp操作rabbitmq是极其简单的,消息的生产者和消费者只需要如下配置:
客户端(生产者):connectionfactory、queue、exchange、messageconverter、rabbittemplate。
服务端(消费者):connectionfactory、queue、exchange、messageconverter、listenercontainer。
如果消息堆积严重,我们可以通过两种方式来处理消息,一种是在服务端开启监听多线程服务(concurrency="10"),另一种是让消息批量出队列。
开 ...
- 2018-04-08 17:35
- 浏览 9105
- 分类:行业应用
1、top命令查看过高cpu的pid,命令:top
[root@test-v3 bin]# top
top - 16:44:22 up 173 days, 7:05, 2 users, load average: 0.74, 0.71, 0.61
tasks: 150 total, 1 running, 149 sleeping, 0 stopped, 0 zombie
cpu(s): 0.8%us, 0.4%sy, 0.0%ni, 98.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.7%st
mem: 8061116k t ...
- 2018-03-14 09:06
- 浏览 2169
- 分类:行业应用
rabbitmq的安装不在此赘述,想了解的可以参考:spring boot中使用rabbitmq
1、新建一个spring-boot工程,本示例命名为:spring-boot-rabbitmq-demo
2、在pom.xml中引入amqp
org.springframework.boot
spring-boot-starter-amqp
& ...
- 2018-01-16 16:38
- 浏览 1182
- 分类:行业应用
1、重写dispatcherservlet
import java.util.hashset;
import java.util.map;
import java.util.set;
import org.springframework.beans.factory.beanfactoryutils;
import org.springframework.context.applicationcontext;
import org.springframework.web.method.handlermethod;
import org.springframework ...
单例模式推荐使用静态内部类的方式实现,具体参考:java内存模型faq(十一)新的内存模型是否修复了双重锁检查问题?
- 2018-01-08 10:24
- 浏览 1092
- 分类:行业应用
本示例工程整合spring-web、spring-jdbc、mybatis、druid、pagehelper等主流框架,附件为整个工程代码,下载后可以直接运行。
1、通过 spring initializr新建一个web工程,可先将web,aspects,jdbc,mybatis,mysql等依赖引入;
2、将生成的web工程导入ide,本人用的sts;
3、本示例会将druid、pagehelper集成到项目中,故先添加相关依赖;
com.alibaba
- 2017-12-26 19:57
- 浏览 3667
- 分类:行业应用
1、新建一个maven project;
2、在pom.xml中引入spring-webmvc
- 2017-12-21 21:23
- 浏览 852
- 分类:行业应用
1、新建一个maven 工程;
2、pom.xml文件引入jar包,并配置failonmissingwebxml
- 2017-12-20 20:55
- 浏览 1001
- 分类:行业应用
import java.util.date;
import org.springframework.format.annotation.datetimeformat;
import com.alibaba.fastjson.annotation.jsonfield;
import com.fasterxml.jackson.annotation.jsonformat;
public class user {
private long id;
private string username;
// 日期类型输出到页面格式
@jsonformat(patt ...
- 2017-12-20 16:57
- 浏览 1245
- 分类:行业应用
1、新建一个maven project;
2、在pom.xml中引入spring-webmvc
org.springframework
spring-webmvc
4.2.5.release
3、 添加web.xml文件
- 2017-12-11 20:48
- 浏览 588
- 分类:企业架构
package com.rd.svn;
import java.text.simpledateformat;
import java.util.arraylist;
import java.util.date;
import java.util.iterator;
import java.util.list;
import java.util.map;
import org.tmatesoft.svn.core.svnexception;
import org.tmatesoft.svn.core.svnlogentry;
import org.tmates ...
- 2017-11-23 10:31
- 浏览 894
- 分类:编程语言
基于httpclient4.5.3的httpsutil工具类
1、引入httpclient所需jar
org.apache.httpcomponents
httpclient
4.5.3
- 2017-08-31 19:58
- 浏览 2264
- 分类:行业应用
网上有关spring和rabbitmq整合的博文比比皆是,但是都没有形成整体凯发k8国际娱乐官网入口的解决方案,接下来我会通过对spring-rabbit的简单封装实现消息队列服务的组件化。
0、添加所需依赖jar
org.springframework.amqp
spring-rabbit
1.6.0.release
- 2017-08-02 21:39
- 浏览 3126
- 分类:行业应用