
Spring
小猴子豆芽菜
一名90后程序猿,现就任于ThoughtWorks,从事软件开发、大数据开发,同时也是一位健身、羽毛球爱好者。
展开
-
JPA mappedBy、JoinColumn、FetchType.LAZY和FetchType.EAGER介绍
在单向关系中没有mappedBy,因此使用@JoinColumn建立外键关联,建立外键的一端即是主控方,主控方相当于拥有指向另一方的外键的一方。一对一和多对一的@JoinColumn注解的都是在“主控方”,都是本表指向外表的外键名称。一对多的@JoinColumn注解在“被控方”,即一的一方,指的是外表中指向本表的外键名称。一般只有单向关系才在“被控方”中使用@JoinColumn,双向...转载 2018-12-03 19:44:35 · 887 阅读 · 0 评论 -
手写spring核心原理Version3
上两篇博文手写spring核心原理Version1和手写spring核心原理Version2分别介绍了如何完成一个自动注入、以及如何用设计模式进行重构,接下来这篇将仿照SpringMVC对参数列表以及methodMapping进行重构。重构MyDispatcherServletimport javax.servlet.ServletConfig;import javax.servlet....原创 2019-11-27 22:33:51 · 689 阅读 · 1 评论 -
手写spring核心原理Version2
上一篇博文(手写spring核心原理Version1)中粗略的实现了自动注入等功能,此篇博文主要在上一篇的基础之上对MyDispatcherServlet.java中的方法运用设计模式进行重构。重构MyDispatcherServletpackage com.xyz.demo.core;import com.xyz.demo.core.annotaion.MyAutowired;im...原创 2019-11-24 14:51:26 · 454 阅读 · 0 评论 -
手写spring核心原理Version1
此篇博文主要通过一个简单的demo演示spring的核心原理,例如spring是如何根据@RequestMapping、@Autowired等注解进行路径匹配和自动注入的。自定义注解@MyAutowiredpackage com.xyz.demo.core.annotaion;import java.lang.annotation.*;@Target({ElementType.FI...原创 2019-11-23 22:19:52 · 742 阅读 · 3 评论 -
代理模式之Cglib动态代理
Cglib动态代理前两篇博文静态代理和JDK动态代理,他们各有优缺点,JDK动态代理缺点:目标类必须实现的某个接口,如果某个类没有实现接口则不能生成代理对象;只能代理接口,要代理类需要使用第三方的CLIGB等类库;Cglib动态代理则没有对被代理对象必须实现接口的要求,cglib生成的代理类会继承被代理类,并在代理类中对代理方法进行强化处理(前置处理、后置处理等)。实例演示被代理...原创 2019-04-07 20:14:44 · 805 阅读 · 0 评论 -
代理模式之JDK动态代理
JDK动态代理上一篇博文静态代理介绍了静态代理的简单实现,以及静态代理的缺点:代理对象的一个接口只服务于一种类型的对象,如果要代理的方法很多,势必要为每一种方法都进行代理,静态代理在程序规模稍大时就无法胜任了。如果接口增加一个方法,除了所有实现类需要实现这个方法外,所有代理类也需要实现此方法。JDK动态代理的优点代理对象不需要实现接口,这样就不会有众多的代理类;利用JDK生成代理...原创 2019-04-07 18:00:59 · 488 阅读 · 0 评论 -
代理模式之静态代理
代理模式代理模式为某个对象提供一个代理,以控制对这个对象的访问。代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。从图中可以看出,代理接口(Subject)、代理类(ProxySubject)、委托类(RealSubject)形成一个“品”字结构。 根据代理类的生...原创 2019-04-07 14:57:19 · 274 阅读 · 0 评论 -
Spring AOP注解和切面表达式详解
AOP设计的初衷DRY:Don’t Repeat Yourself,减少重复代码;SoC:Separation of Concerns,关注分离;水平分离:展示层 --> 服务层 --> 持久层垂直分离:模块之间分离;切面分离:功能性需求与非功能性需求分离;使用AOP的好处集中处理某一关注点/横切逻辑可以很方便的添加/删除关注点侵入性少,增强代码可读性以...原创 2019-04-05 23:34:28 · 4790 阅读 · 0 评论 -
Spring Security权限控制源码分析
流程图类和接口介绍FilterSecurityInterceptor:是整个权限判断流程的入口,包含着请求的相关信息;AccessDecisionManager:是一个接口,有一个抽象实现(AbstractAccessDecisionManager)和三个具体实现(AffirmativeBased、ConsensusBased和UnanimousBased)AbstractAcces...原创 2019-03-30 22:47:53 · 1140 阅读 · 1 评论 -
Spring Security OAuth核心源码分析
流程图※:绿色的方块代表实体类;蓝色的方块代表接口(下方括号中的名称表示实际调用的实现类);流程介绍step1:客户端发起获取令牌的请求:/oauth/token;step2:TokenEndpoint是整个流程的入口,可理解为一个controller,用来处理获取令牌的请求即:/oauth/token请求;step3:ClientDetailService用来读取请求中client...原创 2019-03-30 17:52:15 · 661 阅读 · 0 评论