自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 Collection接口详解

集合家族Collection接口Collection接口Api一览为什么重写Iterable接口的iterator方法Collection Api 详解Collection接口在Java8中的函数扩展Iterator 接口Iterator Api详解ArrayList的自定义迭代器List 接口List接口Api一览List集合的特点ListIterator接口...

2018-05-29 17:00:41 36747 2

原创 Spring Boot 集成 lombok 让代码更简洁

话不多说,先上图:IDEA安装lombok插件IntelliJ IDEA 定位到 File > Settings > Plugins点击 Browse repositories…搜索 Lombok Plugin点击 Install plugin重启 IDEASpring Boot项目中使用lombok添加lombok依赖 <!-- lombok代码简化 --> <de

2017-09-13 17:27:26 4425 1

转载 为什么使用 SLF4J 而不是 Log4J 来做 Java 日志

每个Java开发人员都知道日志记录对Java应用的重要性,尤其是对服务端应用,而且其中许多人都已经熟悉了各种记录日志的库,比如java.util.logging,Apache的log4j,logback,然而如果你不知道SLF4J,java的简单记录日志的设计的话 ,那么到了学习并在你的项目中使用它的时候了。在这篇Java文档里,我们将学习为什么使用SLF4J比使用log4j或者java.util.

2017-06-22 10:41:34 489

原创 IntelliJ IDEA 源值1.5已过时,将在未来所有版本中删除

原因: IDEA默认把项目的源代码版本设置为jdk1.5,目标代码设置为jdk1.5解决方案: 1. 修改Maven的Settings.xml文件添加如下内容<profiles> <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true

2017-06-22 10:12:01 2053 2

转载 Java设计模式——适配器模式

适配器模式概述:适配器模式将一个类的接口,转换成客户期望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。解决的问题:即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。非常形象的一张图:用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得

2017-06-22 09:23:23 398

原创 SpringMVC的<mvc:default-servlet-handler/>

该博客仅为本人学习时笔记记录。不能保证没有错误,请结合自己思想参考。项目源码: github地址:https://github.com/JYG0723/springmvcpractice/tree/mastermvc:default-servlet-handler 的作用优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以

2017-05-18 22:10:59 1010

原创 SpringMVC拦截器

该博客仅为本人学习时笔记记录。不能保证没有错误,请结合自己思想参考。项目源码: github地址:https://github.com/JYG0723/springmvcpractice/tree/master什么是拦截器拦截器的作用: 1. 拦截器就是浏览器发送往wen服务器的请求。来对他请求的数据或者返回的数据 做一些更改,或者在请求的执行之前或者在请求的执行之后加入一些代码。 以此来对一些

2017-05-18 22:10:07 395

原创 SpringMVC基础

业务流程:SpringMVC的整体模块架构:分析: 1. 由最先的HTPP发送请求,由所配置的XML中的DispatcherServlet处理。DispatcherServlet接受到这个请求后,根据请求的信息及HandlerMapping的配置找到处理请求的处理器Handler。得到HandlerMapping对应的Handler后,通过HandlerAdapter对Handler进行封装,

2017-05-16 15:46:05 442

转载 SpringMVC介绍之视图解析器ViewResolver

SpringMVC视图解析器出处 http://haohaoxuexi.iteye.com/blog/1770554前言   在前一篇博客中讲了SpringMVC的Controller控制器,在这篇博客中将接着介绍一下SpringMVC视图解析器。当我们对SpringMVC控制的资源发起请求时,这些请求都会被SpringMVC的DispatcherServlet处理,接着spring会分析看哪

2017-05-15 09:57:50 508

原创 Mybatis基础

什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。Mybatis 与

2017-05-02 12:21:55 347

原创 Mybatis高级应用(上)

动态 SQL通过mybatis提供的各种标签方法实现动态拼接sql。对查询条件进行判断,如果输入的参数不为空才进行查询条件拼接。public class Customer { private int id; private String username; private String password; private User user;}public interf

2017-05-02 12:19:00 723

原创 Mybatis高级应用(下)

延迟加载什么是延迟加载? resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 需求: 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 延迟加载:先从单表查询、需要时再从

2017-05-02 12:12:26 835

