初学springmvc 3 + ibatis框架

来源:互联网 发布:美工学校 编辑:程序博客网 时间:2024/06/05 20:52
 

      最近一直学习springmvc + ibatis 的配置,因为本人是非常的菜菜鸟,开始学习spring的时候对aop,依赖注入等概念都囫囵吞枣,所以自己在配置springmvc + ibatis 框架的时候费了老大劲了,虽然配置好了但是还有很多问题没搞明白,有待继续搞下去。

     在配置框架的时候先配置了一个不用注释的简单框架,不用注释的框架比较好理解逻辑也很清楚,可以简单的搞定,但是在用注释进行配置的时候,老是会出现一个错误就是Error creating bean with name“XXXController”后面在加一大串的原因,这个问题折腾了好久,在网上查了一下,主要原因为三个:

                          一、是配置文件的正确度这个问题比较好解决;

                          二、是用spring3.0的时候有好多包是需要外部的包,这个问题也把我折腾疯了,只知道缺包但是不知道缺什么包,也是在别人的网页上找到了答案,这些包主要包括:aopalliance、asm、cglib等等,

                          三、sqlMapClient 问题,基本报错是sqlMapClient is required之类的,解决方法大致有三种,有一种是说吧SqlMapClientDaoSupport(是不是这个类忘记了)源文件里面加上注释,或者其他的,这个方法没实验,而且我觉得这样做也不是很妥,第三个方法就是用下面一个类作为一个父类,然后所有的服务层的实现类都继承他就可以解决了,主要的原因就是利用这个方法能够生成sqlMapClient的bean吧

                                public class MyIBATISDaoSupport extends SqlMapClientDaoSupport {
                                     @Autowired
                                     private SqlMapClient sqlMapClient;
 
                                  @PostConstruct
                                     public void injectSqlMapClient(){
                                    super.setSqlMapClient(sqlMapClient);
                                          }

最后还有一个问题就是spring 3.0 与json问题,在配置好的框架中若在servlet中加上加上

<property name="defaultViews">
   <list>
    <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>
    </list>
  </property>

这一段代码就会产生下面的错误:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.view.ContentNegotiatingViewResolver#0' defined in ServletContext resource [/WEB-INF/springmvc-servlet.xml]: Cannot createinnerbean 'org.springframework.web.servlet.view.json.MappingJacksonJsonView#f12b72' of type [org.springframework.web.servlet.view.json.MappingJacksonJsonView] while setting bean property 'defaultViews' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.view.json.MappingJacksonJsonView#f12b72' defined in ServletContext resource [/WEB-INF/springmvc-servlet.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.web.servlet.view.json.MappingJacksonJsonView]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/codehaus/jackson/map/ObjectMapper
 at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:281)
 at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:120)
………………………

………………………………

……………………………………………

这个错误的原因我没有查清楚也就没有解决,但是从其他的一些资料上看,因该是由于spring3.0中jackson包的问题,即spring3.0中jackson包是1.4以上的吧,但是org/codehaus/jackson/map/ObjectMapper可能需要jackson1.0或者1.1的包,这个问题我不是很清楚,也还没有着手解决。

 

ps:上述错误解决了,还是缺少俩个包:jackson-mapper-asl-1.4.1.jar和jackson-core-asl-1.4.1.jar,导入进去就没错误了。

   虽然还有很多问题需要解决,还有很多东西需要学习,但是一点小小的成功就足以犒劳自己啦,但是为了让自己成为不是非常菜的菜鸟,继续加油……

 

原创粉丝点击