Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor for 0.3.0-RC version which supported springboot3 #12076

Open
Joker-zc opened this issue May 9, 2024 · 4 comments
Assignees
Labels
area/Spring Boot Related to Spring Boot kind/research

Comments

@Joker-zc
Copy link

Joker-zc commented May 9, 2024

Describe the bug
1add starter dependency
2use @NacosPropertySource & NacosValue getConfig
3start failed
2024-05-09 18:07:56.174 [main-839] ERROR o.s.boot.SpringApplication:reportFailure:839 - Application run failedjava.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: method 'void ()' not found
at com.alibaba.nacos.spring.util.parse.DefaultYamlConfigParse.createYaml(DefaultYamlConfigParse.java:66)
at com.alibaba.boot.nacos.config.support.MultiProfilesYamlConfigParseSupport.parse(MultiProfilesYamlConfigParseSupport.java:71)
at com.alibaba.nacos.spring.util.ConfigParseUtils.toProperties(ConfigParseUtils.java:95)
at com.alibaba.nacos.spring.util.ConfigParseUtils.toProperties(ConfigParseUtils.java:119)
at com.alibaba.nacos.spring.util.NacosUtils.toProperties(NacosUtils.java:542)
at com.alibaba.nacos.spring.core.env.NacosPropertySource.(NacosPropertySource.java:62)
at com.alibaba.nacos.spring.core.env.AbstractNacosPropertySourceBuilder.doBuild(AbstractNacosPropertySourceBuilder.java:198)
at com.alibaba.nacos.spring.core.env.AbstractNacosPropertySourceBuilder.build(AbstractNacosPropertySourceBuilder.java:114)
at com.alibaba.nacos.spring.core.env.NacosPropertySourcePostProcessor.buildNacosPropertySources(NacosPropertySourcePostProcessor.java:207)
at com.alibaba.nacos.spring.core.env.NacosPropertySourcePostProcessor.doProcessPropertySource(NacosPropertySourcePostProcessor.java:191)
at com.alibaba.nacos.spring.core.env.NacosPropertySourcePostProcessor.processPropertySource(NacosPropertySourcePostProcessor.java:184)
at com.alibaba.nacos.spring.core.env.NacosPropertySourcePostProcessor.postProcessBeanFactory(NacosPropertySourcePostProcessor.java:170)
at com.alibaba.nacos.spring.util.NacosBeanUtils.invokeNacosPropertySourcePostProcessor(NacosBeanUtils.java:416)
at com.alibaba.nacos.spring.context.annotation.config.NacosConfigBeanDefinitionRegistrar.registerBeanDefinitions(NacosConfigBeanDefinitionRegistrar.java:74)
at org.springframework.context.annotation.ImportBeanDefinitionRegistrar.registerBeanDefinitions(ImportBeanDefinitionRegistrar.java:86)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromRegistrars$1(ConfigurationClassBeanDefinitionReader.java:376)
at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:375)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:148)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:120)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:428)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:289)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:323)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1342)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1331)
at com.eastmoney.quote.ConfigApplication.main(ConfigApplication.java:9)

Expected behavior
start success

Actually behavior
app start failed

How to Reproduce
Steps to reproduce the behavior:

pom&code

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.0</version>
    </parent>
<properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <nacos.version>0.3.0-RC</nacos.version>
        <logback.version>1.4.14</logback.version>
        <netty.version>4.1.101.Final</netty.version>
    </properties>

   <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>0.3.0-RC</version>
        </dependency>



@Service
@Slf4j
@NacosPropertySource(dataId = "app.yml",groupId = "yml", autoRefreshed = true)
@Data
public class ConfigDemo {
    @NacosValue(value = "${clientName}", autoRefreshed = true)
    private String clientName;

    private String clientPass;

    @NacosInjected
    private ConfigService configService;


