`
hbxflihua
  • 浏览: 660437 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
反射机制是Java语言提供的一种基础功能,赋予程序在运行时(注意:不是编译时)自省(introspect)的能力。通过反射我们可用直接操作类或者对象,比如获取某个对象类的定义,获取类声明的属性和方法,调用对象的方法或者构造对象,甚至可以在运行时修改类的定义。   反射会额外消耗一定的系统资源,还可以忽略权限检查,可能会破坏系统封装性产生安全问题。   动态代理是一种方便运行时动态构建代理、动态处理代理方法调用的机制,很多场景都是利用类似机制做到的,比如包装RPC调用、面向切面编程(AOP)等。   实现动态代理的方式很多,比如JDK自身提供的动态代理,它是利用Java
Java的基本类型有八种,三大类: 字符型:char 布尔型:boolean 数值型:byte、short、int、long、float、double,前四种整型,后面两种浮点型   Java八种基本类型的包装类和String都是Immutable类,被声明为final class,所有的属性也都 ...
   在 Java 语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型,指向各种不同的对象。理解引用对于掌握 Java 对象生命周期和 JVM 内部相关机制非常有帮助。不同的引用类型,主要体现的是对象不同的可达性(reachable)状态和对垃圾收集的影响。   引用出现的根源是由于GC内存回收的基本原理-GC回收内本质上是回收对象,而目前比较流行的回收算法是可达性分析算法,从GC Roots开始按照一定的逻辑判断一个对象是否可达,不可达的话就说明该对象已死(除此之外另外一种常见的算法就是引用计数法,但是这种算法不能解决相互引用的问题)。基于此Java向用户提供了四种可用的引用 ...
Java语言在设计之初就提供了相对完善的异常处理机制,这种机制大大降低了编写和维护可靠程序的门槛,这也是Java得以大行其道的原因。   Exception与Error Exception与Error都继承自Throwable类,在Java中只有Throwable类型的实例才可 ...
加密算法分类 加密算法按是否可逆分为单向加密和双向加密。   单向加密         单向加密是不可逆的,也就是说只能进行加密,不能进行解密。通常用来传输或者存储敏感数据,如用户名、密码等。单向加密原则上不可 ...
#spring核心技术   ## 基本原理-容器和bean 1、在Spring中,那些组成你应用程序的主体(backbone)及由Spring IoC容器所管理的对象,被称之为bean。 简单地讲,bean就是由Spring容器初始化、装配及管理的对象。 2、org.springframework.beans.fact ...
 什么是Shiro? Apache旗下强大灵活的开源安全框架 提供认证、授权、会话管理、安全加密等功能     Shiro整体架构   SecurityManager Shiro的核心,Shiro通过SecurityManager 提供安全服务; Authenticator 认证器,管理主体的登录、登出; Authorizer 授权器,赋予主体有哪些权限; SessionManager Session管理器,可以脱离web容器; SessionDao
  Spring 4引入了WebSocket API,浏览器和Web服务器可以根据WebSocket API通过WebSocket协议进行通信。通过这种方式,我们可以创建一个高度交互的UI和在线游戏,需要从服务器快速响应。SockJS在UI上提供类似WebSocket的对象。STOMP客户端用于通过WebSocket协议进行通信。我正在使用tomcat服务器来部署项目。下图为WebSocket通信的图表。     WebSocket协议 WebSocket是一种在浏览器和Web服务器之间进行通信的协议。WebSocket通过TCP协议工作。它在浏览器和Web服务器之间打开套接字连接 ...
 最近在做项目时遇到一个问题,同一个方法中两次更新入库,其中一次成功,一次没执行。我先是排查应用程序日志,发现程序日志并没有异常,然后根据执行时间查了mysql的binlog日志。 binlog日志查看脚本如下: /usr/local/mysql/bin/mysqlbinlog -v --start-datetime='2018-12-26 17:55:00' --stop-datetime='2018-12-26 17:57:00' logs/mysql-bin.000004 >/tmp/tmp.sql  binlog日志显示确实只执行了一次更新操作 ### UPDA ...
前两篇介绍了应用国际化的注意事项和提示语国际化的简单实现。后来阅读spring源码发现,spring对国际化的支持已经很到位了,很多地方都不需要在程序中处理。比如语言切换的拦截器,spring已经自带了。本文介绍更简洁的基于spring的提示语国际化实现方案。   1、web.xml配置, web.xml中需要配置ContextLoaderListener和DispatcherServlet,这个就不多讲了。 <servlet> <servlet-name>springServlet</servlet-name> <servlet- ...
上一篇介绍了应用国际化需要考虑的问题,本篇介绍后端如何实现提示语的国际化。   先说说系统框架,本项目采用React + Spring + MyBatis + RabbitMQ + Redis等主流框架组合搭建而成,前后端分离。不得不说,在Spring Framework的加持下,做什么事情都方便的多。   1、添加LangCookieFilter,拦截参数中带有lang的请求,并将语言标识存入cookie。 import java.io.IOException; import javax.servlet.Filter; import javax.servlet.Filte ...
最近在做数字资产交易所的项目,项目已经趋于稳定,下一步是提供国际化支持。接下来我来讲讲国际化需要考虑哪些问题?国际化如何落地?文章仅代表个人观点,欢迎留言拍砖。   应用国际化需要考虑的问题: 1、前后 ...
一、大类检查点:   大类 细项 上传功能 绕过文件上传检查功能 上传文件大小和次数限制 注册功能 注册请求是否安全传输
项目架构 dw | |----dw-demo(接口demo) | |----dw-core(代码核心) | |----dw-api(接口,依赖dw-core) | |----dw-manage(后台,依赖dw-core)   一、准备工作 首先看下各模块pom文件 1、项目父工程POM   <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...
项目 dw(父类工程,定义各模块,指定模块依赖jar版本) |------------------------------ |--da-core    核心代码 | |--da-manage  后台管理,依赖da-core | |--da-api     API接口,依赖da-api
Global site tag (gtag.js) - Google Analytics