SpringBoot 多模块 自动装载(@Autowired)
博客专区 > Geeyu 的博客 > 博客详情
SpringBoot 多模块 自动装载(@Autowired)
Geeyu 发表于7个月前
SpringBoot 多模块 自动装载(@Autowired)
  • 发表于 7个月前
  • 阅读 348
  • 收藏 5
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

之前花了一个周写了一个springboot的demo,主要整合了swagger,spring data jpa,还有一些切面日志的应用。

后来直接用来做项目,在写设计文档的时候绞尽脑汁分了好几个模块,为了更好的解耦和扩展。于是就把demo拆成了多个maven模块,但随即就出现了问题,花了一天时间解决。好伤。

各个模块:

解决方案:

@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中的@Service

        App启动类使用 @ComponentScan

主要原理是,@SpringBootApplication这个注解包括了@ComponentScan,但它默认是扫描App.class所在的包,所以,需要显示扫描指定的包。

 

问题二:无法装载 spring data jpa 的接口,如UserRepo

        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

我是在下面的评论中看到的,整个过程差点疯掉 -_-

共有 人打赏支持
粉丝 2
博文 47
码字总数 25497
×
Geeyu
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: