- 博客(28)
- 资源 (8)
- 收藏
- 关注
原创 如何写一个给自己的框架写一个优雅的Java Config模块(五)
信息传递 Configurer用来配置Builder的一个子模块的,一般是这样的,如果Builder的依赖的对象需要一个Configurer来处理,则Builder持有这个依赖对象的引用,Configurer会持有Builder的引用,从而可以拿到Builder持有的要构建的对象的依赖的对象的引用,从而在Configurer的init和configure方法里可以根据开发者的配置信息定制这个对象的
2017-06-29 13:40:20 420
原创 如何写一个给自己的框架写一个优雅的Java Config模块
发博词工作时间长一点的工程师,平时的“工作生活”中肯定免不了写一些大大小小的框架和中间件。最近在看Spring Security的源码,由于这个框架要解决的问题比较多、复杂且零碎,导致了配置项特别多。但是在使用Spring Security的Java Config模块的时候,里面都是很典型的技巧,所以整理了一下,分享出来,共同学习共同进步。文章列表如何写一个给自己的框架写一个优雅的Java Conf
2017-06-28 17:19:36 669
原创 如何写一个给自己的框架写一个优雅的Java Config模块(四)
BuilderXBuilder:顶级接口,提供build方法;public interface XBuilder { O build() throws Exception;}AbstractXBuilder:XBuilder的一级抽象实现,提供一个builder只构建一次的机制AbstractConfiguredXBuilder:开发一个Builder一般要继承这个,这个Builde
2017-06-28 16:58:42 699
原创 如何写一个给自己的框架写一个优雅的Java Config模块(三)
Spring Security的架构Spring Security提供了三个顶级的配置对象,AuthenticationManagerBuilder。、、HttpSecurity、WebSecurity,这三个虽然都是代码意义上的顶级构建对象,但逻辑上只有WebSecurity是最顶级的,WebSecurity的构建要依赖HttpSecurity,而HttpSecurity的构建要依赖Authen
2017-06-28 14:42:19 711
原创 如何写一个给自己的框架写一个优雅的Java Config模块(二)
Configurer保存配置信息Builder将Configurer串起来,一个Builder可能保存有很多的Configurer。多个类型的Configurer,同一个类型的多个Configurer。参看:AbstractConfiguredSecurityBuilder。Configuration使用Builder的信息,将Builder中保存的信息转化成各种Bean注入到IOC容器中。例子
2017-06-28 09:33:45 799
原创 spring-boot-devtools 不同ClassLoader引起的问题
在Spring Boot的文档spring-boot-devtools 部分,有如下的 描述: By default, any open project in your IDE will be loaded using the “restart” classloader, and any regular .jar file will be loaded using the “base
2017-06-26 16:59:48 11452 2
原创 Spring Security#OAuth2
CongiurerClientDetailsServiceConfigurerAuthorizationServerSecurityConfigureAuthorizationServerEndpointsConfigurerResourceServerSecurityConfigurerHttpSecurityAuthorization ServerClientDetailsServ
2017-06-20 20:14:38 4682 1
原创 JOSE(JWX)
JWS:JSON Web Signature,Digital signature/HMAC specification JWE:JSON Web Encryption,Encryption specification JWK:JSON Web Key,Public key specification JWA:JSON Web Algorithms,Algorithms and identifi
2017-06-20 14:11:28 3427
原创 Spring Boot#AutoConfigure
发博词记得刚开始使用各种基于springboot的autoconfigure构建的第三方的框架或者中间件的时候,惊艳到爆了。今天有时间正好分析一下这块。Spring Framework#Spring Context相信有一部分人跟我一样,是在使用spring boot的时候接触到autoconfigure这种风格的配置的,但其实这并不是spring boot才有的,从spring framework
2017-06-20 10:49:41 7757
原创 Spring Framework#@Enable*详解
发博词@Enable*的原理其实是根据此注解的各个配置往Spring IOC容器中注册一系列的Bean。在IOC中注册Bean,Spring为我们提供了两种方式,一个是@Configuration注解某个类,一个是实现ImportBeanDefinitionRegistrar接口,直接在容器中添加、删除某个Bean。Spring还为我们提供了一个ImportSelector接口,用于同时应用多个@C
2017-06-20 01:06:43 2065 1
原创 Java 8新特性#可重复的注解
在实际应用中,可能会出现需要对同一个声明式或者类型加上相同的 Annotation(包含不同的属性值)的情况。 例如系统中除了管理员之外,还添加了超级管理员这一权限,对于某些只能由这两种角色调用的特定方法,可以使用 Repeating Annotation。 清单 3. Repeating Annotation 使用示例-1@Access(role="SuperAdministrator")
2017-06-19 15:28:51 740
原创 SpringFramework之@AliasFor
发博词Spring Boot和Spring Cloud里面的各个注解,大量用到了这个别名的注解。看了一下之后,发现这个注解异常强大,他可以将任意一个注解类任意一个属性,当作任意的一个注解(可以是当前注解,也可以是别的注解)的任意一个属性;定义下面是这个注解的实现,他自己也使用了自己。 [org.springframework.core.annotation.AliasFor]@Retention(
2017-06-19 13:00:55 3846
原创 Spring Cloud Netflix之Eureka Client Configuration
发博词Spring Cloud Netflix 文档 中只提到了一部分主要的配置。这篇文章的主要内容就是列出全部的配置项目。Eureka ClientEureka Client的配置分为两部分,client的配置和Instance的配置,可以分别在EurekaClientConfigBean和EurekaInstanceConfigBean这两个ConfigBean中查看所有的配置项。这两个类在sp
2017-06-16 01:00:14 2498
原创 Spring Cloud Netflix之Eureka Doc Translation
Service Discovery: Eureka Clients微服务架构的关键准则之一就是有一个服务发现策略。尝试去手动配置或者使用某种形式的约定来确定某个远程服务会导致应用非常脆弱。Eurka提供了服务发现的服务端和客户端两个组件。Eurka服务端可以配置成高可用,某个Eurka服务端可以复制注册的服务信息给其他的Eurka服务端。How to Include Eureka Client
2017-06-16 00:08:01 1947
原创 Apereo Cas之Docker
发博词Cas基于Docker构建,找到了三种官方的途径。docker hubcas 的docker hub上的地址如下:https://hub.docker.com/r/apereo/cas/ docker pull apereo/casdocker run --name cas -p 8443:8443 -p 8878:8080 apereo/cas /bin/sh /cas-overlay
2017-06-15 14:31:29 9963 5
原创 Spring Security之Config模块详解(TODO)
发博词由于软件开发中,要解决的安全的问题非常多且零碎,导致了Spring Security在配置项也很多,对于接触不久的人来说,可能本身安全方面的东西平时“工作生活”中就接触比较少,导致在学习Spring Security的过程中,有种剪不断理还乱的感觉。下面我们就通过Spring Security的Config模块的架构,来理清这个关系。Spring Security ConfigurerSpri
2017-06-15 11:14:39 20083 1
原创 Spring Cloud之Netflix
发博词[Netflix]是一家美国的在线影片租赁提供商。他家里出了好多的好东西。Spring Cloud封装了其服务注册发现、服务调用、网关等部分,分别是:Eureka、Archaius、Ribbon、Feign、Hystrix和Zuul。项目简介Archaius:作为spring boot配置和netflix各个组件的配置的桥梁;用spring boot的配置方式配置netflix的各个组件;
2017-06-15 10:54:27 792
原创 Spring Security之自定义数据库表
[org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl]类中定义了三条sql语句和三个相关的方法:public static final String DEF_USERS_BY_USERNAME_QUERY = "select username,password,enabled " + "from use
2017-06-14 21:01:28 1222
原创 Spring Security之Builder sharedObjects
Spring Security的三个顶级配置对象的继承关系如下:SecurityBuilder AbstractSecurityBuilder AbstractConfiguredSecurityBuilder AuthenticationManagerBuilderHttpSecurityWebSecurity在AbstractConfiguredSecurityBuilder中定义
2017-06-14 12:20:08 1556
原创 Spring Framework之IOC容器的扩展点(TODO)
坑,待填 参考: 扩展Spring的几种方式 Spring中Bean的生命周期及其扩展点 [Spring]Spring容器扩展点 spring之扩展点 Spring Container的扩展点 Spring架构详解(10):Ioc容器的扩展点 Spring源码初探-IOC(5)-ApplicationContext功能扩展及其扩展点 Spring扩展点
2017-06-13 17:14:19 595
原创 Spring Framework之BeanFactoryPostProcessor和BeanPostProcessor(TODO)
坑,待填。 参考: Spring的BeanFactoryPostProcessor和BeanPostProcessor
2017-06-13 17:03:39 501
原创 如何写一个给自己的框架写一个优雅的Java Config模块(一)
发博词工作时间长一点的工程师,平时的“工作生活”中肯定免不了写一些大大小小的框架和中间件。最近在看Spring Security的源码,由于这个框架要解决的问题比较多、复杂且零碎,导致了配置项特别多。但是在使用Spring Security的Java Config模块的时候,里面都是很典型的技巧,所以整理了一下,分享出来,共同学习共同进步。配置模块化主从模式主从从模式配置的依赖关系配置的初始化和后置
2017-06-13 15:29:38 1523
原创 Spring Security之匿名用户
Spring Security为我们提供了一个匿名用户的功能,我们可以基于此很容易的实现匿名用户的单独控制,使我们的站点轻松拥有游客用户的功能;如果开启了匿名用户的功能,按照Spring Security Filter的执行顺序,AnonymousAuthenticationFilter在ExceptionTranslationFilter的前面,在各种认证机制和RememberMeAuthenti
2017-06-13 14:32:53 13604
原创 Spring Security Web Application 之 Security Filter Chain
Security Filter ChainSpring Security的Web模块为Web开发提供了非常全面的支持。整个spring security web模块就是以Servlet Filter为基础构建的。此模块会处理HttpServletRequest和HttpServletResponse对象,不管请求是从浏览器发出的还是从一个web客户端或者是ajax应用发出的。Spring Secur
2017-06-12 14:11:51 1939
原创 Spring Web DelegatingFilterProxy和Spring Security Web Filter Chain
概述用过Spring Security XML配置方式的肯定属性下面的代码: springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy
2017-06-12 10:36:59 1265
原创 Servlet3 ServletContainerInitializer与Spring Web
Servlet3中增加了一个ServletContainerInitializer类。 其意义如下: ServletContainerInitializers (SCIs) are registered via an entry in the file META-INF/services/javax.servlet.ServletContainerInitializer that must be
2017-06-06 14:04:59 3208
原创 AngularX 路由最佳实践
前端组件化之后,就牵扯到组件的路由问题,那我们希望一个比较完美的实现是这样的:主模块管理到各个子模块的路由信息,子模块管理自己的路由信息,子模块在被访问到的时候再加载。下面看一下angularx是怎么实现这个思路的。首先在主模块定义到子模块的路由信息,设置子模块的懒加载用loadChildren配置。如下:@NgModule({ imports: [ RouterModule
2017-06-02 12:06:52 822
Exactly Once Delivery and Transactional Messaging in Kafka
2019-02-27
快学Scala(Java核心技术的作者最新力作)
2014-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人