原创 Mybatis添加ehcache缓存支持

Mybatis 整合 ehcacheehcache 是一个分布式缓存框架。分布缓存:我们系统为了提高系统并发,性能、一般对系统进行分布式部署(集群部署方式)不使用分布缓存,缓存的数据在各各服务单独存储,不方便系统 开发。所以要使用分布式缓存对缓存数据进行集中管理。mybatis无法实现分布式缓存,需要和其它分布式缓存框架进行整合。分布缓存我们系统为了提高系统并发,性能、一般对系统进行分布式部署(集群

2017-05-02 11:26:34 1634

原创 SpringBoot + Swagger2

注:本文参考自http://www.jianshu.com/p/0465a2b837d2 以及http://www.jianshu.com/p/0465a2b837d2  swagger用于定义API文档。好处:前后端分离开发API文档非常明确测试的时候不需要再使用URL输入浏览器的方式来访问Controller传统的输入URL的测试方式对于post请求的传参比较麻烦(当然,可以使用

2017-04-20 08:44:32 644

原创 搜索引擎的分片(shard)和副本(replica)机制

搜索引擎通过分片(shard)和副本(replica)实现了高性能、高伸缩和高可用。分片技术为大规模并行索引和搜索提供了支持,极大地提高了索引和搜索的性能,极大地提高了水平扩展能力;副本技术为数据提供冗余,部分机器故障不影响系统的正常使用,保证了系统的持续高可用。有2个分片和3份副本的索引结构如下所示:一个完整的索引被切分为0和1两个独立部分,每一部分都有2个副本,即上图的灰色部分。在 生产环境中,

2017-04-19 21:45:16 811

原创 Springboot + Devtools(热部署)

springboot + devtools(热部署)技术介绍devtools:是boot的一个热部署工具,当我们修改了classpath下的文件(包括类文件、属性文件、页面等)时,会重新启动应用(由于其采用的双类加载器机制,这个启动会非常快,如果发现这个启动比较慢,可以选择使用jrebel)双类加载器机制:boot使用了两个类加载器来实现重启(restart)机制:base

2017-04-18 23:33:11 756

原创 单例模式

单例模式一懒汉式单例二饿汉式单例模式Java中单例模式是一种常见的设计模式,单例模式总共有7种写法。 + 懒汉,线程不安全 + 懒汉,线程安全 + 饿汉 + 饿汉,变种 + 静态内部类 + 枚举 + 双重校验锁这里针对常用的单例模式的实现方式主要介绍两种:懒汉式(饱汉式)单例、饿汉式单例。若对其他几种实现方式感兴趣可以移步这里首先单例模式有以下特点: 1、单例类只能有一个实例。

2017-03-30 20:25:51 252

原创 抽象工厂模式

抽象工厂模式总结抽象工厂模式例子背景: 随着Ipone手机的销售火热。同时在**组装**Ipone手机的时候我们需要考虑到手机壳,手机其他配件等其他配件的匹配组装。于是这个工厂开始生产手机壳和其余手机配件,用来组装手机。这时候工厂有两个系列的产品:手机壳和其余配件。Iphone7系列配置A型号手机壳和A型号其余配件,Iphone8系列配置B型号手机壳和B型号其余配件。概念: 抽象工厂模式

2017-03-30 20:10:31 338

原创 工厂模式

工厂模式简单工厂模式工厂方法模式工厂模式一、工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。1.首先我们应该简单明确Java代码规范的开闭原则: 对扩展开放;对修改封闭在明确了java的规范之后,来看所谓的工厂模式。 2.工厂模式在很多地方区分不同,有些地方把它严格区分为三类,简单工厂模式,工厂方法模式,(抽象工厂模式)。大部分时候我们将他

2017-03-30 19:56:23 542

转载 Postman-CI集成Jenkins

Postman-简单使用Postman-进阶使用Postman-CI集成Jenkins  Newman官方说明:Postman’s command-line companion lets you do amazing things! With Newman, you can integrate Postman collections with your build system. Or you

2016-12-08 16:34:27 2399

转载 Postman-进阶使用

Postman-简单使用Postman-进阶使用Postman-CI集成Jenkins   管理请求保存请求-添加“打开百度首页请求”设置请求方式为Get,地址为www.baidu.com.点击右侧保存按钮在弹出的保存请求中设置保存的内容。Collections:百度,Request name:打开百度首页。点击“Add to Collections”此请求会被保存到Collection

2016-12-08 16:31:36 5800

转载 Postman-简单使用

Postman-简单使用  Postman-简单使用Postman-进阶使用Postman-CI集成Jenkins  Postman功能(https://www.getpostman.com/features)主要用于模拟网络请求包快速创建请求回放、管理请求快速设置网络代理安装下载地址:https://www.getpostman.com/直接安装,成

2016-12-08 16:29:35 3801

转载 session原理及实现共享 (精简)

一、session的本质http协议是无状态的,即你连续访问某个网页100次和访问1次对服务器来说是没有区别对待的,因为它记不住你。那么,在一些场合,确实需要服务器记住当前用户怎么办?比如用户登录邮箱后,接下来要收邮件、写邮件,总不能每次操作都让用户输入用户名和密码吧,为了解决这个问题,session的方案就被提了出来,事实上它并不是什么新技术,而且也不能脱离http协议以及任何现有的web技术。

2016-11-01 16:14:59 464

转载 断言(ASSERT)的用法(精简)

我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非“报错”。  在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert()的用法像是一种“契约式编程”,在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个if语句:if(假设成立){ 程序正常运行;}else{ 报错&&终止程序!(避免由程序运

2016-10-30 02:28:35 669

转载 网站重定向中301与302的区别(精简)

网站重定向相信大多数站长都有用到过,最常用到的是301和302这两个http状态码。那么301与302有哪些区别呢,今天部落就来给大家对它们作一个比较,来分析一下这两者之间的区别。301重定向主要是用于在域名的更改或者不带www的域名定向到带www的域名上,而302重定向可能我们的了解就比较少了,302重定向又称之为302代表暂时性转移,英文叫法为302 redirect,可以理解为暂时或者临时重定

2016-10-27 07:55:56 14195

转载 Cookie/Session机制详解

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。1.1  Cookie机制在程序中,会话跟踪是很重要的事情

2016-10-26 12:14:53 212

原创 正确的选择log级别

开发一个应用,日志的重要性不言而喻。然而有时会发现日志中会出现大量的垃圾日志。所谓垃圾日志,就是不需要知道的日志,或者这些日志对于应用查看、跟踪没有什么作用。也正是(但不仅仅是)出于这些问题的考量,常用的日志框架都设置了日志级别。但是在写程序时,这些日志级别该选择哪一种呢,这点并没有一个统一的标准,也没有人教你怎么做。下面就来说说我在开发中是怎么使用这些日志级别的。一般来说,日志级别有以下几个:FA

2016-10-20 00:05:32 13263

转载 Springmvc的@ModelAttribute注解

参考资料:spring-framework-reference的Using @ModelAttribute on a method和Using @ModelAttribute on a method argument先看一个没有使用@ModelAttribute的Controller方法.[java] view plain copy print?@RequestMapping(“/save”)

2016-10-19 19:27:38 396

转载 restful风格,restcontroller与controller详解

restful风格,restcontroller与controller初步接触springmvc的时候,被要求使用restful风格,彼时一头雾水,不懂何谓restful,参阅了很多资料,慢慢的接触的也越来越多,如今spring的况且已基本运用熟练,简单谈一下我的一些看法,当然,只是我自己的浅显粗陋的见解,不对的地方还望指正。restful风格简单的理解,restful是一种url风格,或者说是规范

2016-10-19 17:12:34 3647

转载 浅谈 C/S 和 B/S 架构

概述在这个信息急剧膨胀的社会,我们不得不说人类正进入一个崭新的时代,那就是信息时代。信息时代的一个主要而显著的特征就是计算机网络的应用。计算机网络从最初的集中式计算,经过了Client/Server阶段(有两层C/S和三层C/S),已发展到目前最流行的 Browser/Server计算模式。其中颇具争论和影响力的是C/S以及B/S架构,C/S是一种历史悠久且技术非常成熟的架构,B/S是新生代架构,从

2016-10-18 16:43:49 1928

转载 到底什么是EJB详解

1. 我们不禁要问,什么是”服务集群”?什么是”企业级开发”? 既然说了EJB 是为了”服务集群”和”企业级开发”,那么,总得说说什么是所谓的”服务集群”和”企业级开发”吧!这个问题其实挺关键的,因为J2EE 中并没有说明白,也没有具体的指标或者事例告诉广大程序员什么时候用EJB 什么时候不用。于是大家都产生一些联想,认为EJB”分布式运算”指得是”负载均衡”提高系统的运行效率。然而,估计很多人都搞

2016-10-18 16:21:43 534

转载 spring,mybatis事务管理配置与@Transactional注解使用[转]

spring,mybatis事务管理配置与@Transactional注解使用概述 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。 Spring Framework对事务管理提供了一致的抽象,其特点如下:为不同的事务API提供一致的编程模型,比如JTA(Java Transaction API), JDBC, Hibernate,JPA(Java Persi

2016-10-17 16:17:08 309

原创 @Responsebody与@RequestBody精简详解

预备知识:@RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。@RequestMapping(value = "/aaa")//类级别,可以没有public class myController { @RequestMapping(value = "/bbb")//方

2016-10-11 16:43:28 2114

原创 Java中的 ==,equals方法,hashCode方法的区别

如果要比较实际内存中的内容,那就要用equals方法,但是! 如果是你自己定义的一个类,比较自定义类用equals和==是一样的,都是比较句柄地址,因为自定义的类是继承于object,而object中的equals就是用==来实现的,你可以看源码。 那为什么我们用的String等等类型equals是比较实际内容呢,是因为String等常用类已经重写了object中的equals方法,让equals

2016-10-08 00:23:57 285

原创 Junit 4-和Junit 4+的区别简记

在每一个junit3.8测试类中:必须继承于TestCase类测试方法需要满足如下原则:1、public的2、void的3、无方法参数4、方法名字必须以test开头而在junit4中:不必继承TestCase方法必须是public 方法不必以test开头 ,但是在方式上要加上注解@Test不必有main方法,点击右键,Run As-> Junit

2016-09-19 00:13:32 700

转载 mvn clean install 与 mvn install 的区别(为啥用clean)[转]

原文点击这里之前写代码的过程中曾经遇到过问题,用mvn install后,新改的内容不生效,一定要后来使用mvn clean install 才生效,由于之前没有做记录,以及记不清是什么情况下才会出现的问题,于是想看看clean和不clean的区别。就如大家知道的,maven在执行一个生命周期的命令的是时候将会执行之前的所有生命周期操作,比如执行mvn install,会执行前面一系列的动作包括 c

2016-09-18 02:07:12 2213

原创 Spring---ApplicationContext的事件机制

Spring-ApplicationContext的事件机制 事件源:ApplicationContext。publishEvent()方法:用于主动触发容器事件。 事件:ApplicationEvent类,容器事件,必须由ApplicationContext发布。 事件监听器:ApplicationListener接口,可由容器中任何监听器Bean担任。onApplicat

2016-09-12 13:04:23 517

原创 Java 标记接口

标识接口是没有任何方法和属性的接口.它仅仅表明它的类属于一个特定的类型,供其他代码来测试允许做一些事情.使用标记接口的唯一目的是使得可以用instanceof进行类型查询,例如:if(obj instanceof Cloneable) {………}一些容器例如Ejb容器,servlet容器或运行时环境依赖标记接口识别类是否需要进行某种处理,比如serialialbe接口标记类需要进行序列化操作.ja

2016-09-10 23:58:24 645

翻译 Intellij idea 出现错误 error:java: 无效的源发行版: 8解决方法

出现的问题如图。 见图,从上述可以看出工程用的jdk1.7,而idea编译时采用的是1.8版本(应该idea新版本内置的jre是1.8吧,默认编译采用1.8)修改:如下图如果修改后不起作用。原因:这是由于jdk的版本与项目的要求不一致造成的,如果是maven项目,首先查看一下pom.xml,以我的项目为例:<build> <plugins> <plu

2016-09-09 15:46:32 11856

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除