1、springboot项目运行报错

问题1:获取不到配置文件的参数

我的配置文件获取的参数如下:

public class Configures{
	@Value("${configmdm.apk.apkName}")
   private static String apkName;

    
    private void setApkName(String apkName) {
        Configures.apkName = apkName;
    }
   private Integer getApkName(){
   	  return Configures.apkName;
   }
   
}

Configures.getApkName()获取参数的参数值为null

解决方法:

public class Configures{
	
   private static String apkName;
    @Value("${configmdm.apk.apkName}")
    private void setApkName(String apkName) {
        Configures.apkName = apkName;
    }
   private Integer getApkName(){
   	  return Configures.apkName;
   }
   
}

原因:@Value不能用到static修饰的值上

问题2:打包jar后,运行报错

之前,我虽然将引用的依赖放到了lib文件夹下,但是程序运行时没有指定具体的启动程序,报错如下:
Exception in thread “main” java.lang.reflect.InvocationTargetException

解决方法:
修改pom.xml文件如下,就可以进行打包了

 <plugins>
        <!-- 打包 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>me.uniauto.mdm.AdminApplication</mainClass>
                        <useUniqueVersions>false</useUniqueVersions>
                        <classpathPrefix>lib/</classpathPrefix>
                    </manifest>
                    <manifestEntries>
                        <!--MANIFEST.MFClass-Path 加入资源文件目录-->
                        <Class-Path>./resources/</Class-Path>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>
        <!--拷贝依赖到jar外面的lib目录-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <!--指定的依赖路径-->
                        <outputDirectory>
                            ${project.build.directory}/lib
                        </outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
    </plugins>

问题3:项目是分模块的,web模块下启动,扫描不到另一个模块的包

1、springboot项目运行报错_第1张图片

web模块下的项目,使用AdminApplication启动时,扫描不到netty下面的文件

原因:AdminApplication里面的注解@SpringBootApplication,默认只能扫描到当前包下面的文件,AdminApplication所在包为com.demo,只能扫描到com.web.demo下面的文件,
netty模块下包为com.netty,导致启动时,扫描不到netty模块。
解决方法:netty模块下包为com.netty改为com.demo.netty,这样项目启动就扫描到netty模块了

问题4:找不到对应的xx.xml文件

报错问题:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.demo.dao.mappe.userMapper.getAllUser

解决方法:
在resource下面写的包名为com.demo.dao.mapper,在配置文件.xml中,配置了mapper.xml的路径如下:

mybatis:
   mapper-locations:  classpath*:/com/demo/dao/mapper/*.xml;

从idea编译工具上,也存在com.demo.dao.mapper包,springboot启动的时候,应该能扫描到com.demo.dao.mapper下的文件,但是就是报这个问题
在这里插入图片描述

后来,偶然间,我去本地文件夹下,发现了原因。
本地文件夹竟然有一个名叫 com.demo.dao.mapper的文件夹,其实应该为com的文件夹,com下有demo,这种结构
在这里插入图片描述
解决方法:删掉该文件夹,一层层重新创建,就可以了

如果还遇到其他问题,继续记录!!

你可能感兴趣的:(spring,boot,后端,java)