![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
bidianzhang
这个作者很懒,什么都没留下…
展开
-
t-io初学
1、t-io是神马? t-io是一个网络框架,从这一点来说是有点像 netty 的,但 t-io 为常见和网络相关的业务(如 IM、消息推送、RPC、监控)提供了近乎于现成的解决方案,即丰富的编程 API,极大减少业务层的编程难度。2、怎么用?分为服务端和客户端,先看服务端!① maven引入依赖 <dependency> <groupId>org.t-io</groupId> <artifactId>...转载 2020-08-18 15:50:53 · 2132 阅读 · 0 评论 -
t-io 的学习笔记
ObjWithLock 描述: 自带读写锁的对象 代码: package org.tio.utils.lock;import java.io.Serializable;import java.util.concurrent.locks.ReentrantReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock;import java.util.concurrent.loc转载 2020-08-18 15:43:41 · 1353 阅读 · 1 评论 -
SpringMVC运行流称总结(DispatcherServlet-doDispatch)
1、运行流程1)、所有请求都是由前端控制器处理;2)、请求路径和RequestMapping进行对比,3)、找到就直接利用反射调用方法4)、把方法返回值作为页面地址,直接转发到这个页面;四步: 所有请求进来都经过DispatcherServlet的900:doDispatch()方法(包含了处理请求以及响应的所有流程)1)、916;getHandler(processedRequest);根据当前请求获取到能处理这个请求的Controller对象2)、923:找到能执行...转载 2020-08-07 10:36:26 · 432 阅读 · 0 评论 -
Java过滤器与SpringMVC拦截器之间的关系与区别
今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊,而且看的比较粗浅,没有一个全局而又细致的认识,由于已至深夜,时间原因,我就把一些网友的观点重点摘录下来,大家仔细看后也一定会有一个比较新的认识(在此非常感谢那些大牛们的无私奉献,分享他们的经验与心得,才能让像我这样的小白有机会站一下你们这些巨人的肩膀,才能少走些弯路)。 过滤器和拦截器的区别: ①拦截器是基于Java的反射机制的,而过滤器是基于函数.转载 2020-08-04 18:04:30 · 109 阅读 · 0 评论 -
如何利用RabbitMQ生产一个简单的消息
最近业务中有有这样一个场景,就是用户在商城下单之后,如果30分钟没有付款,那么就需要将这个订单处理掉,要么直接删除,要么直接标识为失效状态,为什么要这么做? 1、库存,用户在下单之后,会锁定一个库存,如果用户一直不支付,那么就会占用库存,影响别的用户购买, 2、随着业务的发展,用户量的增加,我们的订单数据会越来越多,那么我们要及时的清理无效的订单,提升系统的性能; 曾经的纯洁无瑕首先说下,我曾经那些纯洁无瑕的想法,第一次看到这种需求的时候,如果要清理失效的订单,那我直接写一个定时任务转载 2020-08-04 17:49:20 · 639 阅读 · 0 评论 -
Spring Boot -01- 快速入门篇(图文教程)
今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到【慕课网】手机 app,去找【Spring Boot 2.0 深度实践】的课程,令人开心的是,课程完全免费!什么是 Spring Boot?Spring Boot 是由 Pivotal 团队提供的全新框架。Spring Boot 是所有基于 Spring Framework 5.0 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程转载 2020-07-30 09:51:42 · 332 阅读 · 0 评论 -
maven中dependency的属性
maven依赖的dependency中有 9种依赖属性,分别是: groupId,artfactId,version,type,classifier,scope,systemPath,exclusions,optional 。其中groupId,artfactId,version是三个基本的依赖坐标,不可缺少。 groupId------包名(一般为域名的反写)。 artfactId------项目名。 version-------版本。 type-...转载 2020-07-30 09:17:26 · 998 阅读 · 0 评论 -
spring boot之@Controller和@RestController区别及应用
@Controller和@RestController区别:在springboot开发中控制层使用注解@Controller时,加有@GetMapping(@PostMapping或@RequestMapping)注解的方法返回值对应的是一个视图,而使用@RestController返回值对应的是json数据,而@Controller+@ResponseBody的作用相当于@RestController。@Controller的应用先在application.properties配置文件中配.转载 2020-07-27 16:05:18 · 130 阅读 · 0 评论 -
springboot过滤器和拦截器的实现和区别
springmvc中有两种很普遍的AOP实现:1.过滤器(Filter)2.拦截器(Interceptor)本篇面对的是一些刚接触springboot的人群所以主要讲解filter和interceptor的简单实现和它们之间到底有什么区别(一些复杂的功能我会之后发出文章,请记得关注)Filter的简单实现字面意思:过滤器就是过滤的作用,在web开发中过滤一些我们指定的url那么它能帮我们过滤什么呢?那功能可就多了:比如过拦截掉我们不需要的接口请求修改请求(request)和响应(转载 2020-07-27 09:13:48 · 681 阅读 · 0 评论 -
SpringBoot实现过滤器、拦截器与切片
正文 Q:使用过滤器、拦截器与切片实现每个请求耗时的统计,并比较三者的区别与联系过滤器Filter过滤器概念Filter是J2E中来的,可以看做是Servlet的一种“加强版”,它主要用于对用户请求进行预处理和后处理,拥有一个典型的处理链。Filter也可以对用户请求生成响应,这一点与Servlet相同,但实际上很少会使用Filter向用户请求生成响应。使用Filter完整的流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行预处理并生成响应,最后Filter...转载 2020-07-27 09:05:30 · 203 阅读 · 0 评论 -
foreach中collection的三种用法
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有 item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名,index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符,close表示以什么结束。在使用foreach的时候最关...转载 2020-07-16 10:19:16 · 9719 阅读 · 0 评论 -
Mybatis常见面试题总结
1、什么是Mybatis?(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。(2)MyBatis 可以使用XML 或注解来配置和映射原生信息,将POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。(3)通过xml 文件或注解的方式将要执行的各种 stat..转载 2020-07-16 10:06:24 · 184 阅读 · 0 评论 -
mybatis include refid=“xxxx“的含义
<sql id="Base_Column_List" > collegeID, collegeName</sql><select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" > select <include refid="Base_Column_List" /> fro...转载 2020-07-13 09:52:13 · 7690 阅读 · 0 评论 -
SpringMVC框架08——统一异常处理
前言在Spring MVC 应用的开发中,不管是对底层数据库操作,还是业务层或控制层操作,都会不可避免地遇到各种可预知的、不可预知的异常需要处理。如果每个过程都单独处理异常,那么系统的代码耦合度高,工作量大且不好统一,以后维护的工作量也很大。在Spring MVC中提供了三种统一异常处理的方式,能够将所有类型的异常处理从各层中解耦出来,这样既保证了相关处理过程的功能单一,又实现了异常信息的统一处理和维护。1、演示案例准备为了验证Spring MVC 框架的3中异常处理方式,需要编写一个测试的应转载 2020-06-19 10:29:59 · 236 阅读 · 0 评论 -
SpringMVC框架07——服务器端JSR303数据校验
1、数据校验概述数据校验分为客户端校验和服务器端校验,客户端主要是通过过滤正常用户的误操作,是第一道防线,一般使用JavaScript代码实现。但是只有客户端校验是不够的,攻击者可以绕过客户端验证直接进行非法输入,这样可能会引起系统异常,为了确保数据的合法性,防止用户通过非正常手段提交错误信息,必须加上服务器端验证。服务器端校验是整个应用阻止非法数据的最后一道防线,通过应用中的编程实现。服务器端验证对于系统的安全性、完整性、健壮性起到了至关重要的作用。在Spring MVC 框架中可以利用Spring转载 2020-06-19 10:28:54 · 220 阅读 · 0 评论 -
SpringMVC框架06——文件上传与下载
1、文件上传Spring MVC框架的文件上传是基于commons-fileupload组件的文件上传,只不过Spring MVC框架在原有文件上传组件上做了进一步封装,简化了文件上传的代码实现。1.1、单文件上传需要commons-fileupload组件相关依赖<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload<转载 2020-06-19 10:27:51 · 208 阅读 · 0 评论 -
SpringMVC框架05——拦截器
1、拦截器概述Spring MVC的拦截器(Interceptor)与Java Servlet的过滤器(Filter)类似,它主要用于拦截用户的请求并做相应的处理,通常应用在权限验证、记录请求信息的日志、判断用户是否登录等功能上。2、拦截器与过滤器的区别拦截器是使用JDK动态代理实现的,拦截的是对应调用方法的拦截;过滤器是使用Filter实现的,拦截的是request请求对象3、定义单个拦截器创建Controller类,代码如下:@Controllerpublic clas转载 2020-06-19 10:26:13 · 149 阅读 · 0 评论 -
SpringMVC框架04——RESTful入门
1、RESTful的基本概念REST(Representational State Transfer)表述性状态转移,REST并不是一种创新技术,它指的是一组架构约束条件和原则,符合REST的约束条件和原则的架构,就称它为RESTful架构。RESTful具体来讲就是HTTP协议的四种形式表示四种基本操作:GET(获取资源)、POST(新建资源)、PUT(修改资源)、DELETE(删除资源)2、RESTful架构的特点统一了客户端访问资源的接口url更加简洁,易于理解,便于扩展有利于不同转载 2020-06-19 10:25:06 · 133 阅读 · 0 评论 -
SpringMVC框架03——数据绑定
1、绑定基本数据类型在Controller类中添加业务方法:/** * 绑定基本数据类型 */@RequestMapping("/baseType")@ResponseBodypublic String baseType(@RequestParam("id") int id){ return "id="+id;}访问:2、绑定包装类Controller类中的业务方法:/** * 绑定包装类 */@RequestMapping("/pac.转载 2020-06-19 10:24:12 · 203 阅读 · 0 评论 -
SpringMVC框架02——SpringMVC的Controller详解
1、基于注解的控制器1.1、@Controller 注解类型在SpringMVC中使用org.springframework.stereotype.Controller注解类型声明某类的实例是一个控制器。代码示例:import org.springframework.stereotype.Controller;@Controllerpublic class TestController {}在SpringMVC中使用扫描机制找到应用中所有基于注解的控制器类,需要在springm.转载 2020-06-19 10:21:44 · 2397 阅读 · 0 评论 -
SpringMVC框架01——使用IDEA搭建SpringMVC环境
1、Spring MVC 入门1.1、Spring MVC 简介把Web应用程序分为三层,分别是:控制器(Controller):负责接收并处理请求,响应客户端; 模型(Model):模型数据,业务逻辑; 视图(View):呈现模型,与用户进行交互;目前最好的实现MVC设计模式的框架,是Spring框架的一个子模块,可以与Spring很好的结合使用,无需整合。1.2、SpringMVC核心组件DispatcherServlet:前置控制器 Handler:处理器,完成具体业务转载 2020-06-19 10:19:45 · 231 阅读 · 0 评论 -
MyBatis与Hibernate区别
7、Hibernate与MyBatis对比7.1 相同点Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。Hibernate和MyBatis都支持JDBC和JTA事务处理。7.2 不同点(转载 2020-06-19 10:14:12 · 93 阅读 · 0 评论 -
什么是ssm框架?
SSM框架就是:Spring + Spring MVC + MyBatis这样的回答等于没说吧,说个新手能懂的:Spring看到这个,很多人会和你说什么控制反转(IoC),依赖注入(DI)、AOP、事务什么……对新手来说,这些是什么鬼呢?控制反转我不写定义,就说一下你的电脑。你的电脑上有usb口吧,有hdmi口吧。电脑上用什么键盘,不取决于电脑本身,而是插在usb上的键盘是什么?这个能理解吧。你看控制电脑用什么输入的设备并不是由电脑控制的,而是你插入的键盘是什么来控制的。这个控制不就反了转载 2020-06-19 10:10:11 · 330 阅读 · 1 评论 -
java Map及Map.Entry详解
Map是java中的接口,Map.Entry是Map的一个内部接口。 Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。 Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为E转载 2017-03-13 10:46:17 · 659 阅读 · 0 评论 -
Java中Collection和Collections的区别
1、java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。 Collection ├List │├LinkedList │├ArrayList │└Vector │转载 2017-03-13 10:57:04 · 361 阅读 · 0 评论 -
Java知识点汇总
汇总链接 网址 http://pengcqu.iteye.com/blog/504630原创 2017-03-13 11:06:40 · 492 阅读 · 0 评论 -
查询数据库中重复记录的方法
0, select peopleId,count(*) from people group by peopleId having count(*) >1;1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from转载 2017-06-12 20:13:09 · 6616 阅读 · 0 评论 -
基于Maven构建整合SpringMVC+Mybtis+Druid
前几天趁空闲时间整合了下SpringMVC+Mybatis+Druid,这里小记录下,这个Demo是基于Maven构建的,数据源用的是阿里巴巴温少的开源项目Druid,数据库用的是Mysql。由于eclipse去安装Maven很不方便,也老出错,这里我使用的是Spring Tool Suite(STS,基于 Spring IDE ,提供了其它的一些特性,如 基于 Spring dm Ser转载 2016-10-25 11:47:37 · 1205 阅读 · 1 评论 -
org.apache.jasper.JasperException: Unable to compile class for JSP
我也遇到了这样的问题,这样的问题主要是由于你配置的环境变量的原因所造成的我们来看一下造成这种情况的主要原因:很明显他说:org.apache.jasper.JasperException: Unable to compile class for JSP意思是不他不能够完成类的编绎,造成他的的原因是我没有正确配置我的vm,在这里我提前说一下我的这个项目在手动启动Tomcat的statup.b转载 2016-02-22 21:12:11 · 1278 阅读 · 0 评论 -
Eclipse创建Maven-Web项目及解决 jre版本和web.xml版本问题
Eclipse 通过 Maven 建立 SSM 框架项目(web项目)时,默认的web.xml文件版本为 2.3,jre版本为 1.5;在修改其版本遇到了各种问题 例如:web.xml is missing and is set to trueJavaServer Faces 2.2 can not be installed : One or more constraints hav转载 2017-02-05 17:21:22 · 2001 阅读 · 0 评论 -
eclipse下搭建maven web项目
小生初步接触maven项目,纯粹为了不想每次新建项目都东找西找各种jar包,听说maven对jar包可以统一管理,有个中央仓库可以下载,所以就去接触一下了,以下是我搭建一个maven wen项目的过程。 1:安装m2e eclipse插件 (1):eclipse较新的版本例如luna,mars,neon都已经自带m2e插件,没有的话选择HELP->Eclipse Marketpla转载 2017-02-05 17:20:25 · 913 阅读 · 0 评论 -
代码覆盖率 (Code Coverage)从简到繁 (一)
代码覆盖率(Code Coverage)是反映测试用例对被测软件覆盖程度的重要指标,也是衡量测试工作进展情况的重要指标。它也是对测试工作进行量化的重要指标之一,测试工作往往不如开发那样激动人心,一个重要原因之一就是测试难于量化,而代码覆盖率恰恰是解决着一问题的重要指标。根据其覆盖内容的不同,又可以细分为:语句覆盖、判定覆盖、条件覆盖、路径覆盖以及循环覆盖等等,这里有一篇很好的博客《代码覆盖率浅谈》转载 2016-09-27 09:46:36 · 5157 阅读 · 0 评论 -
Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If
在eclipse启动tomcat时遇到超时45秒的问题: Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor. 网上转载 2016-08-25 08:53:03 · 396 阅读 · 0 评论 -
java spring mvc+mysql 整合写的一个简单的登录
花了半天时间整了一个spring mvc+mysql数据库的一个简单的登录,适合新手。开发环境:myeclipse8.6+mysql5.1。 首先,这篇文章是建立在上一篇的基础上的,这里主要说mvc,MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。模型就是model,它负责封装应用程转载 2016-08-24 17:14:11 · 2022 阅读 · 2 评论 -
初见memcached
一、 概念Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。二、 适用场合1. 分布式应用。由于memcached本身基于分布式的系统,所以尤其适合大型的分布式系统。2. 数据库前段缓存。数据库常常是网站系统的瓶颈。数据库的大并发量访问,常常造成网站内存溢出。当然转载 2016-08-24 08:23:24 · 304 阅读 · 0 评论 -
测试用例生成中启发式算法G、GRE源码
谁有启发式算法G、GRE源码 不胜感激原创 2016-06-16 21:41:28 · 504 阅读 · 0 评论 -
How to install Eclipse JavaScript Development Tools (JSDT)
JSDP provide plug-ins that implement an IDE supporting the development of JavaScript applications and JavaScript within web applications. It adds a JavaScript project type and perspective to the Eclip转载 2016-03-12 20:14:17 · 1817 阅读 · 0 评论 -
在Java里json接口怎么写
apache有很好用的json解析包 直接下过来用就行了下载地址http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/使用方法你可以看看这个http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html自己琢磨一下不懂再问转载 2016-02-24 21:49:14 · 4874 阅读 · 0 评论 -
计算流图中的前必经节点
《现代编译器的Java实现》中的一图,左边是流图,右边是必经节点树根据必经节点的算法写了程序验证了下。只是为了验证算法,并没有考虑最优算法,不过因为此流图足够简单,所以只迭代了两次即求出了结果。代码如下:Node类抽象图中的节点,Dominator类用来计算 1 import java.util.ArrayList; 2 import java.util.List;转载 2016-03-18 19:27:18 · 2236 阅读 · 0 评论 -
Java代码分析器(一): JDT入门
这是一个关于抽象语法树(Abstract Syntax Tree, AST)的故事。抽象语法树是对程序代码的结构化表示,是对代码进行词法分析、语法分析后得到的产物。编译器要用到它,很多生产力工具也要用它,例如:IDE可以自动重构、自动生成一些代码、自动对不规范代码发出警告。这是很强很实惠的功能。一个大型软件项目常常有几百人合作,几百万行代码。很多代码规范难以百分百落实,很多编程错误转载 2016-03-15 20:33:36 · 7069 阅读 · 1 评论