• SpringMVC框架项目在编译运行是常见错误


    1.问题描述(Spring_shizhan4ban_Chapter05应用):在自动注入FileValidator对象引用类型时报错,由于FileValidator是实体类,没有实现接口。

    @Autowired
    private FileValidator fileValidator;

    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'fileUploadController': Unsatisfied dependency expressed through field 'fileValidator'; nested exception is org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'fileValidator' is expected to be of type 'spittr.service.FileValidator' but was actually of type 'com.sun.proxy.$Proxy73'

    解决方案:spring框架AOP才用JDK动态代理只能对实现了接口的类实现动态代理,而不能针对类,我自己在搭建项目的时候没有用接口的模式,所以在应用启动时候,配置AOP事务 的时候会扫描你的service层,service层用到了Dao层的接口代理模式(spring 默认) 因为我没有采用接口模式编程,所以报错...如果不用接口模式那么 就要用CGLIB而CGLIB是针对类实现代理,(主要生成一个子类,覆盖其中的方法) 因为是继承,所以该类或方法最好不要声明成final的类...

    在spring.xml(applicationContext.xml)配置中加上 <aop:aspectj-autoproxy proxy-target-class="true"/> 把cglib.jar导入工程中即可以

    2.单元测试时报:  一直都有上面的警告,因为没有影响程序就没管,知道是因为少了log4j.properties的配置问题

    og4j:WARN No appenders could be found for logger (org.springframework.test.context.junit4.SpringJUnit4ClassRunner).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

    解决方案:将log4j.properties文件放在src目录下就可以了。(F:ideaprojectsworkplacegdsbc-wcxfsrc est esourceslog4j.properties)

    ##DEBUG < INFO < WARN < ERROR < FATAL log4j.rootLogger=info, stdout, R

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

    log4j.appender.stdout.layout.ConversionPattern=%5p - %m%n

    log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=firestorm.log

    log4j.appender.R.MaxFileSize=100KB log4j.appender.R.MaxBackupIndex=1

    log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

    #DEBUG < INFO < WARN < ERROR < FATAL log4j.logger.com.codefutures=DEBUG

  • 相关阅读:
    窗体吸附 Timer + 判断Location (简单实用)
    C# FTP 应用程序
    C# 加密方法汇总
    LINQ 标准的查询操作符 合计操作符 Count()、Sum()、Min()、Max()、Average()和Aggregate()
    委托中的协变和逆变(C# 编程指南)
    深入探讨C#序列化和反序列化
    grep 命令详解
    Oracle 数据库的启动和关闭的方式!
    linux 下的光盘拷贝
    C3P0连接池配置
  • 原文地址:https://www.cnblogs.com/zhabayi/p/6955189.html
Copyright © 2020-2023  润新知