手写SpringMVC实战,从Spring底层源码分析与设计

课程内容: 1,三分钟熟悉Spring底层源码,你只需准备好鲜花即可; 2,Spring源码很可怕?那是因为你没听过James的课; 3,快速熟悉源码基础,洞析SpringMVC与Spring框架关系; 4,@Controller,@Service这些注解算什么,一通百通; 5,从Spring...

2018-08-30 18:10:28

阅读数 148

评论数 0

为什么说Java程序员必须掌握 Spring Boot ?

Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,那么, Spring Boot 诞生的背景是什么?Spring 企业又是基于什么样的考虑创建 Spring Boot? 传统企业使用 Spring Boot 会给我们带来什么样变革? 带着这些问题,我们一起来了解...

2018-08-28 15:53:53

阅读数 144

评论数 0

java封装实现Excel建表读写操作

对 Excel 进行读写操作是生产环境下常见的业务,网上搜索的实现方式都是基于POI和JXL第三方框架,但都不是很全面。小编由于这两天刚好需要用到,于是就参考手写了一个封装操作工具,基本涵盖了Excel表(分有表头和无表头)的创建,并对它们进行读写操作。为方便大家,有需要者可以点击文后点解下载直接...

2018-08-28 15:51:13

阅读数 190

评论数 0

Java虚拟机16:Metaspace

被废弃的持久代 想起之前面试的时候有面试官问起过我一个问题:Java 8为什么要废弃持久代即Metaspace的作用。由于当时使用的Java 7且研究重心不在JVM上,一下没有回答上来,今天突然想起这个问题,就详细总结一下这个问题。 首先我们看一张JVM内存布局的图: 注意到里面有一块M...

2018-08-21 16:05:33

阅读数 81

评论数 0

spring-boot项目freemarker模板使用jquery.pjax实现页面无刷新渲染

先看效果图 pjax是啥,自行百度,关于它的兼容性可以看一下我另一篇博客: https://tomoya92.github.io/2017/04/25/nodejs-pjax/ 创建项目,引入文件 使用IDEA创建一个spring-boot项目,只需要 web freemarker 依赖...

2018-08-21 15:34:36

阅读数 419

评论数 0

JavaScript数组方法总结篇

方法在数组的尾部添加一个或多个元素,并返回数组的长度 参数: item1, item2, …, itemX ,要添加到数组末尾的元素 let arr = [1,2,3]; let length = arr.push('末尾1','末尾2'); // 返回数组长度 console.log(a...

2018-08-18 20:43:32

阅读数 84

评论数 0

架构师细说 NGINX 的配置及优化

最近感觉很多东西在运用到一定的程度之后,会发现原来是自己了解到的不够。一方面限于实际运用到的不多,一方面可能是因为一开始没有进行全面认识。遂这里搜集整理了一番NGINX。 一、nginx启动和关闭 centos平台,源码安装的 /usr/local/nginx/nginx # 启动 /us...

2018-08-16 16:22:59

阅读数 146

评论数 0

JAVA消息确认机制之ACK模式

JMS API中约定了Client端可以使用四种ACK模式,在javax.jms.Session接口中: AUTO_ACKNOWLEDGE  = 1    自动确认 CLIENT_ACKNOWLEDGE  = 2    客户端手动确认    DUPS_OK_ACKNOWLEDGE  = 3 ...

2018-08-16 16:17:37

阅读数 579

评论数 0

八、 Java程序初始化的顺序

今天在写构造器方法的时候,遇到了一个小问题,由这个问题引发了一连串的思考,在一个Java类中变量与类的初始化执行顺序是什么样的呢? ## 发现问题 class Student{ private String name; void setName(String name){...

2018-08-16 16:14:29

阅读数 68

评论数 0

Java动态代理-实战

只要是写Java的,动态代理就一个必须掌握的知识点,当然刚开始接触的时候,理解的肯定比较浅,渐渐的会深入一些,这篇文章通过实战例子帮助大家深入理解动态代理。 说动态代理之前,要先搞明白什么是代理,代理的字面意思已经很容易理解了,我们这里撇开其他的解释,我们只谈设计模式中的 代理模式 什么是代理...

