刘光辉
11 小时以前 34981c30a78e8bbd7791131059a9210f9928b62c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# ===================== 启动 banner 关闭(2026-08-11)=====================
# 容器日志里这些 ASCII 艺术字没人看,还把真正有用的启动信息挤散。
# Spring Boot 自己的 banner 走 compose 的 SPRING_MAIN_BANNER_MODE=off(环境变量,全服务一处);
# 下面两个是 ORM 框架各自打的,只能按各自的配置键关。gateway 不 import 本文件(无 ORM),无影响。
#
#   · mybatis-plus-join.banner           ✅ **有效**,1.5.4 那个 banner 已消失
#   · mybatis-plus.global-config.banner  ❌ **本栈无效**,3.5.14 那个 banner 关不掉,原因见下
#
# 🔴 为什么 MyBatis-Plus 那条无效(实测 + 反编译确认,别再花时间试):
#    jnpf-common-database 的 MybatisPlusConfig.createSqlSessionFactory() 里是
#    `new GlobalConfig()`(banner 字段默认 true)再 setGlobalConfig(),**完全绕开**了
#    MybatisPlusProperties 的属性绑定——本配置项在本栈根本没有消费者。
#    硬关的三条路都不划算:覆盖那个 23KB 的闭源配置类(含动态数据源/多租户/逻辑删除全套,
#    平台一升级就失效)、BeanPostProcessor(拦不到,它在 @Bean 方法内部 new 出来直接
#    getObject()、不经容器)、ENTRYPOINT 管道 grep(破坏日志实时性还吞退出码)。
#    **保留这行**是因为它对上游原生形态是正确写法:将来平台若改回标准
#    MybatisPlusAutoConfiguration,它会自动生效,届时不必再来一遍排查。
mybatis-plus:
  global-config:
    banner: false
mybatis-plus-join:
  banner: false
 
spring:
  cloud:
    sentinel:
      # 取消控制台懒加载
      eager: true
      transport:
        dashboard: jnpf-infra:30098
      log:
        dir: log/${spring.application.name}/sentinel
        # LOGGING日志等级, ALL, INFO, WARNING, SEVERE, OFF
        level: OFF
#    inetutils:
#      #填写多个网段或IP, 或者全部匹配的正则表达式
#      preferred-networks:
#        - 192.168.0 
#        - 192.168.20
# ===================== AI配置-Start =====================
    ai:
      openai:
        enabled: false
        # 超时时间, 秒, 根据AI平台性能调整超时时间
        timeout: 300
        # 每个用户限制时间内的请求次数
        user-limit-count: 1
        # 每个用户限制时间频率
        user-limit-time: 3s
        # 全部请求限制时间内的请求次数
        total-limit-count: 500
        # 全部请求限制时间频率
        total-limit-time: 1m
 
        # 阿里百联平台
        api-host: https://dashscope.aliyuncs.com/compatible-mode/
        api-key:
        chat:
          mode: qwen2.5-1.5b-instruct
 
        # GPT转发平台
#        api-host: https://api.chatanywhere.tech/
#        api-key:
#        chat:
#          mode: gpt-3.5-turbo
 
        # DeepSeek
#        api-host: https://api.deepseek.com/
#        api-key:
#        chat:
#          mode: deepseek-chat
 
# ===================== AI配置-End =====================
 
# SpringDoc接口文档 访问地址:http://127.0.0.1:30000/doc.html
springdoc:
  api-docs:
    enabled: true
#SpringDoc增强
#knife4j:
#  enable: true
#  basic: #接口文档访问鉴权
#    enable: true
#    username: jnpf
#    password: 123456
 
lock4j:
  aop:
    # Lock4j注解是否启用
    enabled: false
 
feign:
  sentinel:
    enabled: true
  client:
    config:
      default:
        connectTimeout: 5000
        readTimeout: 300000
  httpclient:
    connection-timeout: 5000
 
seata:
  enabled: false
  # 补丁 #8:原 nacos 型 config/registry 子树已随 Nacos 移除。
  # 将来若启用 seata,用 file 型注册配置重写本段(git 历史有原文)。
 
# dubbo 配置(补丁 #8:去注册中心,直连模式)
dubbo:
  # 指定Dubbo服务实现类的包
  scan:
    base-packages: jnpf.provider.impl
  protocols:
    dubbo:
      # 不配 host = Dubbo 默认绑 0.0.0.0(回环/局域网/容器路径全通)。
      # 原 host: ${spring.cloud.client.ip-address} 会在多网卡宿主上强绑单一接口,
      # 消费端直连 127.0.0.1:20880 被拒(2026-08-06 宿主栈实测);直连模式下
      # 通告地址无意义(registry N/A,地址由 @DubboReference url 显式给出),删之无副作用。
      name: dubbo
      # jnpf-system 是核心栈唯一 provider,经 DUBBO_PROTOCOL_PORT=20880 固定端口
      # (compose 的 cx-system 段 / start-all.sh 设置);其余服务无导出,保持 -1 不绑端口。
      # 注意 ${VAR:-1} 中 ":-1" 是 Spring 占位符默认值语法,默认即 -1。
      port: ${DUBBO_PROTOCOL_PORT:-1}
  registry:
    # 去注册中心:address=N/A 为 Dubbo 官方 registry-less 直连形态,
    # 消费端地址由 @DubboReference(url=...) 给出(jnpf-common-springaop,补丁 #8)
    address: N/A
  # 启动时不检查 consumer
  consumer:
    check: false
  application:
    name: dubbo-${spring.application.name}
    logger: slf4j
    # 检查允许序列化列表
    # serialize-check-status: DISABLE
    # 检查序列化对象是否继承serializable
    # check-serializable: false