    @PostConstruct
    public void init() throws NacosException {
        log.info("clientname:{},password:{}", clientName, clientPass);
        log.info("{}", configService.getConfig("30", "ONLINE_TEMPLATE", 2000));
    }
}

nacos:
  config:
    server-addr: xxx:8848
    username: user
    password: pass
    namespace: xxxxxxx

Desktop (please complete the following information):

  • OS: [windows]
  • Version [e.g. nacos-config-spring-boot-starter 0.3.0-RC]
  • Module [e.g. ]
  • SDK [jdk17+springboot 3.2.0]

Additional context
log:
2024-05-09 18:07:54.443 [main-51] INFO c.a.b.n.c.u.NacosConfigPropertiesUtils:buildNacosConfigProperties:51 - nacosConfigProperties : NacosConfigProperties{serverAddr='172.16.57.34:8848', contextPath='null', encode='null', endpoint='null', namespace='24a8154b-a3ac-4acc-b308-b80e7313f682', accessKey='null', secretKey='null', ramRoleName='null', autoRefresh=false, dataId='null', dataIds='null', group='DEFAULT_GROUP', type=PROPERTIES, maxRetry='null', configLongPollTimeout='null', configRetryTime='null', enableRemoteSyncConfig=false, extConfig=[], bootstrap=Bootstrap{enable=false, snapshotEnable=false, logEnable=false}}

. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
( ( )_
_ | '_ | '| | ' / ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' |
| .__|| ||| |_, | / / / /
=========|
|==============|/=////
:: Spring Boot :: (v3.2.0)

2024-05-09 18:07:54.496 [main-51] INFO c.a.b.n.c.u.NacosConfigPropertiesUtils:buildNacosConfigProperties:51 - nacosConfigProperties : NacosConfigProperties{serverAddr='172.16.57.34:8848', contextPath='null', encode='null', endpoint='null', namespace='24a8154b-a3ac-4acc-b308-b80e7313f682', accessKey='null', secretKey='null', ramRoleName='null', autoRefresh=false, dataId='null', dataIds='null', group='DEFAULT_GROUP', type=PROPERTIES, maxRetry='null', configLongPollTimeout='null', configRetryTime='null', enableRemoteSyncConfig=false, extConfig=[], bootstrap=Bootstrap{enable=false, snapshotEnable=false, logEnable=false}}
2024-05-09 18:07:54.507 [main-64] WARN c.a.n.client.logging.NacosLogging:loadConfiguration:64 - Load Logback Configuration of Nacos fail, message: Could not initialize Logback Nacos logging from classpath:nacos-logback.xml
2024-05-09 18:07:54.507 [main-63] INFO c.a.n.c.c.i.LocalConfigInfoProcessor::63 - LOCAL_SNAPSHOT_PATH:C:\Users\Administrator\nacos\config
2024-05-09 18:07:54.516 [main-81] INFO c.a.b.n.c.a.NacosConfigApplicationContextInitializer:initialize:81 - [Nacos Config Boot] : The preload configuration is not enabled
2024-05-09 18:07:54.519 [main-50] INFO c.eastmoney.quote.ConfigApplication:logStarting:50 - Starting ConfigApplication using Java 17.0.10 with PID 41128 (E:\quoteConfigCenterClient\target\classes started by Administrator in E:\quoteConfigCenterClient)
2024-05-09 18:07:54.520 [main-653] INFO c.eastmoney.quote.ConfigApplication:logStartupProfileInfo:653 - No active profile set, falling back to 1 default profile: "default"
2024-05-09 18:07:54.803 [main-87] INFO c.a.nacos.client.utils.ParamUtil::87 - [settings] [req-serv] nacos-server port:8848
2024-05-09 18:07:54.803 [main-98] INFO c.a.nacos.client.utils.ParamUtil::98 - [settings] [http-client] connect timeout:1000
2024-05-09 18:07:54.805 [main-105] INFO c.a.nacos.client.utils.ParamUtil::105 - PER_TASK_CONFIG_SIZE: 3000.0
2024-05-09 18:07:54.921 [main-56] INFO c.a.n.p.a.s.c.ClientAuthPluginManager:init:56 - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
2024-05-09 18:07:54.921 [main-56] INFO c.a.n.p.a.s.c.ClientAuthPluginManager:init:56 - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
2024-05-09 18:07:55.060 [main-62] INFO c.a.nacos.client.config.impl.Limiter::62 - limitTime:5.0
2024-05-09 18:07:55.214 [main-165] INFO c.a.n.c.a.r.i.CredentialWatcher:loadCredential:165 - null No credential found
2024-05-09 18:07:55.236 [main-108] INFO c.alibaba.nacos.common.remote.client:lambda$createClient$0:108 - [RpcClientFactory] create a new rpc client of 9e3d4bd1-f1f2-40bd-b4c1-35436a4de897_config-0
2024-05-09 18:07:55.251 [main-63] INFO c.alibaba.nacos.common.remote.client:printIfInfoEnabled:63 - [9e3d4bd1-f1f2-40bd-b4c1-35436a4de897_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$469/0x0000029d6b2ce370
2024-05-09 18:07:55.252 [main-63] INFO c.alibaba.nacos.common.remote.client:printIfInfoEnabled:63 - [9e3d4bd1-f1f2-40bd-b4c1-35436a4de897_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$470/0x0000029d6b2ce7a0
2024-05-09 18:07:55.252 [main-63] INFO c.alibaba.nacos.common.remote.client:printIfInfoEnabled:63 - [9e3d4bd1-f1f2-40bd-b4c1-35436a4de897_config-0] Registry connection listener to current client:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$1
2024-05-09 18:07:55.252 [main-63] INFO c.alibaba.nacos.common.remote.client:printIfInfoEnabled:63 - [9e3d4bd1-f1f2-40bd-b4c1-35436a4de897_config-0] RpcClient init, ServerListFactory = com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$2
2024-05-09 18:07:55.259 [main-63] INFO c.alibaba.nacos.common.remote.client:printIfInfoEnabled:63 - [9e3d4bd1-f1f2-40bd-b4c1-35436a4de897_config-0] Try to connect to server on start up, server: {serverIp = '172.16.57.34', server main port = 8848}
2024-05-09 18:07:55.280 [main-182] INFO c.a.n.c.r.client.grpc.GrpcClient:createNewManagedChannel:182 - grpc client connection server:172.16.57.34 ip,serverPort:9848,grpcTslConfig:{"sslProvider":"OPENSSL","enableTls":false,"mutualAuthEnable":false,"trustAll":false}
2024-05-09 18:07:56.101 [main-63] INFO c.alibaba.nacos.common.remote.client:printIfInfoEnabled:63 - [9e3d4bd1-f1f2-40bd-b4c1-35436a4de897_config-0] Success to connect to server [172.16.57.34:8848] on start up, connectionId = 1715249277142_172.16.50.54_60399
2024-05-09 18:07:56.102 [com.alibaba.nacos.client.remote.worker-63] INFO c.alibaba.nacos.common.remote.client:printIfInfoEnabled:63 - [9e3d4bd1-f1f2-40bd-b4c1-35436a4de897_config-0] Notify connected event to listeners.
2024-05-09 18:07:56.102 [main-63] INFO c.alibaba.nacos.common.remote.client:printIfInfoEnabled:63 - [9e3d4bd1-f1f2-40bd-b4c1-35436a4de897_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
2024-05-09 18:07:56.102 [com.alibaba.nacos.client.remote.worker-639] INFO c.a.n.c.config.impl.ClientWorker:onConnected:639 - [9e3d4bd1-f1f2-40bd-b4c1-35436a4de897_config-0] Connected,notify listen context...
2024-05-09 18:07:56.102 [main-63] INFO c.alibaba.nacos.common.remote.client:printIfInfoEnabled:63 - [9e3d4bd1-f1f2-40bd-b4c1-35436a4de897_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$491/0x0000029d6b449e48
2024-05-09 18:07:56.141 [main-624] WARN o.s.c.a.AnnotationConfigApplicationContext:refresh:624 - Exception encountered during context initialization - cancelling refresh attempt: java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: method 'void ()' not found
2024-05-09 18:07:56.141 [main-515] INFO c.a.n.c.config.impl.ClientWorker:shutdown:515 - com.alibaba.nacos.client.config.impl.ClientWorker do shutdown begin
2024-05-09 18:07:56.142 [main-106] INFO c.a.n.c.a.r.i.CredentialWatcher:stop:106 - [null] CredentialWatcher is stopped
2024-05-09 18:07:56.142 [main-100] INFO c.a.n.c.a.r.i.CredentialService:free:100 - [null] CredentialService is freed
2024-05-09 18:07:56.142 [main-558] INFO c.a.n.c.config.impl.ClientWorker:shutdown:558 - Trying to shutdown transport client com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient@2f14b0f6
2024-05-09 18:07:56.142 [main-564] INFO c.a.n.c.config.impl.ClientWorker:shutdown:564 - Trying to shutdown rpc client 9e3d4bd1-f1f2-40bd-b4c1-35436a4de897_config-0
2024-05-09 18:07:56.142 [main-429] INFO c.alibaba.nacos.common.remote.client:shutdown:429 - Shutdown rpc client, set status to shutdown
2024-05-09 18:07:56.142 [main-431] INFO c.alibaba.nacos.common.remote.client:shutdown:431 - Shutdown client event executor java.util.concurrent.ScheduledThreadPoolExecutor@5b20706[Running, pool size = 2, active threads = 2, queued tasks = 0, completed tasks = 0]
2024-05-09 18:07:56.142 [main-584] INFO c.alibaba.nacos.common.remote.client:closeConnection:584 - Close current connection 1715249277142_172.16.50.54_60399
2024-05-09 18:07:56.144 [nacos-grpc-client-executor-172.16.57.34-9-63] INFO c.a.n.c.r.client.grpc.GrpcClient:printIfInfoEnabled:63 - [1715249277142_172.16.50.54_60399]Ignore complete event,isRunning:false,isAbandon=false
2024-05-09 18:07:56.145 [main-159] INFO c.a.n.c.r.client.grpc.GrpcClient:shutdown:159 - Shutdown grpc executor java.util.concurrent.ThreadPoolExecutor@fb49fdf[Running, pool size = 10, active threads = 0, queued tasks = 0, completed tasks = 10]
2024-05-09 18:07:56.146 [main-571] INFO c.a.n.c.config.impl.ClientWorker:shutdown:571 - Remove rpc client 9e3d4bd1-f1f2-40bd-b4c1-35436a4de897_config-0
2024-05-09 18:07:56.146 [main-576] INFO c.a.n.c.config.impl.ClientWorker:shutdown:576 - Shutdown executor java.util.concurrent.ScheduledThreadPoolExecutor@3a2e9f5b[Running, pool size = 3, active threads = 1, queued tasks = 1, completed tasks = 1]
2024-05-09 18:07:56.146 [main-519] INFO c.a.n.c.config.impl.ClientWorker:shutdown:519 - com.alibaba.nacos.client.config.impl.ClientWorker do shutdown stop
2024-05-09 18:07:56.174 [main-839] ERROR o.s.boot.SpringApplication:reportFailure:839 - Application run failedjava.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: method 'void ()' not found
at com.alibaba.nacos.spring.util.parse.DefaultYamlConfigParse.createYaml(DefaultYamlConfigParse.java:66)
at com.alibaba.boot.nacos.config.support.MultiProfilesYamlConfigParseSupport.parse(MultiProfilesYamlConfigParseSupport.java:71)
at com.alibaba.nacos.spring.util.ConfigParseUtils.toProperties(ConfigParseUtils.java:95)
at com.alibaba.nacos.spring.util.ConfigParseUtils.toProperties(ConfigParseUtils.java:119)
at com.alibaba.nacos.spring.util.NacosUtils.toProperties(NacosUtils.java:542)
at com.alibaba.nacos.spring.core.env.NacosPropertySource.(NacosPropertySource.java:62)
at com.alibaba.nacos.spring.core.env.AbstractNacosPropertySourceBuilder.doBuild(AbstractNacosPropertySourceBuilder.java:198)
at com.alibaba.nacos.spring.core.env.AbstractNacosPropertySourceBuilder.build(AbstractNacosPropertySourceBuilder.java:114)
at com.alibaba.nacos.spring.core.env.NacosPropertySourcePostProcessor.buildNacosPropertySources(NacosPropertySourcePostProcessor.java:207)
at com.alibaba.nacos.spring.core.env.NacosPropertySourcePostProcessor.doProcessPropertySource(NacosPropertySourcePostProcessor.java:191)
at com.alibaba.nacos.spring.core.env.NacosPropertySourcePostProcessor.processPropertySource(NacosPropertySourcePostProcessor.java:184)
at com.alibaba.nacos.spring.core.env.NacosPropertySourcePostProcessor.postProcessBeanFactory(NacosPropertySourcePostProcessor.java:170)
at com.alibaba.nacos.spring.util.NacosBeanUtils.invokeNacosPropertySourcePostProcessor(NacosBeanUtils.java:416)
at com.alibaba.nacos.spring.context.annotation.config.NacosConfigBeanDefinitionRegistrar.registerBeanDefinitions(NacosConfigBeanDefinitionRegistrar.java:74)
at org.springframework.context.annotation.ImportBeanDefinitionRegistrar.registerBeanDefinitions(ImportBeanDefinitionRegistrar.java:86)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromRegistrars$1(ConfigurationClassBeanDefinitionReader.java:376)
at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:375)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:148)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:120)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:428)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:289)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:323)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1342)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1331)
at com.eastmoney.quote.ConfigApplication.main(ConfigApplication.java:9)

