问题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.MF 中 Class-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模块下启动,扫描不到另一个模块的包
web模块下的项目,使用AdminApplication启动时,扫描不到netty下面的文件
原因:AdminApplication里面的注解@SpringBootApplication,默认只能扫描到当前包下面的文件,AdminApplication所在包为com.demo,只能扫描到com.web.demo下面的文件,
netty模块下包为com.netty,导致启动时,扫描不到netty模块。
解决方法:netty模块下包为com.netty改为com.demo.netty,这样项目启动就扫描到netty模块了
如果还遇到其他问题,继续记录!!