![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 94
ly199108171231
这个作者很懒,什么都没留下…
展开
-
maven如何编译java和kotlin编码的混合项目
一、前提 应用程序同时使用java和kotlin两种开发语言,则必须在 Java 编译器之前调用 Kotlin 编译器。 二、解决方案 根据 maven 的方式,则需要在 maven-compiler-plugin 之前运行 kotlin-maven-plugin,因此我们要确保 pom.xml 文件中的 kotlin 插件位于 mav...原创 2020-03-26 16:19:03 · 2134 阅读 · 0 评论 -
蚂蚁消息中间件 (MsgBroker) 在 YGC 优化上的探索
GC 一直是 Java 应用中被讨论得最多的话题之一,尤其对于消息中间件这样的基础应用,GC 停顿产生的延迟会严重影响其在线服务能力,是开发和运维人员关注的重点。关于 GC 优化,首先最容易想到的就是调整那些影响 GC 性能的 JVM 参数(如新生代与老年代的大小、晋升到老年代的年龄、甚至是 GC 回收器类型等),使得老年代中存活的对象数量尽可能的少,从而降低 GC 停顿时间。然而,除了少数较...转载 2019-12-14 17:46:37 · 612 阅读 · 1 评论 -
BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessor以及BeanPostProcessor执行先后顺序
1、BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessor以及BeanPostProcessor都属于Spring的后置处理器,可以实现它们以达到动态注册bean定义,动态修改bean定义,以及动态修改bean。2、BeanDefinitionRegistryPostProcessor继承接口BeanFactoryPostPro...原创 2019-12-11 16:24:13 · 2150 阅读 · 1 评论 -
MySQL:change buffer
1、change bufferInnoDB的数据是按数据页为单位来读写的。也就是说,当需要读一条记录的时候,并不是将这个记录本身从磁盘读出来,而是以页为单位,将其整体读入内存。在InnoDB中,每个数据页的大小默认是16KB。在更新数据页时,首先去内存中查看是否有这个数据页,如果在内存中有,就直接更新;如果内存中没有这个数据页的话,InnoDB就会将这些更...转载 2019-11-05 09:11:43 · 94 阅读 · 0 评论 -
spring基于注解的方式注册bean的集中方式
spring容器帮我们管理bean,因此需要将bean注册在spring容器中,而bean可以通过xml或者注解的方式进行注册,基于xml的配置一般是通过<bean>、<context:component-scan>等xml标签配合进行配置,然后由spring容器扫描xml文件进行注册;基于注解的注册主要是通过几种spring定义的注解进行配置,同样是由sp...原创 2019-11-02 11:27:27 · 210 阅读 · 0 评论 -
JVM反射调用优化,导致发生大量异常时log4j2线程阻塞
在使用log4j2打日志时,当发生大量异常时,造成大量线程block问题的问题。大量线程block原因发生异常,打印异常栈时,会调用org.apache.logging.log4j.core.impl.ThrowableProxy.toExtendedStackTrace方法。ThrowableProxy.toExtendedStackTrace内部会进行loadCla...原创 2019-10-31 10:49:32 · 976 阅读 · 0 评论 -
SpringMVC支持版本管理的Restful接口
需求移动互联网时代的到来,软件开发的模式也在变化。记得以前做B/S的后台开发,基本上没有Http接口一说,全部是通过渲染模板技术(jsp,freemark)把最终html展示给最终用户。现在完全变了,基于后台接口提供方,我们从来不是针对只是浏览器展示的后台输出,而是各种终端,比如android,ios。所以设计接口的时候一定要小心,一旦放出去的接口可能就永远都难以变动(除非你强制客户端用户升级...转载 2019-10-15 09:47:13 · 125 阅读 · 0 评论 -
JSP九大内置对象及四个作用域
request 请求对象 类型 javax.servlet.ServletRequest 作用域 Requestresponse 响应对象 类型 javax.servlet.SrvletResponse 作用域 PagepageContext 页面上下文对原创 2018-07-06 15:17:55 · 98 阅读 · 0 评论 -
关于oracle存储过程的若干问题备忘
1.在oracle中,数据表别名不能加as,如:select a.appname from appinfo a;-- 正确select a.appname from appinfo as a;-- 错误 也许,是怕和oracle中的存储过程中的关键字as冲突的问题吧2.在存储过程中,select某一字段时,后面必须紧跟into,如果select整个记录,利用游标转载 2018-07-05 14:56:21 · 128 阅读 · 0 评论 -
Mybatis传多个参数(三种解决方案)
第一种方案 DAO层的函数方法 ?1PublicUserselectUser(Stringname,String area);对应的Mapper.xml ?123 select * fromuser_user_t whereuser_name转载 2018-07-04 10:14:57 · 338 阅读 · 0 评论 -
Java反射学习总结
Annotation(注解)简介:注解大家印象最深刻的可能就是JUnit做单元测试,和各种框架里的使用了。本文主要简单介绍一下注解的使用方法,下篇文章再深入的研究。annotation并不直接影响代码语义,但是它能够被看作类似程序的工具或者类库,它会反过来对正在运行的程序语义有所影响。annotation可以从源文件,class文件或者以在运行时反射的多种方式被读取转载 2018-07-06 15:32:46 · 128 阅读 · 0 评论 -
ORACLE游标
1,什么是游标? ①从表中检索出结果集,从中每次指向一条记录进行交互的机制。 ②关系数据库中的操作是在完整的行集合上执行的。 由SELECT 语句返回的行集合包括满足该语句的WHERE 子句所列条件的所有行。由该语句返回完整的行集合叫做结果集。 应用程序,尤其是互动和在线应用程序,把完整的结果集作为一个单元处理并不总是有效的。 这些应用程序需要一种机转载 2018-07-06 10:54:11 · 121 阅读 · 0 评论 -
getResourceAsStream的用法解析
Java中getResourceAsStream的用法首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoade原创 2018-07-04 10:07:12 · 2869 阅读 · 0 评论 -
spring中context:property-placeholder/元素
1.有些参数在某些阶段中是常量 比如 :a、在开发阶段我们连接数据库时的连接url,username,password,driverClass等 b、分布式应用中client端访问server端所用的server地址,port,service等 c、配置文件的位置2.而这些参数在不同阶段之转载 2018-07-05 14:30:11 · 91 阅读 · 0 评论 -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息。我们的 l转载 2018-07-05 11:43:58 · 80 阅读 · 0 评论 -
Java文件路径(getResource)
getResourceAsStream ()返回的是inputstreamgetResource()返回:URLClass.getResource("") 返回的是当前Class这个类所在包开始的为置Class.getResource("/") 返回的是classpath的位置getClassLoader().getResource("") 返回的是clas转载 2018-07-16 09:51:59 · 1224 阅读 · 0 评论 -
部署WEB应用的三种方式
一、基本部署 Tomcat安装目录下有一个webapps目录,该目录存放所有的WEB应用程序,Tomcat会自动管理该目录下的所有WEB应用。因此,最简单的部署方式就是将要部署的WEB应用直接拷贝到Tomcat安装目录下的webapps目录中。 这种方式通常是用于开发过程中。在真正的项目实施中可能会受到限制:当使用租借的(或他人的)WEB服务器时,该服务器所在的盘符原创 2018-07-04 09:51:14 · 3400 阅读 · 0 评论 -
eclipse与myeclipse的web项目没法识别问题解决
一、eclipse导入myeclipse的web项目1、进入项目目录,找到.project文件,打开。 2、找到...代码段。 3、在第2步的代码段中加入如下标签内容并保存: org.eclipse.wst.common.project.facet.core.nature org.eclipse.wst.common.modulecore.ModuleCor转载 2018-07-02 11:21:32 · 1280 阅读 · 0 评论 -
MYSQL通过别名删除的语句
有一个表的数据比较大,然后需要进行关联删除,删除的时候发现如下SQL报错:点击(此处)折叠或打开DELETE FROM test.test1 a WHERE EXISTS (SELECT 1 FROM test.test2 b WHERE a.recordID=b.smsInfoID AND b.receiveTime ="2011-10-09 00:00:转载 2018-07-03 19:33:30 · 308 阅读 · 0 评论 -
Windows下的修改Tomcat的可用内存
tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,轻微时,会使系统性能急剧下降,严重时,将导致系统无法运行,影响系统的稳定性。当内存不够用时,常见的问题就是报tomcat内存益处错误,从儿导致客户端包500错误的,如下:当用户执行一个大数据的应用时,系统会提示出错:前台错误为:HTTP Status 500-Dispatch[EAITool] to m转载 2018-07-02 11:06:53 · 3975 阅读 · 0 评论 -
解决SpringMVC的@ResponseBody返回中文乱码两种方法
SpringMVC的@ResponseBody返回中文乱码的原因是SpringMVC默认处理的字符集是ISO-8859-1,在Spring的org.springframework.http.converter.StringHttpMessageConverter类中可以看到如下代码:public static final Charset DEFAULT_CHARSET = Charset.fo原创 2018-07-02 11:03:34 · 164 阅读 · 0 评论 -
Oracle、MySql、SQLServer 数据分页查询
最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习..... (一)、 mysql的分页查询 mysql的分页查询是最简单的,借助关键字limit即可实现查询,查询语句通式:/** sql:可以是单表的查询语句,也可以是多表的联合查询语句* firstIndex:其转载 2018-07-03 10:01:41 · 109 阅读 · 0 评论 -
SPRING MVC3的@ResponseBody和ResponseEntity
在传统的开发过程中,我们的控制CONTROLL层通常需要转向一个JSP视图;但随着WEB2.0相关技术的崛起,我们很多时候只需要返回数据即可,而不是一个JSP页面。 SPRING MVC3的@ResponseBody使Controller直接返回数据,而不是直接指向具体的视图;同时通过MessageConverter和produces(如produces="text/pla转载 2018-07-02 10:47:48 · 368 阅读 · 0 评论 -
设置sqlplus访问远程oracle数据库的最快方法
如果要连接远程数据库,传统的一定可行的方法是在本地装一个oracle,然后使用“Network Configuration Assistant”配置,之后用PL/SQL Dev连接oracle官网上提供了最小访问包,就是如下3个包,加起来35MB。1、首先去oracle的官方网站上http://www.oracle.com/technology/software/tech/oci/转载 2018-07-03 09:25:49 · 1213 阅读 · 0 评论 -
Oracle定时器
declarejobno number;begin dbms_job.submit( jobno,--定时器ID,系统自动获得 'PRC_INSERT;', --what执行的过程名 sysdate,--next_date,定时器开始执行的时间,这样写表示立即执行 'sysdate + 15/1440'--interval,设置定时器执行的转载 2018-07-02 11:18:25 · 613 阅读 · 0 评论 -
Java - 对象与垃圾回收
垃圾回收Java的垃圾回收是Java语言的重要功能之一。当程序创建对象、数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存中,当这块内存不在被任何引用变量引用时,这块内存就变成垃圾,等待垃圾回收机制进行回收。垃圾回收机制具有如下特征:(1)垃圾回收机制只负责回收对内存中的对象,不会回收任何物理资源(例如数据库连接、网络IO等资源)。 (2)程序无法精确原创 2018-07-03 09:17:45 · 290 阅读 · 0 评论 -
mybatis调用oracle存储过程
1.无输入和输出参数的存储过程我写了一个比较简单的,需要注意的是Oracle无参存储过程不能写括号CREATE OR REPLACE Procedure cascadeoperationAsBegin Delete From teacher Where id=1; Update studentdetail Set address='宁波市海曙区' Where studentid=1原创 2018-06-29 09:48:07 · 4556 阅读 · 0 评论 -
myEclipse+tomcat 热部署
MyEclipse中开发网站项目如何设置关联的Tomcat服务器热启动,即修改项目源代码时不需要每次都重启Tomcat 目前在做一个网站项目,使用MyEclipse+Tomcat,每次修改项目源代码时,都需要重启tomcat、重新导出项目到webapps文件夹或者重新部署,太麻烦。于是研究了一下tomcat如何设置成热启动,即修改源代码时不需要重启tomcat服务器。方法如下:转载 2018-06-29 09:55:29 · 268 阅读 · 0 评论 -
sqlserver数据库,MyBatis调用存储过程,含有返回结果集、return参数和output参数
存储过程:use base_passportgo create proc yhj_test @input_a int, @input_b int, @output_c int outasbegin select * from config.city; set @ou原创 2018-06-29 09:34:40 · 3081 阅读 · 0 评论 -
SpringMVC使用@ResponseBody返回json中文乱码
Spring中解析字符串的转换器默认编码居然是ISO-8859-1,导致使用@ResponseBody返回json中文出现乱码。解决方法一,使用(produces = "application/json; charset=utf-8"): @RequestMapping(value="/getUsersByPage",produces = "application/json;原创 2018-06-28 15:20:28 · 797 阅读 · 0 评论 -
Spring与Quartz的结合使用
1. [代码]QuartzJob.java Quartz的任务调度 ?12345678packagecom.kay.quartz; publicclass QuartzJob { publicvoid转载 2018-07-01 15:59:01 · 123 阅读 · 0 评论 -
Log4J日志配置详解
一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、转载 2018-07-01 15:32:48 · 86 阅读 · 0 评论 -
Tomcat单机多实例
在这篇文章中,我们将会看到在单机单用户基础上,如何运行多个tomcat实例。我们首先看到的是tomcat的目录结构,其每个文件夹有以下用途:bin – 包含所有运行tomcat的二进制和脚本文件lib – 包含tomcat使用的所有共享库conf - 包含配置信息,如tomcat绑定的端口等logs – 包含所有的日志文件temp – 此目录是tomcat存放的临时文件webapp转载 2018-07-01 15:54:38 · 286 阅读 · 0 评论 -
windows环境下Tomcat配置多个实例
详情参见tomcat安装目录下RUNNING.txt中Advanced Configuration - Multiple Tomcat Instances部分。问题源于下面这段tomcat官方文档的介绍:Throughout the docs, you'll notice there are numerous references to $CATALINA_HOME. This r原创 2018-07-01 15:49:27 · 325 阅读 · 0 评论 -
SpringMVC从Controller跳转到另一个Controller
PK亲测】能正常跳转的写法如下:return "forward:aaaa/bbbb.do";return "redirect:aaaa/bbbb.do";return new ModelAndView("forward:bbbb.do", null);return new ModelAndView("redirect:bbbb.do", null); WEB-INF/转载 2018-06-30 14:55:41 · 170 阅读 · 0 评论 -
RedirectAttributes详解
RedirectAttributes 的两个方式的获取总结:1:addFlashAttributeJava code?1234567891011 @RequestMapping(value="hello")原创 2018-06-30 14:57:53 · 6792 阅读 · 1 评论 -
过滤器 拦截器 controller 页面 的执行顺序
经过本人的最后测试得出的结论是由于最近做的项目中有一部分是接口远程调用,用到了接入权限和业务权限的鉴定,需要采用SpringMVC的拦截器,以前用Struts2的时候用过拦截器,而SpringMVC的拦截器功能之前没研究过,所以这次来稍微研究一下,得出的结论是SpringMVC的拦截器和Struts2的拦截器原理几乎是一模一样的,都是利用反射功能实现动态代理。因为过滤器转载 2018-06-30 16:28:55 · 797 阅读 · 0 评论 -
SpringMVC启动过程详解
通过对SpringMVC启动过程的深入研究,期望掌握Java Web容器启动过程;掌握SpringMVC启动过程;了解SpringMVC的配置文件如何配置,为什么要这样配置;掌握SpringMVC是如何工作的;掌握Spring源码的设计和增强阅读源码的技巧。目录1.Web容器初始化过程2.SpringMVC中web.xml配置3.认识ServletContextLi转载 2018-06-30 16:23:47 · 134 阅读 · 0 评论 -
Nginx+Apache配合使用
本文将要介绍的Nginx+Apache结构,其实就是Nginx做前端,Apache做后端,充分发挥他们各自的优势之处。Nginx对于高并发性能出众,Proxy功能强效率高,占用系统资源少,而Apache在高并发时对队列的处理比FastCGI(Nginx需要通过fastcgi等方式运行php)更好,并且在处理动态php页面时,mod_php也比php-cgi更稳定更高效。也就是说,我们的目的转载 2018-07-01 15:42:50 · 8190 阅读 · 1 评论 -
SpringMVC访问静态资源
在SpringMVC中常用的就是Controller与View。但是我们常常会需要访问静态资源,如html,js,css,image等。默认的访问的URL都会被DispatcherServlet所拦截,但是我们希望静态资源可以直接访问。该肿么办呢?在配置文件:web.xml可以看到: Processes application requests -->原创 2018-06-28 15:36:58 · 88 阅读 · 0 评论