2024-05-09 18:07:56.177 [Thread-1-102] WARN c.a.n.c.http.HttpClientBeanHolder:shutdown:102 - [HttpClientBeanHolder] Start destroying common HttpClient
2024-05-09 18:07:56.178 [Thread-6-136] WARN c.a.nacos.common.notify.NotifyCenter:shutdown:136 - [NotifyCenter] Start destroying Publisher
2024-05-09 18:07:56.178 [Thread-6-153] WARN c.a.nacos.common.notify.NotifyCenter:shutdown:153 - [NotifyCenter] Destruction of the end
2024-05-09 18:07:56.178 [Thread-1-111] WARN c.a.n.c.http.HttpClientBeanHolder:shutdown:111 - [HttpClientBeanHolder] Destruction of the end
source code:
image

@Joker-zc
Copy link
Author

Joker-zc commented May 9, 2024

find same issue #nacos-group/nacos-spring-project#319
find commit for this nacos-group/nacos-spring-project#336
look forward to next version :)

@Joker-zc
Copy link
Author

Joker-zc commented May 9, 2024

when i changed my dataId from app.yml to app in nacos & my code ,my app start success

@Joker-zc
Copy link
Author

when use @ConditionOnXXX ,will failed too, same exception,my config is

nacos:
  config:
    server-addr: http://xxx:8848
    username: data
    password: data
    namespace: xxxx
    bootstrap.enable: true
    data-id: app
    type: YAML
    auto-refresh: true
    group: yml

if remove type or set type to properties, will throw "can not resolve config"
if use yaml ,will thorw same exception

@Joker-zc
Copy link
Author

Any plans for the new RC release? @hujun-w-2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/Spring Boot Related to Spring Boot kind/research
Projects
None yet
Development

No branches or pull requests

3 participants