SpringBoot 多模塊 自動裝載(@Autowired)

以前花了一個周寫了一個springboot的demo,主要整合了swagger,spring data jpa,還有一些切面日誌的應用。java

後來直接用來作項目,在寫設計文檔的時候絞盡腦汁分了好幾個模塊,爲了更好的解耦和擴展。因而就把demo拆成了多個maven模塊,但隨即就出現了問題,花了一天時間解決。好傷。web

各個模塊:spring

解決方案:springboot

@SpringBootApplication
@ComponentScan(basePackages = {"cn.kl.eds.web", "cn.kl.eds.service"})
@EnableJpaRepositories(basePackages = "cn.kl.eds.dao")
@EntityScan(basePackages = "cn.kl.eds.entity")
public class App{

	//發射App
	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}

}

 

問題一:沒法裝載service中的@Servicemaven

        App啓動類使用 @ComponentScanide

主要原理是,@SpringBootApplication這個註解包括了@ComponentScan,但它默認是掃描App.class所在的包,因此,須要顯示掃描指定的包。spa

 

問題二:沒法裝載 spring data jpa 的接口,如UserRepo.net

        App啓動類使用 @EnableJpaRepositories設計

@Repository
public interface UserRepo extends JpaRepository<User, Integer> {
    @Override
    @Query("select u from #{#entityName} u where u.id = ?1")
    User findOne(Integer id);
}

    

問題三:能夠裝載jpa接口了,可是實體類 "Not a managed type"日誌

        App啓動類使用 @EntityScan

我是在下面的評論中看到的,整個過程差點瘋掉 -_-

相關文章
相關標籤/搜索