首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >语法错误,使用@ ClassBodyDeclarations时插入"EnumBody“以完成值

语法错误,使用@ ClassBodyDeclarations时插入"EnumBody“以完成值
EN

Stack Overflow用户
提问于 2020-12-05 14:03:23
回答 2查看 247关注 0票数 0

我写这个类是为了从application.propreties文件中检索一个属性。我在@value语句中得到了上面的错误。我试着用不同的方式来设置,但都没有用。

我还尝试将其设置为@componnet。

代码语言:javascript
复制
package com.example.demo;

import org.springframework.context.annotation.Configuration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;

import javax.management.loading.PrivateMLet;

import org.springframework.beans.factory.annotation.*;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.*;


@Configuration
public class ApplicationConfiguration {

    @Value("${spring.datasource.url");
        private String JdbcUrl;

    @Value("${spring.datasource.user:}");
        private String JdbcUser;

    @Value("${spring.datasource.password:}");
        private String JdbcPassword;

    public String getJdbcUrl() {
        return JdbcUrl;
    }
    public String getJdbcUser() {
        return JdbcUser;
    }
    public String getJdbcPassword() {
        return JdbcPassword;
    }

}

我得到的错误是:

代码语言:javascript
复制
2020-12-05 11:11:30.077  INFO 660 --- [           main] c.e.demo.AccessPostgresApplication       : Starting AccessPostgresApplication on user-PC with PID 660 (C:\Users\user\Documents\mytrips\target\classes started by user in C:\Users\user\Documents\mytrips)
2020-12-05 11:11:30.080  INFO 660 --- [           main] c.e.demo.AccessPostgresApplication       : The following profiles are active: dev
2020-12-05 11:11:31.838  INFO 660 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-12-05 11:11:31.838  INFO 660 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.38]
2020-12-05 11:11:32.008  INFO 660 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded
WebApplicationContext
2020-12-05 11:11:32.124  INFO 660 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2020-12-05 11:11:32.551  INFO 660 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2020-12-05 11:11:33.153  INFO 660 --- [         task-1] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2020-12-05 11:11:33.223  INFO 660 --- [         task-1] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 5.4.21.Final
2020-12-05 11:11:33.418  INFO 660 --- [         task-1] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
2020-12-05 11:11:33.578  INFO 660 --- [         task-1] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.PostgreSQLDialect
2020-12-05 11:11:34.580  INFO 660 --- [         task-1] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000490: Using JtaPlatform
implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
Exception in thread "task-2" java.lang.IllegalStateException: EntityManagerFactory is closed
        at org.hibernate.internal.SessionFactoryImpl.validateNotClosed(SessionFactoryImpl.java:509)
2020-12-05 11:11:34.606  INFO 660 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...
        at org.hibernate.internal.SessionFactoryImpl.getProperties(SessionFactoryImpl.java:503)
        at org.springframework.boot.autoconfigure.orm.jpa.DataSourceInitializedPublisher.findDataSource(DataSourceInitializedPublisher.java:105)
        at org.springframework.boot.autoconfigure.orm.jpa.DataSourceInitializedPublisher.publishEventIfRequired(DataSourceInitializedPublisher.java:97)
        at org.springframework.boot.autoconfigure.orm.jpa.DataSourceInitializedPublisher.access$100(DataSourceInitializedPublisher.java:50)
        at org.springframework.boot.autoconfigure.orm.jpa.DataSourceInitializedPublisher$DataSourceSchemaCreatedPublisher.lambda$postProcessEntityManagerFactory$0(DataSourceInitializedPublisher.java:200)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
        at java.base/java.lang.Thread.run(Thread.java:832)
2020-12-05 11:11:34.614  INFO 660 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.
2020-12-05 11:11:34.616  INFO 660 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2020-12-05 11:11:34.641 ERROR 660 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'applicationConfiguration' defined in file [C:\Users\user\Documents\mytrips\target\classes\com\example\demo\ApplicationConfiguration.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.example.demo.ApplicationConfiguration$$EnhancerBySpringCGLIB$$5e10e388]: Constructor threw exception; nested exception is java.lang.Error: Unresolved compilation problems:
        Syntax error, insert "enum Identifier" to complete EnumHeaderName
        Syntax error, insert "EnumBody" to complete ClassBodyDeclarations
        Syntax error, insert "enum Identifier" to complete EnumHeaderName
        Syntax error, insert "EnumBody" to complete EnumDeclaration
        Syntax error, insert "enum Identifier" to complete EnumHeaderName
        Syntax error, insert "EnumBody" to complete EnumDeclaration

        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1318) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1213) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) ~[spring-boot-2.3.4.RELEASE.jar:2.3.4.RELEASE]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) ~[spring-boot-2.3.4.RELEASE.jar:2.3.4.RELEASE]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) ~[spring-boot-2.3.4.RELEASE.jar:2.3.4.RELEASE]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.3.4.RELEASE.jar:2.3.4.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.3.4.RELEASE.jar:2.3.4.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) ~[spring-boot-2.3.4.RELEASE.jar:2.3.4.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.3.4.RELEASE.jar:2.3.4.RELEASE]
        at com.example.demo.AccessPostgresApplication.main(AccessPostgresApplication.java:11) ~[classes/:na]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate 

jsdkfn kljsfn lkflksd ;lskjf ;lskjf ;lkfj s;lkfj ;lskjdf ;lkj ;lskdjf nvm,fnbmdnb,mfnb,mdsn

EN

回答 2

Stack Overflow用户

发布于 2020-12-05 14:55:45

在spring中,不能将final@Value一起使用。如果对类中的字段使用final,则必须初始化该字段,并且在初始化后,该值不能更改。

但是@Value的工作方式不同,spring将在运行时填充值,因此如果有最终的标识符,spring将无法使用属性的值来填充值。

在你的例子中,你使用了final,但是你没有初始化值,这就是为什么你会得到一个异常。如果您可以删除最终值或初始化值,则可以删除异常。如果移除最后一个弹簧,将能够填充值。如果你用某些东西初始化了这个值,那么这个值在你的应用程序中是不会改变的。

票数 0
EN

Stack Overflow用户

发布于 2020-12-07 02:36:03

找到问题所在。@value语句的末尾有一个';‘

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65154269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档