![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【Java】
文章平均质量分 57
起名不费劲
这个作者很懒,什么都没留下…
展开
-
volatile为什么无法保证原子性
volatile不能保证原子性,为什么不能保证?原创 2023-10-13 19:58:30 · 199 阅读 · 0 评论 -
Hibernate-mapping(一)级联删除
Hibernate作为数据访问层,它通过配置文件(hibernate.properties或hibernate.cfg.xml)和映射文件(***.hbm.xml)把JAVA对象或PO(PersistentObject,持久化对象)映射到数据库中的数据库,然后通过操作PO,对数据表中的数据进行增,删,改,查等操作。 第一个配置文件hibernate.properties我没有用过,现在H原创 2015-08-31 16:15:59 · 1868 阅读 · 16 评论 -
dubbo服务请求超时
dubbo服务请求超时,Establishing SSL connection without server's identityverification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+requirements SSL connection must be established by default if explicit optionisn't set.原创 2023-03-19 10:58:04 · 759 阅读 · 1 评论 -
安全算法(一)数字摘要
数字摘要,也叫消息摘要。它是一种单向的,不可逆的加密算法。发送方:采用单向hash函数对消息进行计算,得到摘要。发送消息和摘要。接收方:把接收的消息,按着同样的hash函数计算,新产生的摘要和发送来的原摘要进行对比。如果2个摘要不一致,说明消息不完整了。原创 2016-06-20 17:04:03 · 3663 阅读 · 3 评论 -
从ActiveMQ原理到实例
在介绍activemq之前,先简单介绍JMS,它是J2EE的13个规范之一,提供的是消息中间件的规范。JMS包括以下基本构件:连接工厂,是客户用来创建连接的对象,ActiveMQ提供的是ActiveMQConnectionFactory;连接connection会话session,是发送和接收消息的上下文,用于创建消息生产者,消息消费者,相比rocketMQ会话session是提供事务原创 2016-07-14 16:12:46 · 31023 阅读 · 2 评论 -
安全算法(二)对称加密和非对称加密
与对称加密算法不同,非对称加密算法需要两个密钥:公钥(publickey)和私钥(privatekey)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法。典型的RSA非对称加密。 RSA加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广泛的非对称加密算法,于1978年由美国麻省理工学院(MIT)的三位学着:Ron Rives原创 2016-06-30 20:35:59 · 1301 阅读 · 1 评论 -
web攻击手段(二)CRSF
CRSF是跨站请求伪造:Cross site request forgery,是一种对网站的恶意利用。它和XSS跨站脚本攻击的不同是,XSS利用站点内的信任用户;CRSF则是通过伪装来自信任用户的请求,来利用受信任的网站。举例就是:攻击者盗用了你的身份,以你的名义向第三方信任网站发送恶意请求,如发邮件,发短信,转账交易等。原创 2016-06-30 20:08:39 · 1608 阅读 · 0 评论 -
互联网安全(一)摘要认证
经由HTTP协议进行通信的数据大多都是未经过加密的明文,包括请求参数、返回值、cookie、head等数据,因此,外界通过对通信的监听,便可以轻而易举地根据请求和响应双方的格式,伪造、修改、窃取信息。而且相对TCP来说,HTTP的通信更易于攻击。 所以,为了防止在通信的过程中,数据被中途拦截和修改;或者虚假的客户端冒充正常的客户端发起请求,非法获取数据;再或者是客户端与虚假的服务端进行通信,将个人信息泄露给恶意的攻击者,需要对请求和响应的参数及客户端的身份进行认证,以保住正确信息发送给了合法的接收者原创 2016-05-31 21:28:23 · 517 阅读 · 3 评论 -
Java多线程实例
进程:系统进行资源分配和调度的基本单位。可以从下边二个角度对比分析: 第一:1个进程可以有多个线程;1个线程必须属于一个进程。 第二:进程是分配资源;线程是共享资源。线程是最小工作单位。原创 2016-04-30 20:54:15 · 426 阅读 · 1 评论 -
J2EE性能优化(一)
用java进行开发,尤其是一些大型企业项目,性能调优的工作很重要。在设计应用程序的时候,应该始终把性能放在考虑范围内。一些应用程序设计中的不当做法,在小数据量,执行次数少的情况下,可能对性能造成的影响并不明显。但是在大数据量、大量重复执行的生产环境中,对性能却会造成明显的负面影响。(一)String操作 用StringBuffer.append来代替String+=累原创 2016-07-31 22:08:25 · 597 阅读 · 1 评论 -
J2EE性能优化(二)数据库
1、保证SQL返回的数据不超出内存限度 需要保证进行查询时的条件不会失效,如下代码就有可能出现查询条件失效的情况:// 已经获取到 Connection;String sql=" SELECT FILED1, FIELD2 FROM SOME_TABLE WHERE NAME LIKE ?";PreparedStatement ps=conn.prepareStatement(s原创 2016-07-31 22:24:36 · 674 阅读 · 2 评论 -
Spring Boot从原理到实战
Spring Boot是spring的升级版,但并不是对spring功能上的增强,而是提供了一种快速使用spring的方式:开箱即用,没有代码生成,也无需XML配置。原创 2017-06-10 18:59:21 · 18079 阅读 · 4 评论 -
SpringBoot + devtools热部署
devtools是为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动还要更快,更快指的不是节省出来的手工操作的时间。 更深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为 restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创原创 2017-06-10 19:08:37 · 623 阅读 · 1 评论 -
模板引擎 freemarker
模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。原创 2017-06-10 19:19:54 · 510 阅读 · 0 评论 -
SpringBoot 定时任务
定时任务的实现方式 (1)Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。 (2)使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂。 (3) Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quar原创 2017-06-10 19:41:10 · 399 阅读 · 1 评论 -
Java IO与NIO
NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。原创 2017-08-31 20:49:40 · 345 阅读 · 0 评论 -
浅谈同步异步、阻塞非阻塞
同步就是:如果有多个任务或者事件要发生,这些任务或者事件必须逐个地进行,一个事件或者任务的执行会导致整个流程的暂时等待,这些事件没有办法并发地执行;异步就是:如果有多个任务或者事件发生,这些事件可以并发地执行,一个事件或者任务的执行不会导致整个流程的暂时等待。同步和异步着重点在于多个任务的执行过程中,一个任务的执行是否会导致整个流程的暂时等待;而阻塞和非阻塞着重点在于发出一个请求操作时,如果进行操作的条件不满足是否会返会一个标志信息告知条件不满足。原创 2017-08-31 21:15:49 · 357 阅读 · 0 评论 -
Struts2文件上传
Struts 2和 Struts 1一样,文件上传都是封装了Apache的Common-fileupload方法,下面我一步步带大家实现上传。一、环境搭建建立java web项目,引入jar包,放在WEB-INF/lib下。下载地址:Struts2上传文件的jar包下载地址 。Web.xml配置文件,不要忘记配置Struts2过滤器文件上传enctype="multipart/form-data"。enctype这个属性管理的是表单的MIME编码,共有三个值可选: 1、application/原创 2015-12-23 13:27:43 · 618 阅读 · 7 评论 -
走进Java(六)静态代理和动态代理
代理模式:为某个对象提供一个代理,以控制对这个对象的访问。代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。 静态代理是由程序员创建代理类或特定工具自动生成源代码再对其编译。在程序运行前代理类的.class文件就已经存在了。 动态代理类是在程序运行时,利用java的反射机制动态创建而成。它一定要实现java.lang.reflect.Proxy类和java.lang.refl原创 2015-12-01 19:59:48 · 774 阅读 · 9 评论 -
SSH之旅(二)——Struts2 配置文件
初次接触Java SSH框架,使用MyEclipse开发工具,以及Tomcat热部署,不明白如何访问JSP页面,如何访问Action调用业务逻辑层服务。现在就从Struts配置文件开始走起!原创 2015-08-29 00:21:01 · 1305 阅读 · 17 评论 -
走进Java(一)J2SE
一、Java是什么 Java是Java语言和Java平台的总称。Java语言和C#一样,核心都是oo,而且比较而言,Java做的更好。 Java由四方面组成: • Java编程语言,即语法。• Java文件格式,即各种文件夹、文件的后缀。• Java虚拟机(JVM),即处理*.class文件的解释器。• Java应用程序接口(Java A原创 2015-07-24 05:08:57 · 1342 阅读 · 21 评论 -
在线支付so easy
在项目开发时,也经常用到支付接口。那我们如何实现在线支付呢?(一)在线支付方式 第一种方式:就是直接和银行对接,引用对应银行的接口。 优点:免费; 缺点: 1、需要引用所有银行的接口,比较麻烦; 2、商业银行一般只针对大型企业及集团公司提供接口,对个人及小企业的网站不支持。所以申请不易; 第二种方式:就是通过一个第三方支付平台,原创 2015-08-31 14:57:02 · 1276 阅读 · 21 评论 -
MyEclipse更改项目名称
MyEclipse更改项目名称。MyEclipse同一个命名空间下,不允许有同名的项目。原创 2015-09-26 17:19:48 · 1745 阅读 · 28 评论 -
SSH之旅(一)——框架简介
SSH框架是由三个框架集成来的,选择以Spring框架为核心并整合Struts、Hibernate的框架组合,是目前较流行的一种Web应用程序开源集成框架,可以搭建具有可伸缩性、灵活性、易维护型的系统,能简化企业系统的开发、部署和管理。 基本上,SSH组合框架如图1所示,包括表现层、业务逻辑层、数据持久层还有域模型驱动Model。 等到做项目时,在开发过程中使用SSH框架,原创 2015-08-28 22:15:02 · 1209 阅读 · 20 评论 -
MyEclipse更改视图
网上商城是我做的第一个Java项目,这个项目内容、架构都不错,老师也好。只是一眼飘过,竟是千帆过后。意思是,里面涉及了好多小知识点,都是自己发现,去网上寻找答案,老师压根没提。 就比如这个开发环境MyEclipse的视图效果:默认是Designer设计视图,如下: 但是说实话,上边的设计器很影响心情,看着实在碍眼。解决掉:Windows-preference-General-E原创 2015-09-29 19:46:15 · 2893 阅读 · 14 评论 -
MyEclipse自带连接数据库
这里我们以Oracle数据库连接为例子。打开数据库视图:Windows - Show View - DB Browser 然后会在MyEclipse界面上显示一个DBBrowser窗口,窗口中默认会有一个MyEclipseDerby,是MyEclipse自带的一个关系数据库。 在此处右击鼠标会出现菜单,New,Edit之类的。因为我们要添加一个新的数据库驱动程序,所以选择New。原创 2015-10-05 16:12:13 · 3691 阅读 · 15 评论 -
用dom4j读取xml到数据库
用dom4j读取xml文件到数据库。dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。对主流的Java XML API进行的性能、功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的。如今可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j原创 2015-10-29 21:20:24 · 3917 阅读 · 16 评论 -
工厂+反射实现动态配置数据库
有时候项目中用的是SqlServer数据库,有时候又会换成Oracle,或者有时候要用MySQL,如何做才能充分复用代码?根据以上需求,业务逻辑层不会变动,我们只需要变动业务逻辑层所依赖的Dao层就可以。什么是反射机制简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。原创 2015-11-16 00:23:33 · 819 阅读 · 6 评论 -
request.getParameter()中文乱码
客户端向服务器端发送信息,如果发送的编码和服务器端接收的编码不一样,使用request.getParameter()方法获取的表单信息会产生乱码。所以需要设置服务器的编码,以Tomcat为例。打开Tomcat/conf目录下的server.xml文件,在connetor属性中增加URIEncoding或者useBodyEncodingForURI属性。原创 2015-11-17 12:08:10 · 1080 阅读 · 14 评论 -
SSH之旅(三)Struts1和Struts2的前世今生
Struts是全世界最早的MVC框架,其作者是JSP规范的制定者,并参与了Tomcat的开发,这个名字来源于在建筑和滑翔机中用来支持的金属架 ,猜测着 Struts 的开发者大概是希望用该框架来支持 JSP 、 Servlet 、 Java 这些技术在 Web 项目中的使用。Struts1和Struts2的关系大揭秘。原创 2015-12-15 12:04:33 · 1310 阅读 · 28 评论 -
【Hibernate】自动生成数据库表
Hibernate本意是冬眠,很好的封装了JDBC和数据库交互,实现了对象的持久化操作。所以也可以理解对象的持久化其实就是“冬眠”。那么如何通过Hibernate实现自动生成数据库表?不再依赖于db工具。原创 2016-01-17 21:50:37 · 5594 阅读 · 6 评论 -
【Hibernate】保存对象到数据库
【Hibernate】保存对象到数据库,实现事务原创 2016-01-17 22:46:39 · 3515 阅读 · 9 评论 -
Struts2框架搭建
一、原理Struts2前端框架的处理流程:1、客户端发起一条请求;http://localhost:8080/test_struts22、这个请求经过一系列的过滤器(filter)ActionContextCleanUp可选过滤器、other filters,然后到达FilterDispatcher。3、FilterDispatcher询问ActionMapper来决定这个原创 2015-12-16 16:29:44 · 674 阅读 · 10 评论 -
走进Java(三)Java Servlet
什么是Servlet Servlet是在服务器上运行的小程序,一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模型来访问这个驻存在服务器内存中的Servlet程序。这里提出一个问题,Servlet和JSP? Servlet只初始化一次,它是单实例,多线程使用,所以它不是线程安全的。原创 2015-09-25 11:54:48 · 707 阅读 · 26 评论 -
走进Java(四)JSP的Model1和Model2
Model1和Model2的前世今生,MVC思想是如何体现的?Model1在一定程序上实现了MVC:即JSP是控制层与表示层合二为一了,bean则为模式层.这样的效果显然不如将控制层单独划分出来的好。而Model2则是将控制层(Servlet)单独的划分出来了,专门负责业务流程的控制,接受页面的请求,创建所需的javabean实例,并将处理后的数据再返回给JSP,这样的效果显然要好的多。原创 2015-11-07 08:51:48 · 1929 阅读 · 5 评论 -
走进Java(二)J2EE规范解释
一、背景 起初,各个公司都开发出了自家的组件,可是用户使用过程中,各家的组件不通用,不兼容。所以提出J2EE协议,它就是基于Java技术的一系列标准。 J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它的功能非常全面,用于数据处理和服务器端应用。它对开发基于Web的多层应用提供了功能支持。使用J2EE技术部署的应用是:“编写一次原创 2015-07-27 14:57:39 · 985 阅读 · 22 评论