Spring Boot 在jdk1.6环境下运行说明和Cannot subclass final class class com.sun.proxy.$Proxy

SpringBoot 版本使用说明

Spring Boot 1.2.1.RELEASE 要求的jdk版本是1.6 ,而再往上面版本就需要jdk1.7.
官方给出的使用方法是:

 <properties>
        <!-- Spring Boot 兼容jdk1.6版本 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <tomcat.version>7.0.59</tomcat.version>
        <java.version>1.6</java.version>
    </properties>

spring boot 1.2.1 版本自带的spring framework版本是:4.1.4
个人建议使用jdk1.7运行最新版本的Spring boot

@Repository注解Dao出现的bug说明

然而在Spring boot 1.2.1 整合Mybatis的时候,采用注解@Repository注解dao时又会出现cglib的错误。
网上搜索了,一直没发现原因,排查问题后,终于找到解决方法:
将Repository的注解改为 @Component的方式,这样就可以解决运行的反射问题。

Caused by: org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.sun.proxy.$Proxy28]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Cannot subclass final class class com.sun.proxy.$Proxy28
    at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:212)
    at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:109)
    at org.springframework.aop.framework.AbstractAdvisingBeanPostProcessor.postProcessAfterInitialization(AbstractAdvisingBeanPostProcessor.java:91)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:422)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.postProcessObjectFromFactoryBean(AbstractAutowireCapableBeanFactory.java:1711)
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:113)
    ... 24 common frames omitted
Caused by: java.lang.IllegalArgumentException: Cannot subclass final class class com.sun.proxy.$Proxy28
    at org.springframework.cglib.proxy.Enhancer.generateClass(Enhancer.java:446)
    at org.springframework.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33)
    at org.springframework.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
    at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
    at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
    at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:317)
    at org.springframework.aop.framework.ObjenesisCglibAopProxy.createProxyClassAndInstance(ObjenesisCglibAopProxy.java:57)
    at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:202)
    ... 29 common frames omitted
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,118评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,801评论 19 139
  • spring官方文档:http://docs.spring.io/spring/docs/current/spri...
    牛马风情阅读 5,713评论 0 3
  • 此篇翻译的是Spring Boot官方指南 Part III. 使用 Spring Boot (Using Spr...
    K天道酬勤阅读 11,757评论 0 21
  • 活在当下,这是一条名叫贝利的狗的使命。 一条名叫贝利的狗从不知道活着是为了什么,到知道活着就是要活在当下。历经了生...
    有一只小熊阅读 1,666评论 0 1

友情链接更多精彩内容