无法将弹簧配置类从项目A导入到项目B中

时间:2018-11-11 03:49:47

标签: java spring-mvc spring-boot junit

我在项目A 中有以下课程,这是一个春季项目

@Configuration
class MyConfig{
   @Bean
   JmsTemplate jmsTemplate(){
       return  new JmsTemplate();
   }

   @Bean
   Test test(){
       return new Test();
   }
}

class Test{
   @Autowired
   JmsTemplate jmsTemplate;

   @PostConstuct
   public void init(){
      System.out.println("Test Constructed")
   }

   public void sendOrder(){
      System.out.println("Sending Order");
   }
}

我在项目B

@SpringBootApplication
class MySpringBootApp{

    public static void main(String[] args){
     final SpringApplication app = new SpringApplication(MainConfig.class);
     app.run(args);
    }
}

@Configuration
@Import(MyConfig.class)
class MainConfig implements CommandLineRunner{

   @Autowired 
   Test test;

   @Override
   public void run(String... strings) throws Exception{
      System.out.println("Placing order");
      test.sendOrder()
   } 
}

我已经将项目A作为依赖项包含在项目B的pom中

既不打印来自post构造的SYS OUT,也不打印来自Test类的sendOrder。来自MainConfig的运行方法中的SYS OUT已打印。.我不确定项目B中是否包含项目A的MyConfig类,没有编译或运行时错误。任何潜在客户表示赞赏

1 个答案:

答案 0 :(得分:0)

我认为问题出在主班。 您忘记了将Spring Boot应用程序本身(在这种情况下为MySpringBootApp.class)添加到配置列表中。

应该是:

@SpringBootApplication
class MySpringBootApp{

 public static void main(String[] args){
  final SpringApplication app = new 
           SpringApplication(MySpringBootApp.class,MainConfig.class);
  app.run(args);
 }
}