bladex框架学习笔记

bladex框架学习笔记相关资料官方问答社区 https sns bladex vip bladex

相关资料

项目搭建注意点

1、maven配置:

<mirror> <id>nexus</id> <name>nexus repositories</name> <url>https://repo1.maven.org/maven2</url> <mirrorOf>*,!blade-release</mirrorOf> </mirror> 

2、多服务启动配置——在.idea/workspace.xml中将<component name="RunDashboard">节点下的配置替换成:

<component name="RunDashboard"> <option name="configurationTypes"> <set> <option value="SpringBootApplicationConfigurationType" /> </set> </option> <option name="ruleStates"> <list> <RuleState> <option name="name" value="ConfigurationTypeDashboardGroupingRule" /> </RuleState> <RuleState> <option name="name" value="StatusDashboardGroupingRule" /> </RuleState> </list> </option> <option name="contentProportion" value="0." /> </component> 

3、工作流模块FlowApplication、FlowDesignApplication的两个服务的表大部分是用doc/sql目录下的初始化SQL生成的,少部分是启动服务时动态生成的;

4、token获取接口的密码需要使用转义的
admin-admin
admin-21232f297a57a5aa0e4a801fc3
在这里插入图片描述

在这里插入图片描述
5、接口token放行配置——blade.yaml中的
在这里插入图片描述

开发使用注意点

1、feign调用

  • feign提供方方法加参数注解,如@RequestParam("XXX")@RequestBody
  • 在调用方启动文件加feign扫包注解
    @EnableBladeFeign(basePackages={"org.springblade","cn.."})
  • 若以上仍无法解决,被调用服务启动类加注解@EnableDiscoveryClient

2、redis缓存使用

  • 注解 @Cacheable(cacheNames = "demo-info", key = "#name")
  • 工具类 BladeRedis,源码在BladeX-Tool里面,开源版为RedisTemplate,原生的

3、swagger配置

  • blade-swagger的配置文件配置服务的名称、网关地址(blade-gateway地址)、以及服务接口页(/服务名/v2/api-docs)跳转地址。本地开发建议 uri配为服务的ip:端口,location为/v2/api-docs,这样可以绕过鉴权,便于开发与前后端联调。

在这里插入图片描述

  • 在nacos的配置文件blade-dev.yaml里面加新包扫描:
swagger: base-packages: - org.springblade - cn.xxx.xxxx(自己的项目包名) 
  • 重启提供接口的服务,刷新http://localhost:18000/doc.html

4、任务调度中心
bladex提供的任务调度注册器是blade-xxljob-admin服务,示例执行器是blade-xxljob,配置新服务为执行器
引入配置:

xxl: job: accessToken: '' admin: addresses: http://127.0.0.1:7009/xxl-job-admin executor: #服务名 appname: cn-xxxx-xxx ip: 127.0.0.1 logpath: ../data/applogs/xxl-job/jobhandler logretentiondays: -1 #执行器端口,非服务端口 port: 2333 

示例:

@Component @Slf4j @AllArgsConstructor public class TestJob{ 
    private static final Logger logger = LoggerFactory.getLogger(TestJob.class); @XxlJob("testTask") public ReturnT<String> testTask(String param) throws Exception { 
    XxlJobLogger.log("开始执行】"); try { 
    ...... } catch (Exception e) { 
    return ReturnT.FAIL; } return ReturnT.SUCCESS; } } 

规则配置
启动 blade-xxljob-admin 后 ,再启动 cn-xxxx-xxx ,进入http://localhost:7009/xxl-job-admin/配置执行器
PS:端口为执行器端口而不是服务端口
在这里插入图片描述
若保存后,机器地址出现服务名且为绿色,注册器配置成功
在这里插入图片描述

配置任务
执行器:上一步添加的
Cron:周期表达式
JobHandler:定时任务名(例:@XxlJob(“testTask”),任务名:testTask)
在这里插入图片描述
执行定时任务
在这里插入图片描述
5、查询时,若数据库不存在记录,框架会自动返回一个所有属性值都是“”的对象,用 null != ogject 可能无法判断;
6、当后端数值型返回空时,框架默认返回-1;
7、接口编码问题,对接系统请求用的请求头为:

application/x-www-form-urlencoded; charset=GBK

在controller中设置

PostMapping(value = "/ccbCustNotify",consumes = { 
   "application/x-www-form-urlencoded; charset=GBK"}) 
httpServletRequest.setCharacterEncoding("GBK"); 

都不能解决问题。
原因:bladex的切面对httpServletRequest进行的get,导致后面的编码转换失效。
解决方法:添加该接口的过滤器,在进入切面前将编码转成GBK
8、网关启动报错
Failed to process import candidates for configuration class
原因:包冲突(gateway引了common,common引入了blade-start-mybatis、blade-core-tool);
解决方法:排除 blade-start-mybatis、blade-core-tool 依赖;

 <dependency> <groupId>cn.xx.xxx</groupId> <artifactId>etcx-gateway-admin</artifactId> <exclusions> <exclusion> <groupId>org.springblade</groupId> <artifactId>blade-start-mybatis</artifactId> </exclusion> <exclusion> <groupId>org.springblade</groupId> <artifactId>blade-core-tool</artifactId> </exclusion> </exclusions> </dependency> 

9、网关启动报错,多次启动才能成功
Caused by: java.util.ConcurrentModificationException: null

笔记

权限:
数据权限:
注解:@DataAuth(type=param1,column=param2,value=param3)
Web全自动:权限管理 -> 数据权限
注解半自动:@DataAuth(code=param1) + 权限管理 -> 数据权限
接口权限:
注解:@PreAuth("hasRole('user')")@PreAuth("hasAnyRole('user','admin')")
web:权限管理 -> 接口权限 + @PreAuth("hasPermission('code')")
接口全局:@PreAuth("permissionAll()")@PreAuth(AuthConstant.PERMISSION_ALL)

接口文档:
类:@Api()
实体:@ApiModel(value = "XXX", description = "XXX")
字段:@ApiModelProperty(value = "XXX",required = true/false)

记录备忘,随时更新。

今天的文章 bladex框架学习笔记分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2025-01-04 17:17
下一篇 2025-01-04 17:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/101507.html