
spring
文章平均质量分 80
java思维导图666
这个作者很懒,什么都没留下…
展开
-
Spring Boot干货系列:配置文件解析
正文 Spring Boot使用了一个全局的配置文件application.properties,放在src/main/resources目录下或者类路径的/config下。Sping Boot的全局配置文件的作用是对一些默认配置的配置值进行修改。 接下来,让我们一起来解开配置文件的面纱。 注:如果你工程没有这个application.properties,那就在src/main/java...原创 2018-12-18 17:18:16 · 162 阅读 · 0 评论 -
Spring使用Spring的AbstractRoutingDataSource实现多数据源切换
最近因为项目需要在做两个项目间数据同步的需求,具体是项目1的数据通过消息队列同步到项目2中,因为这个更新操作还涉及到更新多个库的数据,所以就需要多数据源切换的操作。下面就讲讲在Spring中如何进行数据源切换。这里是使用AbstractRoutingDataSource类来完成具体的操作,AbstractRoutingDataSource是Spring2.0后增加的。 实现数据源切换的...原创 2018-10-11 14:31:02 · 223 阅读 · 0 评论 -
拯救 Java Code Style 强迫症
这篇文章缘起于上一个持续交付的咨询项目,当时正在指导客户团队的Java工程师做Code Review,发现一个很有意思的现象:有一位工程师对Code Style特别在意,所以在Code Review的大部分时间中都是该工程师在指出哪里哪里的格式不对,但是团队并没有找到改进方法,每次的结论都是“下次我注意一点。”我挺欣赏这位工程师对Code Style的认真态度,所以就萌生了“怎么拯救Code St...原创 2018-09-26 16:11:38 · 2016 阅读 · 0 评论 -
Spring中的统一异常处理
在具体的SSM项目开发中,由于Controller层为处于请求处理的最顶层,再往上就是框架代码的。因此,肯定需要在Controller捕获所有异常,并且做适当处理,返回给前端一个友好的错误码。 不过,Controller一多,我们发现每个Controller里都有大量重复的、冗余的异常处理代码,很是啰嗦。能否将这些重复的部分抽取出来,这样保证Controller层更专注于业务逻辑的处理,同时能够...原创 2018-09-25 20:16:46 · 216 阅读 · 0 评论 -
Redis 和 Memcached 的区别
说到redis就会联想到memcached,反之亦然。了解过两者的同学有那么个大致的印象:redis与memcached相比,比仅支持简单的key-value数据类型,同时还提供list,set,zset,hash等数据结构的存储;redis支持数据的备份,即master-slave模式的数据备份;redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用等等,这似...原创 2018-09-25 20:13:10 · 143 阅读 · 0 评论 -
Java面试前需要了解的东西P8带你们进入面试大世界
一、前言 只有光头才能变强 回顾前面: 广州三本找Java实习经历 上一篇写了自己面试的经历和一些在面试的时候遇到的题目(笔试题和面试题)。 我在面试前针对Java基础也花了不少的时间,期间也将自己写过的博文粗略地刷了一遍,同时也在网上找了不少比较好的资料(部分是没看完的)。在这里给大家分享一下~~~ 这是我刷完自己写过的笔记写的一篇文章导航,针对于PC端的:https://zho...原创 2018-09-19 16:12:50 · 268 阅读 · 0 评论 -
Spring4 + Spring MVC + MyBatis 整合思路
1、Spring框架的搭建 这个很简单,只需要web容器中注册org.springframework.web.context.ContextLoaderListener,并指定spring加载配置文件,那么spring容器搭建完成。(当然org.springframework的核心jar包需要引入) 当然为了更加易用支持J2EE应用,一般我们还会加上如下: Spring监听HTTP请求事件:...原创 2018-09-19 14:57:50 · 182 阅读 · 0 评论 -
你真的很熟分布式和事务吗?
不想了,我等码农,还是看看怎么来处理分布式系统中的事务这个老大难吧! 本文略长,读者需要有一定耐心,如果你是高级码农或者架构师级别,你可以跳过。 本文注重实战或者实现,不涉及CAP,略提ACID。 本文适合基础分布式程序员: 本文会涉及集群中节点的failover和recover问题. 本文会涉及事务及不透明事务的问题. 本文会提到微博和tweeter,并引出一个大数据问题. 由于分布式这...原创 2018-09-18 17:29:08 · 152 阅读 · 0 评论 -
Spring Boot & Spring MVC 异常处理的N种方法
默认行为 根据Spring Boot官方文档的说法: For machine clients it will produce a JSON response with details of the error, the HTTP status and the exception message. For browser clients there is a ‘whitelabel’ erro...原创 2018-09-18 14:39:12 · 167 阅读 · 0 评论 -
Java Thread wait、notify与notifyAll
正文 Java的Object类包含了三个final方法,允许线程就资源的锁定状态进行通信。这三个方法分别是:wait(),notify(),notifyAll(),今天来了解一下这三个方法。在任何对象上调用这些方法的当前线程应具有对象监视器(锁住了一个对象,就是获得对象相关联的监视器),否则会抛出java.lang.IllegalMonitorStateException异常。 w...原创 2018-09-27 16:51:00 · 217 阅读 · 0 评论 -
敏捷开发思维导图,让java不再难懂
0、先来一张导图 image 1、概念 简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。 换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 敏捷最大的特色是迭代式开发。 2、优势 image 1、敏...原创 2018-10-05 15:00:26 · 379 阅读 · 0 评论 -
mybatis-plus思维导图,让mybatis-plus不再难懂
mybatis Mybatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 回顾mybatis...原创 2018-10-05 15:10:29 · 185 阅读 · 0 评论 -
Spring之LoadTimeWeaver——一个需求引发的思考
最近有个需求——记录应用中某些接口被调用的轨迹,说白了,记录下入参、出参等即可。 我选用ApsectJ解决这个问题,前期讨论说在接口层埋点,但这样有个问题,代码侵入比较严重,需要修改每个需要关注的接口实现类。经过一番讨论,决定使用AOP拦截所有这样的接口。 后面又有个新的要求——沙箱环境拦截,生产环境不予拦截。 这样就有个眼前的问题需要我们解决,就是同一份应用包如何区分沙箱环境和生产环境并执...原创 2018-10-31 17:32:02 · 296 阅读 · 0 评论 -
JVM内存结构 VS Java内存模型 VS Java对象模型
Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同的概念,但是很多人容易弄混。 可以这样说,很多高级开发甚至都搞不不清楚JVM内存结构、Java内存模型和Java对象模型这三者的概念及其间的区别。甚至我见过有些面试官自己也搞...原创 2018-10-29 15:10:08 · 146 阅读 · 0 评论 -
揭开Java 泛型类型擦除神秘面纱
泛型,一个孤独的守门者。 大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇。泛型是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违反直觉。 文章开始的地方,先给大家奉上一道经典的测试题。 List<String> l1 = n...原创 2018-10-21 16:15:38 · 183 阅读 · 0 评论 -
Java系统程序员修炼之道
Java系统程序员修炼之道 从2002开始接触Java学会HelloWorld这么经典的程序到如今不知不觉已经十年啦,十年中 亲耳听到过不少大牛的演讲,见到过项目中的神人在键盘上运指如飞的编程速度,当时就 被震撼了。当编程越来越成体力活,我们还能有自己的思想,还能修炼为Java系统级别的 程序员嘛?学习与修炼以下知识与技能,帮你早日达成愿望。 一:Java语言学习 ...原创 2018-09-29 15:10:07 · 330 阅读 · 0 评论 -
ml与java代码相互装换的工具类
这是一个java操作xml文件的工具类,最大的亮点在于能够通过工具类直接生成xml同样层次结构的java代码,也就是说,只要你定义好了xml的模板,就能一键生成java代码。省下了自己再使用工具类写代码的时间,极大得提高了效率。 首先来看看工具类代码 package com.lfq.createXml; import java.io.ByteArrayInputStream; import...原创 2018-10-08 14:35:13 · 209 阅读 · 0 评论 -
Spring思维导图,让spring不再难懂(一)
Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。 它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是Spring仍然可以和其他的框架无缝整合。 1、Spring特征.png Sping架构 Spring框架是分模块存在,...原创 2018-10-06 20:56:00 · 1893 阅读 · 0 评论 -
单点登录原理与简单实现
一、单系统登录机制 1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系 但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏...原创 2018-09-22 17:41:00 · 208 阅读 · 0 评论 -
Jodd 一 款优雅的 Java 工具集
BeanUtil 最快的bean处理库。 一个简单的JavaBean: 1 2 3 4 5 6 7 8 9 10 11 /** * 拿客 * 网站:www.coderknock.com * QQ群:213732117 * 三产 创建于 2016年...原创 2018-09-22 17:39:31 · 987 阅读 · 0 评论 -
深入研究java.lang.ThreadLocal类
一、概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一...原创 2018-09-07 17:19:19 · 155 阅读 · 0 评论 -
Spring:基于注解的Spring MVC(下)
讲了Spring MVC环境搭建、@RequestMapping以及参数绑定,这是Spring MVC中最基础也是最重要的内容,本篇文章继续讲讲Spring MVC中其余的知识点,先从Model开始。 前一篇文章比较详细地解读了数据从页面请求到服务器后台的一些细节,那么下一个要解决的问题就是数据如何从后台再次传回前台,答案就是这里要说的Model,关于Model在写例子之前我特别先说明三点: ...原创 2018-09-07 15:15:41 · 207 阅读 · 0 评论 -
那个说程序员就应该加班的HR,我有一万句MMP想对你说
先说我的观点:程序员工资高,是因为有能力,而不是会加班! 事情是这样~~~ 这几天我公司研发部的小伙伴连续好几天加班到很晚, 我在他们工位后面看着他们疲惫的身影, 心中五味杂陈。 于是,我在朋友圈感慨了一句: 其他部门的人都早已回家。只剩下研发还在奋战(要到12点),心里真是五味杂陈。 我说这句话的原因主要是感叹当程序员这个工种的不易,“产品一句话,程序员干半年”(产品应该也有对应的...原创 2018-09-02 14:17:14 · 313 阅读 · 0 评论 -
Java中实现多线程的3种方法介绍和比较
一、什么是多线程? 引用网上别人的一段话: 单进程单线程:一个人在一个桌子上吃菜。 单进程多线程:多个人在同一个桌子上一起吃菜。 多进程单线程:多个人每个人在自己的桌子上吃菜。 多线程的问题是多个人同时吃一道菜的时候容易发生争抢,例如两个人同时夹一个菜,一个人刚伸出筷子,结果伸到的时候已经被夹走菜了。资源共享就会发生冲突争抢。 使用多线程的优点(相对使用多进程来说): 进程之间不能...原创 2018-08-30 14:02:38 · 204 阅读 · 0 评论 -
Java 动态代理及 RPC 框架介绍
所谓动态代理,指的是语言提供的一种语法,能够将对对象中不同方法的调用重定向到一个统一的处理函数中来。 python重写__getattr__函数能够做到这一点,就连世界上最好的语言也提供称为魔术方法的__call。 这种语法除了能更好的实现动态代理外,还是RPC框架实现原理的一部分。 1. 动态代理是什么 动态代理提供一种抽象,能够将对象中不同方法的调用重定向到一个统一的处理函数,做自定义的逻...原创 2018-09-04 15:50:51 · 501 阅读 · 0 评论 -
javaee面试题专家总结(面试必备)
下面就为大家想一些面试方面的专家所总结的一些面试题供大家参考。 1)volatile 能使得一个非原子操作变成原子操作吗? 一个典型的例子是在类中有一个 long 类型的成员变量。如果你知道该成员变量会被多个线程访问,如计数器、价格等,你最好是将其设置为 volatile。为什么?因为 Java 中读取 long 类型变量不是原子的,需要分成两步,如果一个线程正在修改该 long 变量的值,另...原创 2018-08-29 15:25:59 · 1199 阅读 · 0 评论 -
Java面试题全集(上)希望大家耐心看完了,有点长
我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的优快云博客。在修订的过程中,参照了当时JDK最新版本(Java 7)给出了题目的答案和相关代码,去掉了EJB 2.x、JSF等无用内容或过时内容,补充了数据结构和算法、大...原创 2018-08-29 14:12:30 · 554 阅读 · 0 评论 -
从数组、链表开始聊聊HashMap的实现原理,据说是阿里面试必问的题(小怪的Java群话题讨论内容)
一、数组和链表介绍 数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特点。 以5位同学去上课时坐座位为例,总结它们的特点和区别。 1.1、数组的特点 数组中5位同学连坐一起 在内存中,数组是一块连续的区域。 也就是这5位同学必须坐在一起。 数组需要预留空间,在使用前要先申请占内存的大小,可能会浪费内存空间。 比如上课时,为了保证五位同学可以坐在一起,必...原创 2018-08-31 16:53:56 · 420 阅读 · 1 评论 -
大佬分享:180+道Java面试题目!含答案解析!
大厂常见问题 写视频点播网站文件下载接口 基础变量/数组写出模拟maven导入包过程 写出新变脸内存分配,模拟垃圾回收过程 50个白球50个红球,两个盒子,怎么放让人随机在一个盒子里抽到红球概率最高 n个数里取两个和为s的数 java数据结构 HashMap原理 自定义类型可以作为Key么? java内存模型 知道的排序算法 快排的优化 Java多线程实现方式 Java线...原创 2018-08-27 16:29:13 · 1004 阅读 · 0 评论 -
三条路线告诉你如何掌握Spring IoC容器的核心原理
一、前言 前三篇已经从历史的角度和大家一起探讨了为什么会有Spring,Spring的两个核心概念:IoC和AOP的雏形,Spring的历史变迁和如今的生态帝国。本节的主要目的就是通过一个切入点带大家一起学习一下Spring IoC的核心原理,正如从历史的角度出发讲述为什么会有Spring一样,希望通过这个切入点能让你轻松的掌握住Spring IoC的核心原理。 本篇文章假设你已经可以熟练的使...原创 2018-08-27 16:00:44 · 145 阅读 · 0 评论 -
使用 Docker 搭建 Java Web 运行环境
Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它。Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐步使用 Docker 来替换现有的虚拟化平台了。作为一名 Java 程序员,我们是时候一起把 Docker 学起来了! 本文会对虚拟化技术与 Docker 容器技术做一个对比,然后引出一些 Docker 的名词...原创 2018-09-11 15:21:42 · 172 阅读 · 0 评论 -
Java|Map、List与Set的区别
一、前言 Java集合主要分为三种类型:Set(集)、List(列表)和Map(映射)。 先简单说下集合和数组的区别: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。所有的JAVA集合都位于java.util包中。 JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。 再来说说集合产生的原因:世间...原创 2018-09-03 21:21:30 · 192 阅读 · 0 评论 -
Spring:基于注解的Spring MVC(上)
Spring MVC框架是一个MVC框架,通过实现Model-View-Controller模式来很好地将数据、业务与展现进行分离。从这样一个角度来说,Spring MVC和Structs、Structs2非常类似。Spring MVC的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到特定的handler。通过可配置的hander mappin...原创 2018-09-07 15:10:43 · 306 阅读 · 0 评论 -
Java 线程池详解
构造一个线程池为什么需要几个参数?如果避免线程池出现OOM?Runnable和Callable的区别是什么?本文将对这些问题一一解答,同时还将给出使用线程池的常见场景和代码片段。 基础知识 Executors创建线程池 Java中创建线程池很简单,只需要调用Executors中相应的便捷方法即可,比如Executors.newFixedThreadPool(int nThreads),但是便...原创 2018-09-17 16:52:04 · 157 阅读 · 0 评论 -
javaScript之原形与原形链
万物皆对象 在JavaScript中除值类型之外,其他的都是对象,为了说明这点,我们举几个例子 我们可以使用typeof来做类型判断 typeof a; // undefined typeof 1; // number typeof 'wclimb'; // string typeof true; // boolea...原创 2018-09-17 15:52:23 · 256 阅读 · 0 评论 -
一位资深程序员大牛给予Java初学者的学习建议
这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议? 今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容, 同样适用于一些希望转行到Java的同学。 在大家看之前,我要先声明两点。 1、由于我本人是Java后端开发出身,因此所推荐的学习内容是Jav...原创 2018-09-06 15:41:01 · 303 阅读 · 0 评论 -
Spring Cloud Config对特殊字符加密的处理
在微服务架构中,我们通常都会采用DevOps的组织方式来降低因团队间沟通造成的巨大成本,以加速微服务应用的交付能力。这就使得原本由运维团队控制的线上信息将交由微服务所属组织的成员自行维护,其中将会包括大量的敏感信息,比如:数据库的账户与密码等。很显然,如果我们直接将敏感信息以明文的方式存储于微服务应用的配置文件中是非常危险的。针对这个问题,Spring Cloud Config提供了对属性进行加密...原创 2018-09-06 14:25:57 · 715 阅读 · 0 评论 -
那些年看的一些书籍JAVA spring
书名不分时间顺序: 《java编程思想4》 《javaWeb技术整合应用与项目实践》 《java特种兵》 《深入浅出JDK6.0》 《深入浅出mysql:数据库开发、优化与管理维护》 《深入剖析tomcat》 《spring揭秘》 《struts2.1权威指南:基于WebWork核心的MVC开发》 《精通java网络编程》 《spring技术内幕:深入解析spring架构与设计...原创 2018-09-06 14:03:06 · 324 阅读 · 0 评论 -
马云:如何组建自己的技术团队
创业道路上,我常常把马云当作我的精神领袖,大家看到我平时不管是项目路演还是做创业分享都非常有激情,其实这是我看了很多鸡汤后的表现。相信也有很多人和我一样,但创业光有满怀激情是不够的,创业做事还是要接地气才行。 最近我发现“技术合伙人”这个关键词非常热,经常在微信群、朋友圈及各种第三方创业社交平台都看到某某项目缺技术合伙人,由于个人职业原因,我经常会通过对方留下的联系方式与其取得沟通的机会。在...原创 2018-09-09 15:34:19 · 1583 阅读 · 0 评论 -
什么是嵌入式开发?嵌入式是什么?初学者必看。
嵌入式技术是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统技术。它最初起源于单片机技术, 是各类数字化的电子、机电产品的核心,主要用于实现对硬件设备的控制、监视或管理等功能。进入21世纪计算机应用的各行各业中90%左右的开发将涉及到嵌入式开发。全球嵌入式软件市场年增长率超过12.5%,嵌入式系统带来的工业年产值达一万亿美...原创 2018-09-09 15:09:42 · 15769 阅读 · 2 评论