Spring开发技巧
课程中使用的Spring开发技巧
- SessionStrategy
包路径:org.springframework.social.connect.web.SessionStrategy
功能:涵盖了session大部分操作都包括
- AntPathMatcher
包路径:org.springframework.util.AntPathMatcher
功能:给定2个url,判定是否匹配,支持srping中带通配符的url
- InitializingBean
包路径:org.springframework.beans.factory.InitializingBean
功能:在所有属性设置完成后,被调用一次该方法设置
- Bean条件注解
参考SpringBoot详解:https://www.cnblogs.com/ytxmx/articles/11075451.html
参考Spring详解:https://www.cnblogs.com/ytxmx/articles/11075475.html
-
依赖查找
依赖查找: 当有多个子类实现的时候,根据beanNam进行查找需要的子类; 如下图的autowired,声明是一个Map,那么key = beanName、value = 不同的子类实现
使用场景::编写基础架子,提供了多种相同功能的不同实现策略的时候
@Autowired private Map<String, ValidateCodeGenerate> validateCodeGenerates;
-
SpringBoot各种默认路径技巧
有时候你引入一些包,就会发现会增加多个restfull服务,这些服务注意查看控制台日志,就能找到对应的处理器
对于springboot默认提供处理错误的restfull服务如下
// org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController // BasicErrorController 类提供的默认错误信息处理服务
-
Configuration条件注解
ConditionalOnProperty
在imooc.security.social.qq前缀下,当appId属性存在的时候才让该配置生效
@Configuration // 当配置了app-id的时候才启用 @ConditionalOnProperty(prefix = "imooc.security.social.qq", name = "app-id") public class QQAutoConfig extends SocialConfigurerAdapter {
-
@FrameworkEndpoint
该注解只用于框架提供端点,语义和 Controller 注解一致, 如果使用Controller提供了和FrameworkEndpoint标识的相同路径,则框架提供的端点不会被路由到;
一般的场景用于:覆盖框架默认提供的端点;
-
@Order注解
可以为依赖查找集合按顺序注入
比如以下场景,对于bean的注入顺序,可以按照order指定的来放入
@Component public class DefaultAuthorizeConfigManager implements AuthorizeConfigManager { // 由于需要有序的,所以不能再使用set了 // 依赖查找技巧 @Autowired private List<AuthorizeConfigProvider> providers; @Component @Order(Integer.MIN_VALUE) public class CommonAuthorizeConfigProvider implements AuthorizeConfigProvider { @Component @Order(Integer.MAX_VALUE) public class DemoAuthorizeConfigProvider implements AuthorizeConfigProvider {
浙公网安备 33010602011771号