SpringBoot 从非父子项目 到父子项目

SpringBoot 从非父子项目 到父子项目

  • SpringBoot 从非父子项目 到父子项目 问题
    • 1.项目启动之后提示,Consider defining a bean of type 'com.pz.intelligentworkingface.config.PZConfig' in your configuration.
    • 2. 报错 Caused by: javax.management.InstanceAlreadyExistsException: org.springframework.boot:type=Admin,name=SpringApplication

SpringBoot 从非父子项目 到父子项目 问题

原本的项目是非父子项目,现在想对其进行修改,改成父子项目,将公用的代码拆分到common模块,controller 等拆分到 admin中。出现了几个问题具体如下。

1.项目启动之后提示,Consider defining a bean of type ‘com.pz.intelligentworkingface.config.PZConfig’ in your configuration.

SpringBoot 从非父子项目 到父子项目_第1张图片

这里提示的是找不到这个标注 confiuration 注解PZConfig这个类,在容器中。

问题出现原因:我这些config 的这些类都是定义在common 中的,而我的web接口模块是依赖于common的。原来非父子项目的时候,在SpringBoot启动类上有默认的配置注解包扫描配置。而现在我改成父子结构之后,原本默认的扫描,扫描不到了,所以需要在web接口子模块,的SpringBoot启动类上添加注解

@SpringBootApplication
@MapperScan("com.pz.intelligentworkingface.pzwebadmin.mapper")
@ComponentScan(basePackages = {"com.pz.intelligentworkingface.config"
        ,"com.pz.intelligentworkingface.dynamicDataSource"
        ,"com.pz.intelligentworkingface.api"
        ,"com.pz.intelligentworkingface.pzwebadmin"})
@EnableConfigurationProperties
public class PzWebadminApplication {

    private static final Logger logger = LoggerFactory.getLogger(PzWebadminApplication.class);

    public static void main(String[] args) {
		SpringApplication.run(PzWebadminApplication.class, args);
}

通过@ComponentScan 注解来扫描这些存放了@confiuration 的类的包。即可解决这个问题

2. 报错 Caused by: javax.management.InstanceAlreadyExistsException: org.springframework.boot:type=Admin,name=SpringApplication

当发生这个问题的时候,我的idea 的log打印出现了两次SpringBoot的图画,然后SpringBoot 从非父子项目 到父子项目_第2张图片
这也就是说我这里,内嵌的 Tomcat 启动了两次,才造成这个初始化已经存在的这个状态。
解决方法: 这个解决方法并不具备普适性。我这里造成这个问题的原因是因为我在SpringBoot的启动类的main方法里面写了两遍

 SpringApplication.run(PzWebadminApplication.class, args);

所以才出现的这个问题,删掉一个就行了。

你可能感兴趣的:(BUG总结)