2018-08-16 16:12:19

阅读数 80

评论数 0

Java并发编程笔记之ConcurrentHashMap原理探究

在多线程环境下,使用 HashMap 进行 put 操作时存在丢失数据的情况,为了避免这种bug的隐患,强烈建议使用 ConcurrentHashMap 代替 HashMap。 HashTable是一个线程安全的类,它使用synchronized来锁住整张Hash表来实现线程安全,即每次锁住整张...

2018-08-15 17:31:35

阅读数 81

评论数 0

Java HashMap类源码解析

作为重要的常用集合,HashMap主要是提供键值对的存取,通过key值可以快速找到对应的value值。Hash表是通过提前设定好的规则计算一个元素的hash值来找到他在数组中的存储位置进行快速定位,假设有一个大小为10的数组,可以设定简单的计算规则为元素转为int后mod 10,由此元素的hash...

2018-08-13 14:43:45

阅读数 64

评论数 0

Javascript 模块化指北

前言 随着 Web 技术的蓬勃发展和依赖的基础设施日益完善,前端领域逐渐从浏览器扩展至服务端(Node.js),桌面端(PC、Android、iOS),乃至于物联网设备(IoT),其中 JavaScript 承载着这些应用程序的核心部分,随着其规模化和复杂度的成倍增长,其软件工程体系也随之建立起...

2018-08-11 18:37:50

阅读数 62

评论数 0

Java注解处理器使用注意事项

Java注解处理器使用注意事项 目录 [TOC] 注解 元注解 @Target 用于标记可以应用于哪些类型上. 类型说明 元素类型 适用场合 ANOTATION_TYPE 注解类型声明 PACKAGE 包 TYPE 类,枚举,接口,注解 ME...

2018-08-07 21:21:25

阅读数 76

评论数 0

Spring AOP整合redis 实现缓存统一管理

项目使用redis作为缓存数据,但面临着问题,比如,项目A,项目B都用到redis,而且用的redis都是一套集群,这样会带来一些问题。 问题:比如项目A的开发人员,要缓存一些热门数据,想到了redis,于是乎把数据放入到了redis,自定义一个缓存key:hot_data_key,数据格式是项...

2018-08-06 17:43:59

阅读数 639

评论数 1

Spring Boot与Spring Cloud是什么关系?

SpringBoot先于Spring Cloud问世。 SpringBoot相当于脚手架,借助他可以快速搭建房子,它本身不具备任何功能属性,值是普通房间,没有其他任何功能。 什么是Spring Boot Spring Boot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的...

2018-08-06 17:42:13

阅读数 78

评论数 0

Java并发(4)- synchronized与CAS

引言 上一篇文章中我们说过,volatile通过lock指令保证了可见性、有序性以及“部分”原子性。但在大部分并发问题中,都需要保证操作的原子性,volatile并不具有该功能,这时就需要通过其他手段来达到线程安全的目的,在Java编程中,我们可以通过锁、synchronized关键字,以及CA...

2018-08-01 17:17:01

阅读数 50

评论数 0

Java String类源码解析

String直接继承Object 含有一个char[] value,还有一个int hash默认值为0 new String()的构造产生的是一个值为””的字符数组 String( char value[], int offset, int count)当count=0且offset&...

2018-08-01 17:13:09

阅读数 78

评论数 0

SpringCloud微服务实战---服务的注册和发现(Eureka)

一、Spring Cloud简介 Spring Cloud是基于SpringBoot的,为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。 二、创建服务注册中心 在这里,我们需要用的的组件上Spring C...

2018-07-30 20:14:16

阅读数 336

评论数 0

如何优雅的使用和理解线程池

前言 平时接触过多线程开发的童鞋应该都或多或少了解过线程池,之前发布的《阿里巴巴 Java 手册》里也有一条:       可见线程池的重要性。 简单来说使用线程池有以下几个目的: 线程是稀缺资源,不能频繁的创建。 解耦作用;线程的创建于执行完全分开,方便维护。 应当将其放入...

2018-07-30 17:24:01

阅读数 262

评论数 0

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