龙潭书斋 -- 271




概述在上一篇日志中,我们介绍了怎样通过 maven 配置实现打包不同的资源配置目录:通过 maven filtering 机制实现打包不同的资源配置目录可以在代码中的同一级不同目录下存放相同配置文件名的不同配置,在打包的时候,通过 -P 参数方便的指定使用哪个目录下的配置文件,这一机制通常被称为 Maven Filtering 机制由于实际的 jar 或 war 包中只包含指定的配置,因此不存在被攻击读取到非法配置的可能,在安全性、通用性方面非常不错,但是如果在打包后需要修改配置,就必须重新打包了,同时,在打包过程中,maven 并不会检查代码中使用到的配置是否存在,如果某个配置不存在,将会在运行时才能被检查出来 本篇日志中,我们将介绍 maven 的另一插件 -- AutoConfig,他与 maven filtering 机制最大的区别在于他是在 build 时使用的,因此可以在运行时期以前检查到配置的缺失或错误,同时他和 maven filtering 机制一样是不依赖于具体框架的,任何环境和框架均可使用这一插件 设计理
#技术帖    #龙潭书斋    #java    #spring   

200x200


概述面向对象是对现实世界的一个抽象,万物皆是对象,看上去是非常容易理解的,但是如何选取对象,如何设计对象归类的粒度,如何建立对象间的基本关系却是一系列难以解决的问题面向对象系统的设计最困难的部分是如何

#技术帖    #龙潭书斋    #java    #面向对象   
概述今天的开发中,遇到一个问题:我需要创建某个 jar 包中的一个类对应的 bean,而在实例化这个类的过程中,必须传入我的一个 Service 作为参数,于是我如下创建 bean:@Bean public ServiceFactoryBean techlogServiceFactory() { ServiceFactoryBean factoryBean = new ServiceFactoryBean(); factoryBean.setHandler(new TechlogService()); return factoryBean; }  这样创建虽然是 OK 的,但是问题在于,这样创建的结果将造成传入的 TechlogService 对象不是 Spring 生成的 Bean,因此 TechlogService 中的 @Resource、@Autowire 注解的成员都将无法被注入而成为了 null,这个问题怎么解决呢? 通过 ApplicationContextAware 获取 Spring Bean&
#技术帖    #龙潭书斋    #遗留问题    #java   
概述上一篇日志中,我们了解了如何从不同的来源获取用户列表的配置方法Spring Security 配置用户列表本篇日志中,我们来介绍一下如何配置拦截不同的请求 configure(HttpSecurity) 与 HttpSecurity 对象通过 configure(HttpSecurity) 可以配置如何保护路径在此前我们已经接触过这个方法:Spring Secrity 简介及基本配置@Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests().anyRequest().authenticated() .and().formLogin().and().httpBasic(); }  HttpSecurity 提供的方法HttpSecurity 提供的方法方法作用access(String)如果给定的SpEL表达式计算结果为true,就允许访问anonymous()允许匿名用户访问authenticated()允许认证过的用户访问denyAll()无条件拒绝所有访问fullyAuthenticated()如果用户是完整认证的话(不是通过Remember-m
#技术帖    #mvc    #龙潭书斋    #http   
概述上一篇日志中,我们介绍了 Spring Security 的基本内容,并且进行了初步的配置工作Spring Secrity 简介及基本配置本篇日志中,我们就来实现用户列表的配置 配置基于内存的用户列表配置用户列表最简单的方法就是通过重载 WebSecurityConfigurerAdapter 的 configure 方法来实现用户列表的加载:package com.techlog.test.testsecurity.configuration; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWeb
#技术帖    #config    #龙潭书斋    #java   
概述上一篇日志中,我们介绍了 org.springframework.web.filter 包中提供的过滤器SpringMVC 提供的 Filter 类简介本篇日志中我们来介绍其中的一个特殊的过滤器 -- 委派过滤器代理(DelegatingFilterProxy)DelegatingFilterProxy 虽然在 org.springframework.web.filter 包中,但是他其实并不算是一个过滤器,它的原型是 FilterToBeanProxy,即将 Filter 作为 spring 的 bean,由 spring 来管理在我们的应用中,登录验证是最常用的功能,Spring Security 利用 DelegatingFilterProxy 及一系列 Filter 为我们提供了高度可定制化的请求验证机制,以及用户、角色、权限的抽象机制,来完成对我们的请求的验证 Spring SecuritySpring3.2 提供了 Spring Security 安全性框架为应用程序提供声明式安全保护,主要为&nbs
#技术帖    #mvc    #龙潭书斋    #java   
概述上一篇日志中,我们介绍了 Spring MVC 的基本概念及执行流程,并创建了最基本的 hello world 项目Spring MVC 简介及 Hello World 项目创建上篇日志中介绍了一个非常重要的组件 -- DispatcherServlet,并且在 web.xml 中创建了默认的 DispatcherServlet 的配置本篇日志中,我们就来介绍一下 Spring3.0 以后支持的通过 java 代码来配置 DispatcherServlet 的配置方法 DispatcherServlet 的配置与两个应用上下文我们已经知道,DispatcherServlet 最重要的工作是接收请求并转发给特定的 Controller,因此首先需要配置的是 url 映射DispatcherServlet 启动时,会创建 Spring 应用上下文,并加载配置文件或配置类中所声明的 bean,因此我们需要在 DispatcherServlet 的配置中指定 bean 所
#技术帖    #controller    #mvc    #config   
概述上一篇日志中,我们介绍了 Spring3.1 开始提供的通过配置来让 Spring 在不同的环境中创建和加载不同的 BeanSpring3.1 新特性 -- 为不同的环境配置不同的 profile事实上,有时我们需要更细粒度的自定义配置,只有当满足某个特定条件时才创建和加载某个 bean,比如某个 bean 依赖于另一个 bean 的创建,如果另一个 bean 没有创建,就忽略当前 bean,或者需要通过环境变量来动态控制某个 bean 是否需要被创建 条件化配置 bean -- @Conditional 注解Spring4 引入了一个新的 @Conditional 注解,他可以用在带有 @Bean 注解的方法上,只有 @Conditional 给定的条件为 true,才会创建相应的 Bean Condition 接口@Conditional 需要传入一个 class 对象,对应的类是任何实现了 Condition 接口的类
#技术帖    #配置    #龙潭书斋    #java   



京ICP备15018585号