839 天前 / Yujiaao
如果你看到了注解,那么一定有什么代码在什么地方处理了它.Alan Hohn 我教Java课程时强调的一点是注解是惰性的。换句话说,它们只是标记,可能具有某些属性,但没有自己的行为。因此,每当你在一段Java代码上看到一个注解时,就意味着必须有一些其他的Java代码来寻找那个注解并包含真正的智能来做一些有用的东西。 不幸的是,这种推理的问题在于,确切地确定哪一段代码正在处理注解是非常困难的,特别是如果它在库中。处理注解的代码可能会令人困惑,因为它使用反射并且必须以非常抽象的方式编写。
875 天前 / 赵俊
前言在 手撸 Java Web RBAC 权限管理 中,我们自己实现了一个简易的 RBAC 权限管理框架,且我们也提到了一些缺陷,其中一点就是 : 每次请求需要授权的页面都会去数据库查询此用户对应的权限数据和角色数据,太耗费资源,应该进行缓存。 本章我们就来讲讲如何将 Shiro 中的授权数据缓存到 Redis 中。
891 天前 / 咖啡拿铁
前方高能预警:本文将会有大量代码出没。1.背景在看一些框架源码的时候,可以看见他们很多都会和Spring去做结合。举个例子dubbo的配置:很多人其实配置了也就配置了,没有去过多的思考:为什么这么配置spring就能识别,dubbo就能启动?如果你也需要做一个框架和Spring结合,或者你想知道Spring其他框架是如何和Spring做结合的...
901 天前 / chenssy
精品专栏 死磕 Java 并发 死磕 Sharding-jdbc 在上篇博客【死磕Spring】----- IOC 之 加载 Bean 中提到,在核心逻辑方法doLoadBeanDefinitions()中主要是做三件事情。调用getValidationModeForResource()获取 xml 文件的验证模式 调用loadDocument()根据 x...
906 天前 / chenssy
精品专栏 死磕 Java 并发 死磕 Sharding-jdbc 在学 Java SE 的时候我们学习了一个标准类java.net.URL,该类在 Java SE 中的定位为统一资源定位器(Uniform Resource Locator),但是我们知道它的实现基本只限于网络形式发布的资源的查找和定位。
909 天前 / chenssy
精品专栏 死磕 Java 并发 死磕 Sharding-jdbc 在一开始学习 Spring 的时候,我们就接触 IoC 了,作为 Spring 第一个最核心的概念,我们在解读它源码之前一定需要对其有深入的认识,本篇为【死磕 Spring】系列博客的第一篇博文,主要介绍 IoC 基本概念和各个组件。
934 天前 / u284333
概念HttpMessageConverter主要功能在于Java对象和Json Xml等Http消息格式之前的来回转换. 来看HttpMessageConverter在Spring中如何使与Http的通信变更更优雅首先启用SpringMvc会自动注册一箩筐HttpMessageConverter @EnableWebMvc @Configurat...
946 天前 / u284333
概述 在spring中,properties和profile是Environment abstraction 的两个核心, 作为一个整体模块整合到了Spring container中,Environment abstraction是ApplicationContext的核心功能之一. profile是关注的不同环境或者说组,比如说我们会用的到的不同环境...
949 天前 / java熊
之前写过 IOC 的源码分析,那篇文章真的有点长,看完需要点耐心。很多读者希望能写一写 Spring AOP 的源码分析文章,这样读者看完 IOC + AOP 也就对 Spring 会有比较深的理解了。今天终于成文了,可能很多读者早就不再等待了,不过主要为了后来者吧。
955 天前 / ??鲸鱼
原因最近做的项目属于数据分析类型,要求数据分析功能做到快速上线。该项目当前使用的语言是Java + Groovy。 使用Groovy的原因很简单,因为 Groovy 脚本支持热加载功能。项目中,简单的数据分析工作,如一些统计、排序、过滤等,都放在Groovy里完成。需要上线新的数据分析功能时,只需要编写一个新的脚本,并热加载到JVM中即可。
958 天前 / u284333
重试的概念 重试,我们都不陌生,是为了保障逻辑容错性和可用性的一种机制。一般在网络通信组件底层比较常见,比如网络连接操作,如果有网络中断时,一般需要重试几次。 在上层的业务代码里,如果我们需要对某个特定操作加入重试机制,可以硬编码,然后循环调用,累计调用次数,然后设定退出条件。
978 天前 / Tomcat那些事儿
随着 Spring Boot 的日渐流行,应用里的大部分配置都被隐藏了起来,我们仅需要关心真正的业务内容, Controller, Service, Repository,拿起键盘就是一通业务代码的Coding,具体的 Component Scan,View,PlaceHolder ... 都可以抛在脑后。
985 天前 / 情情说
程序员都很崇拜技术大神,很大一部分是因为他们发现和解决问题的能力,特别是线上出现紧急问题时,总是能够快速定位和解决。 一方面,他们有深厚的技术基础,对应用的技术知其所以然,另一方面,在采坑的过程中不断总结,积累了很多经验。 相信大家都使用过Spring,有些人了解它的核心:IOC和AOP,但只是了解它们的基本概念、使用了反射和动态代理...
988 天前 / 工匠
Cglib版在代理对象生成时,由方法和AOP上下文来决定具体使用哪个Callback,在运行时直接通过Callback进行方法调用。下面我们介绍两种类型的Callback:DynamicAdvisedInterceptor和FixedChainStaticTargetInterceptor,先从DynamicAdvisedInterceptor开始。
1058 天前 / u284333
概述 AOP从功能的角度来讲,可能看作OOP编程方式的一种补充,提供了一种不同的代码或者系统组织方式。OOP中的核心概念是Class,而在AOP中则是Aspect。 spirng-aop模块是Spring框架中的核心模块,虽然Spring Ioc container并不依赖AOP,但AOP给Ioc的实现提供了一种强大而灵活的解决方案。