SpringBoot错误的整理

1.新建Spring boot,出现src的包上出现错误的叉号:

分析原因: 你要更新一下选择项目—–Maven—-Updata project,或者删除jar包—Libraries—Maven Dependencies,然后重新关闭eclipse,重新启动!

2.如果你项目与别人一样,怎么试都不行,还是报错,或者其它问题:

分析原因:记住一句话,小问题重启,大问题重装!

3.启动时出现警告:

分析原因: 项目目录设计错误

                 src
                 |_main
                 |_java
                 |_package name
                 |_xxxController
                 |_Application
                application.Java 文件不能直接放在main/java文件夹下,必须要建一个包把他放进去

4.Web项目无法访问resources/templates/xxx.html文件
分析原因:没有导入相关模板的依赖
3.启动时出现NoSuchBeanDefinitionException: No qualifying bean of type [con: No qualifying bean of type
分析原因:@SpringApplicationConfiguration
5.BasicErrorController提供两种返回错误一种是页面返回、当你是页面请求的时候就会返回页面,另外一种是json请求的时候就会返回json错误:
分析原因:

@RequestMapping(produces = "text/html")
    public ModelAndView errorHtml(HttpServletRequest request,
            HttpServletResponse response) {
        HttpStatus status = getStatus(request);
        Map<String, Object> model = Collections.unmodifiableMap(getErrorAttributes(
                request, isIncludeStackTrace(request, MediaType.TEXT_HTML)));
        response.setStatus(status.value());
        ModelAndView modelAndView = resolveErrorView(request, response, status, model);
        return (modelAndView == null ? new ModelAndView("error", model) : modelAndView);
    }

    @RequestMapping
    @ResponseBody
    public ResponseEntity<Map<String, Object>> error(HttpServletRequest request) {
        Map<String, Object> body = getErrorAttributes(request,
                isIncludeStackTrace(request, MediaType.ALL));
        HttpStatus status = getStatus(request);
        return new ResponseEntity<Map<String, Object>>(body, status);
          }

6.javax.servlet.ServletException: Circular view path [login]: would dispatch back to the current handler URL [/login] again出现错误:
分析原因:当没有声明ViewResolver时,spring会注册一个默认的ViewResolver,就是JstlView的实例, 该对象继承自InternalResoureView。
JstlView用来封装JSP或者同一Web应用中的其他资源,它将model对象作为request请求的属性值暴露出来, 并将该请求通过javax.servlet.RequestDispatcher转发到指定的URL.
Spring认为, 这个view的URL是可以用来指定同一web应用中特定资源的,是可以被RequestDispatcher转发的。
也就是说,在页面渲染(render)之前,Spring会试图使用RequestDispatcher来继续转发该请求。
解决:消除缺省转发,修改view和path,让他们不同名。
7.当以.yml结尾的配置出现报错:
分析原因:
格式很重要,一定要慎重,多一个空格或者少一个都不行!!!
if xxxxxx:
(空格)xxxxx

8.当出现错误java.net.BindException: Address already in use: bind
解决:打开Windows进程管理器结束javaw.exe,重新运行。并在每次启动程序前,结束之前的运行。
9.当出现错误Spring Boot Error: java.lang.NoSuchMethodError
解决:仔细搜索报错信息中的方法名,查看出错类中是否缺少某方法。笔者此次报错由于org.springframework.core.ResolvableType.forInstance方法找不到所致,又想起 之前在pom.xml中移除了parent依赖,想起是否改文件没有完整下载。查询了官网说明:当移除parent依赖时,需要增加spring-boot-dependencies的依赖。因此pom.xml中在前新增以下依赖。

<dependencyManagement>  
  <dependencies>  
    <dependency>  
      <groupId>org.springframework.boot</groupId>  
      <artifactId>spring-boot-dependencies</artifactId>  
      <version>1.3.3.RELEASE</version>  
      <type>pom</type>  
      <scope>import</scope>  
    </dependency>  
  </dependencies>  
</dependencyManagement>  

10.当出现错误java -jar myApplication.jar
分析原因:系统报错,Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
解决:在Application.java主程序入口中加入以下代码:
@Bean
public EmbeddedServletContainerFactory servletContainer() {

TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();  
return factory;  

}
11.启动spring boot报错
解决:这个原因是maven依赖包冲突,有重复的依赖。 检查一下你引入的jar包里面是不是有相同的方法名。
12.结果启动时报错BeanCreationException:
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name ‘userController’:
Injection of autowired dependencies failed;
nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.caizhaotu.dao.user.UserRepository com.caizhaotu.controller.user.UserController.userRepository;
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘userRepository’: Invocation of init method failed; nested exception is java.util.NoSuchElementException
解决:application.java 可以放在controller、service、dao层都可以,但是要保证application.java 包位置处于所有层的上级,比如com.xxx.web、com.xxx.service、com.xxx.dao。把application.java放在com.xxx即可。@SpringBootApplication 注解效果等于 @Configuration,@EnableAutoConfiguration 及 @ComponentScan 这三个注解一起使用,所以不要在 Controller 在启动类上面添加 @EnableAutoConfiguration 。
13.class TaskImpl 中注入失败,目标变量为null并报错
解决:1.一些业务细节代码已经单机跑通了。 2.使用了@SpringBootApplication进行自动化配置与扫描。3.没有遗漏的@Component。
14.Spring Boot单元测试报错
java.lang.NoClassDefFoundError: org/mockito/internal/util/MockUtil

 at org.springframework.boot.test.mock.mockito.MockReset.<clinit>(MockReset.java:56)
    at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:44)
    at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:269)
    at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
    at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
    at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
Caused by: java.lang.ClassNotFoundException: org.mockito.internal.util.MockUtil
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

解决:在build.gradle引用compile中加入[group: ‘org.mockito’, name: ‘mockito-all’, version: ‘1.10.19’]
15.eclipse新建springboot的项目,出现以下错误:
The type org.springframework.context.ConfigurableApplicationContext cannot be resolved. It is indirectly referenced from required .class files`
解决:执行 mvn dependency:purge-local-repository mvn clean
16.

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.4.3.RELEASE:repackage (default-cli) on project springboot_1: Execution default-cli of goal org.springframework.boot:spring-boot-maven-plugin:1.4.3.RELEASE:repackage failed: Source must refer to an existing file -> [Help 1]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] For more information about the errors and possible solutions, please read the following articles:

解决:直接使用maven的package命令,即可完成打包,若有新的内容添加,可以使用spring-boot-maven-plugin的repackage命令.详细步骤如下图

17.使用spring boot 使用druid,启动tomcat时报错:提示由于unregister mbean error导致无法启动启动类。

 解决:在配置文件加入spring.jmx.enabled: false
  1. 出现这样的错误:
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:467) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1173) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  解决:删除jar包,重新导入。

19.在spring boot项目中出现不能加载iframe 页面报一个”Refused to display ‘http://……’ in a frame because it set ‘X-Frame-Options’ to ‘DENY’. “错误
解决:因spring Boot采取的java config,在配置spring security的位置添加:

@Override
protected void configure(HttpSecurity http) throws Exception {
       http.headers().frameOptions().disable();
     http
      .csrf().disable();
     http
      .authorizeRequests()
             .anyRequest().authenticated();
      http.formLogin()
          .defaultSuccessUrl("/platform/index",true)
          .loginPage("/login")
          .permitAll()
        .and()
          .logout()
           .logoutUrl("/logout");

      http.addFilterBefore(wiselyFilterSecurityInterceptor(),FilterSecurityInterceptor.class);

}

20.错误提示如下:
Caused by: java.lang.IllegalStateException: Tomcat connector in failed state
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:159) ~[spring-boot-1.3.6.RELEASE.jar:1.3.6.RELEASE]
… 15 common frames omitted
2017-04-14 19:36:55.419 ERROR 19420 — [ restartedMain] o.a.coyote.http11.Http11NioProtocol : Failed to start end point associated with ProtocolHandler [“http-nio-8080”]
解决:是NI server占据了8080端口。
21.出现springboot框架maven构建fastJson启动报错。

Exception in thread "main" java.lang.IllegalStateException: Failed to read Class-Path 
attribute from manifest of jar file:
/E:/myRepository/repositotyExe/repositoty/com/alibaba/fastjson/1.2.32/fastjson-1.2.32.jar
at org.springframework.boot.devtools.restart.ChangeableUrls.
getUrlsFromClassPathOfJarManifestIfPossible(ChangeableUrls.java:110)
at org.springframework.boot.devtools.restart.ChangeableUrls.fromUrlClassLoader
(ChangeableUrls.java:96)
at org.springframework.boot.devtools.restart.DefaultRestartInitializer.getUrls
(DefaultRestartInitializer.java:93)
at org.springframework.boot.devtools.restart.DefaultRestartInitializer.getInitialUrls(
DefaultRestartInitializer.java:56)
at org.springframework.boot.devtools.restart.Restarter.<init>(Restarter.java:140)
at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:546)
at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplication
StartingEvent(RestartApplicationListener.java:67)
at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent
(RestartApplicationListener.java:45)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener
(SimpleApplicationEventMulticaster.java:167)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent
(SimpleApplicationEventMulticaster.java:139)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent
(SimpleApplicationEventMulticaster.java:122)
at org.springframework.boot.context.event.EventPublishingRunListener.starting(
EventPublishingRunListener.java:68)
at org.springframework.boot.SpringApplicationRunListeners.starting(SpringAppl
icationRunListeners.java:48)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151)
at com.bldz.springboot.Spring_Boot_JdbcTemplate.App.main(App.java:14)
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
    at java.util.zip.ZipFile.read(Native Method)
    at java.util.zip.ZipFile.access$1400(ZipFile.java:60)
    at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:717)
    at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:419)
    at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
    at sun.misc.IOUtils.readFully(IOUtils.java:65)
    at java.util.jar.JarFile.getBytes(JarFile.java:425)
    at java.util.jar.JarFile.getManifestFromReference(JarFile.java:193)
    at java.util.jar.JarFile.getManifest(JarFile.java:180)
    at org.springframework.boot.devtools.restart.ChangeableUrls.getUrlsFromCl
assPathOfJarManifestIfPossible(ChangeableUrls.java:107)
    ... 16 more
**解决:删除maven仓库下的 /E:/myRepository/repositotyExe/repositoty/com/alibaba/fastjson/1.2.32/fastjson-1.2.32.jar,重新编译即可!**

22.Spring Boot Maven项目启动报错

ERROR 2172 --- [ main] o.s.boot.SpringApplication : Application startup failed    org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Jetty servlet container
at org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer.start(JettyEmbeddedServletContainer.java:124) ~[spring-boot-1.3.1.RELEASE.jar:1.3.1.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:293) ~[spring-boot-1.3.1.RELEASE.jar:1.3.1.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141) ~[spring-boot-1.3.1.RELEASE.jar:1.3.1.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) ~[spring-boot-1.3.1.RELEASE.jar:1.3.1.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:764) [spring-boot-1.3.1.RELEASE.jar:1.3.1.RELEASE]
at org.springframework.boot.SpringApplication.doRun(SpringApplication.java:357) [spring-boot-1.3.1.RELEASE.jar:1.3.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:305) [spring-boot-1.3.1.RELEASE.jar:1.3.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1124) [spring-boot-1.3.1.RELEASE.jar:1.3.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1113) [spring-boot-1.3.1.RELEASE.jar:1.3.1.RELEASE]
at com.easemob.weichat.gateway.im.IMRoutewayServerStarter.main(IMRoutewayServerStarter.java:28) [classes/:na]
Caused by: java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_112]
at sun.nio.ch.Net.bind(Net.java:433) ~[na:1.8.0_112]
at sun.nio.ch.Net.bind(Net.java:425) ~[na:1.8.0_112]
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[na:1.8.0_112]
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[na:1.8.0_112]
at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:321) ~[jetty-server-9.2.14.v20151106.jar:9.2.14.v20151106]
at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80) ~[jetty-server-9.2.14.v20151106.jar:9.2.14.v20151106]
at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:236) ~[jetty-server-9.2.14.v20151106.jar:9.2.14.v20151106]
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[jetty-util-9.2.14.v20151106.jar:9.2.14.v20151106]
at org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer.start(JettyEmbeddedServletContainer.java:118) ~[spring-boot-1.3.1.RELEASE.jar:1.3.1.RELEASE]
... 10 common frames omitted
   解决:典型的端口被占用,,改下你的boot启动端口。
<think>好的,我现在需要帮助用户解决Spring Boot项目中application.properties文件的配置错误问题。首先,我得回想一下用户提到的引用内容,尤其是引用[1]到[3],这些可能涉及到配置属性绑定的异常以及配置文件的优先级问题。 首先,用户的问题是关于application.properties配置错误及解决方案。常见的配置错误可能有语法错误、属性名拼写错误、属性值格式不正确、配置文件优先级问题,以及配置未生效的情况。我需要逐一分析这些可能的原因,并提供对应的解决方法。 根据引用[1],配置属性绑定异常通常是由于属性名不正确或类型不匹配导致的。比如,在.properties文件中使用驼峰命名或错误的层级结构,Spring Boot可能无法正确绑定到对应的配置类。这时候需要检查属性名是否正确,是否使用了正确的分隔符(比如使用“.”而不是“-”或者驼峰)。 引用[2]提到application.properties使用键值格式,例如spring.datasource.url等配置。如果用户在这里的配置有误,比如URL格式错误、缺少必要的参数,或者数据库驱动类未正确指定,就会导致数据源无法初始化。需要检查这些属性是否正确,特别是数据库连接的URL、用户名和密码。 引用[3]指出配置文件的优先级问题,application.properties和application.yml的加载顺序可能会影响最终的配置。如果同时存在多个配置文件,需要确认它们的加载顺序,避免属性被覆盖。比如,在Spring Boot中,application.properties的优先级高于application.yml,但如果用户同时有application.properties和application-dev.properties,激活的环境配置会覆盖默认的。 接下来,我需要整理这些可能导致配置错误的原因,并给出具体的解决步骤。比如,检查语法错误,例如是否在行末有多余的空格,属性名是否正确,属性值是否需要引号包裹,特别是含有特殊字符的时候。然后,检查配置属性是否存在,是否有拼写错误,比如“spring.datasource.url”是否写成了“spring.datasource.url123”。 另外,属性绑定问题也是常见错误,比如在配置类中使用@ConfigurationProperties注解时,属性名必须与配置文件中的键匹配。例如,配置类中的字段名是“myProp”,那么在配置文件中应该是“my.prop”而不是“my-prop”。这时候可能需要检查配置类的字段命名是否符合Spring的宽松绑定规则,或者是否需要使用@Value注解来指定具体的属性名。 配置文件的位置也很重要,用户可能将application.properties放错了位置,比如没有放在src/main/resources目录下,导致配置未被加载。需要确认文件的位置是否正确,以及是否被正确打包到应用的类路径中。 此外,多环境配置可能导致问题,比如激活的环境配置中存在错误的属性。用户可能使用了spring.profiles.active指定了环境,但对应的application-dev.properties中有错误配置,这时候需要检查激活的环境配置文件。 最后,版本差异也可能导致问题,不同版本的Spring Boot可能对某些配置属性的支持不同,比如过时的属性名在新版本中被废弃,需要使用新的属性名替换。需要参考官方文档确认属性是否适用于当前使用的Spring Boot版本。 在解决方案中,可能需要建议用户使用IDE的配置元数据提示功能,或者开启调试日志来查看配置加载的详细信息,从而定位问题所在。同时,给出具体的示例代码或配置片段,帮助用户对照检查自己的配置文件。 总结起来,我需要分步骤说明如何检查和解决配置错误,包括语法检查、属性名验证、配置文件位置和优先级、多环境配置以及版本兼容性等方面。同时,结合用户提供的引用内容,强调属性绑定的正确性和配置文件的加载顺序,确保用户能够系统地排查并解决问题。</think>### Spring Boot application.properties 配置错误及解决方案 #### **常见配置错误类型及原因** 1. **语法错误** - 键值对格式错误,例如缺少等号、多余空格或未转义特殊字符。 ```properties # 错误示例(等号后多余空格) spring.datasource.url = jdbc:mysql://localhost:3306/db # 正确示例 spring.datasource.url=jdbc:mysql://localhost:3306/db ``` - 包含未转义的特殊符号(如`:`、`#`)时需用引号包裹: ```properties # 错误示例 app.message=Hello:World # 正确示例 app.message="Hello:World" ``` 2. **属性名拼写错误** Spring Boot属性名需严格遵循层级格式(如`spring.datasource.username`),驼峰命名或拼写错误会导致绑定失败[^1]。 ```properties # 错误示例(应为spring.datasource.username) spring.datasource.userName=admin ``` 3. **属性值格式错误** - 数值或布尔值格式不合法: ```properties # 错误示例(布尔值应为true/false) app.enabled=yes ``` - 时间单位未按规范书写(如`10s`、`5m`): ```properties # 错误示例(缺少单位) server.connection-timeout=30 # 正确示例 server.connection-timeout=30s ``` 4. **配置文件未生效** - `application.properties`未放置在`src/main/resources`目录下[^2]。 - 多环境配置冲突(如同时存在`application-dev.properties`和`application-prod.properties`但未指定激活的环境)。 --- #### **解决方案步骤** 1. **检查语法与格式** - 使用IDE(如IntelliJ IDEA)的配置验证功能,自动检测语法错误。 - 确保每行键值对为`key=value`格式,且无多余空格。 2. **核对属性名与官方文档** - 参考[Spring Boot官方文档](https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html)确认属性名。 - 示例:数据源配置的正确属性名: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=123456 ``` 3. **验证属性绑定** - 若通过`@ConfigurationProperties`绑定配置类,需确保字段名与配置文件匹配: ```java @ConfigurationProperties(prefix = "app") public class AppConfig { private String message; // 对应app.message // getter/setter } ``` 4. **配置文件优先级与位置** - 确认`application.properties`位于`src/main/resources`目录。 - 优先级规则:`application.properties` > `application.yml`[^3],但激活的环境配置(如`application-dev.properties`)会覆盖默认配置。 5. **启用调试日志** 在`application.properties`中添加以下配置,查看属性加载详情: ```properties debug=true logging.level.org.springframework.boot.context.properties=TRACE ``` 6. **处理多环境配置冲突** - 明确指定激活的环境: ```properties spring.profiles.active=dev ``` - 检查环境专属配置文件中是否存在冲突属性。 --- #### **示例:修复数据源配置错误** **错误配置** ```properties spring.datasource.url=jdbc:mysql://localhost/mydb spring.datasource.user=root spring.datasource.pwd=123456 ``` **错误原因** - 属性名错误:`user`应为`username`,`pwd`应为`password`[^2]。 - URL缺少端口号(默认3306可省略,但显式声明更清晰)。 **修正后配置** ```properties spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=123456 ``` --- #### **扩展工具** - **Spring Boot Configuration Processor** 在`pom.xml`中添加依赖,提供配置属性的IDE自动补全: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值