如何使用@ConfigurationProperties(“xxx“)注解,实现xxx.yml配置文件上数据的获取 --- AOP实战(一)

55 篇文章 0 订阅
51 篇文章 2 订阅

yml配置文件

  • 此文件只做一小部分演示
  • oauth下 定义data-isolation (命名都是自定义)
oauth:
  data-isolation: #有用户信息时,需要数据隔离
    - /act-activity/page
    - /oact-open-activity/page
    - /activity-calendar/detail
    - /activity-calendar/list
    - /oact-open-activity/page
    - /oact-open-activity/page-date
    - /oact-open-activity/page-change-record
    - /ach-work/page-work-record

配置类

在这里插入图片描述

  • 注意@ConfigurationProperties(“xxx”)要对应上方yml文件中的最上级oauth(自定义命名)
  • 属性命名也要和yml配置文件上的一致才可让数据自动赋值
@Data
@Component
@ConfigurationProperties("oauth")
public class OAuthProperties {

    /**
     * 需要数据隔离(获取教育局id集合/学校id集合)
     */
    private Set<String> dataIsolation;
    
}

代码实现

  • 该演示具体业务是在yml配置文件中data-isolation 下填写需要做业务操作的接口名,然后结合aop动态代理去对这些接口实现业务处理
    在这里插入图片描述

  • 注入上方的配置类OAuthProperties,即可获取需要做业务逻辑的接口

  • 该演示方法,传参则是对应的接口名,若对应则返回true(可以结合AOP动态代理使用,详情请至AOP动态代理使用)

@Component
public class XkHttpSecurity {

    @Autowired
    private OAuthProperties oauthProperties;

    public boolean isNeedUserInfo(String servletPath) {
        Set<String> needUserInfo = this.oauthProperties.getNeedUserInfo();
        return CollectionUtil.isEmpty(needUserInfo) ? false : needUserInfo.contains(servletPath);
    }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值