今天公司让搭建个springMVC的注解框架,研究了好半天,网络搜罗了半天,好不容易找到篇,拿来分享下:

原文出处:http://itxxz.com/a/kuangjia/2014/0531/4.html

大家好,我是IT学习者的螃蟹,前两天写了一个spring MVC的注解实例,目前看来下载使用的人数已有不少,使用过程中也有不少人对其中的配置存有一些不解和疑问,在这里螃蟹就那个实例中的spring配置详细说明一下,算作是对spring注解模式的一次全方位解析。

在实例中spring的配置非常简单而且非常实用,毕竟我们是从搭建框架的根本开始,还没有整合其它高级应用,内容也就略显少了一些。也正因此,成为spring注解模式的最佳入门教材。

我们先看一张图

从图中可以看到,spring的主配置文件applicationContext.xml不过一百来行,配置了几个必须的bean,然后在项目启动的时候加载这个配置文件就可以了。如果在图中看不清的可以去看下实例的源码,在文件结尾处有下载页的链接。

spring开启注解的配置如下:

<!-- 开启自动扫描 -->
<context:annotation-config/> 
<context:component-scan base-package="com.itxxz" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service" />
<context:include-filter type="annotation" expression="org.springframework.stereotype.Repository" />
<context:include-filter type="annotation" expression="org.springframework.stereotype.Component" />
</context:component-scan>

1、首先我们要指定包路径(base-package="com.itxxz" ),也就是项目中的dao、service、controller(或action)所在的目录。

其实在螃蟹写的实例分层中,只有这三个,dao是接口(interface),没有定义实现类(后续会说明原因)。service是用来处理业务逻辑的,而controller层只作为视图的控制转发。

2、开启注解,也就是以上配置中的Service、Repository、Component三个声明。下面我们通过代码详细说明:

dao层
 
       service层

 
       Controller层
 

至此spring的配置就告一段落了,下篇我们开始讲解《spring如何整合mybatis》,力求通过最简单的配置,达到最健全的实现。

想必也开始有不少蠢蠢欲动的心已经按捺不住了。根据以上配置好后,一运行为什么报错了?!

这里螃蟹先提醒几点,下篇我们继续分析:

       A. 项目中的xml文件是否根据实例中的进行配置并且确保已经加载

B. 是否在每一层上都加了注解,并检查下不要把dao层的repository写出resource

C. java代码中的dao、service、controller三层没有进行继承其它类或实现其它接口,尤其是关于sql方面的

D. 检查applicationContext.xml中配置的sqlSessionFactory是否配置正确

有关本实例的源码可以到 《spring MVC注解实例及说明文档》 下载,任何问题都可以反馈给我们,我们会尽量抽时间解答。

一篇非常经典的springMVC注解实现方式详解的更多相关文章

  1. SpringMVC强大的数据绑定(2)——第六章 注解式控制器详解

    SpringMVC强大的数据绑定(2)——第六章 注解式控制器详解 博客分类: 跟开涛学SpringMVC   6.6.2.@RequestParam绑定单个请求参数值 @RequestParam用于 ...

  2. SpringMVC接受JSON参数详解及常见错误总结我改

    SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一个统一的接口给浏览器还有APP.所以把一个练手项目的前 ...

  3. SpringMVC接受JSON参数详解及常见错误总结

    SpringMVC接受JSON参数详解及常见错误总结 SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一 ...

  4. SpringMVC接受JSON参数详解

    转:https://blog.csdn.net/LostSh/article/details/68923874 SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session ...

  5. Kotlin——中级篇(二): 属性与字段详解

    在前面的章节中,详细的为大家讲解到了Kotlin中对类的类的定义.使用.初始化.初始化.类继承等内容,但是在一个类中,几乎上是不可能不出现属性与字段(field)的,这一篇文章就为大家奉上Kotlin ...

  6. SPRINGBOOT注解最全详解(

    #     SPRINGBOOT注解最全详解(整合超详细版本)          使用注解的优势:               1.采用纯java代码,不在需要配置繁杂的xml文件           ...

  7. (转)java之Spring(IOC)注解装配Bean详解

    java之Spring(IOC)注解装配Bean详解   在这里我们要详细说明一下利用Annotation-注解来装配Bean. 因为如果你学会了注解,你就再也不愿意去手动配置xml文件了,下面就看看 ...

  8. Spring boot注解(annotation)含义详解

    Spring boot注解(annotation)含义详解 @Service用于标注业务层组件@Controller用于标注控制层组件(如struts中的action)@Repository用于标注数 ...

  9. SpringMVC 之类型转换Converter详解转载

    SpringMVC之类型转换Converter详解 本文转载 http://www.tuicool.com/articles/uUjaum 1.1     目录 1.1      目录 1.2     ...

随机推荐

  1. Android WebView简介

    Android的网络功能特别强大,WebView(网络视图)组件支持加载网页,可以理解为使用Webkit内核的浏览器,而它的实现方式有两种: 第一种具体实现步骤如下: (1)在布局文件中先生命WebV ...

  2. Paint House II 解答

    Question There are a row of n houses, each house can be painted with one of the k colors. The cost o ...

  3. Activity小结

    Log日志类的五种级别 1.由高到低分别是:v.i.d.w.e 2.生命周期有七种状态: onCreate:创建 onStart:启动 onResume:显示(可以与用户交互) onPause:暂停 ...

  4. CPU使用率统计办法

    我们在搞性能测试的时候,对后台服务器的CPU利用率监控是一个常用的手段.服务器的CPU利用率高,则表明服务器很繁忙.如果前台响应时间越来越大,而后台CPU利用率始终上不去,说明在某个地方有瓶颈了,系统 ...

  5. wex5添加视频播放

    我使用的播放器是ckplayer http://www.ckplayer.com/ ckplayer存放路,项目路径下: 方法一: 在monitor.w里加一个div标签 <div id=&qu ...

  6. 知方可补不足~CSS中的几个伪元素

    对于一个很好的编辑器VS来说,它对于编程语句的自动提示功能是很强大的,有时,我们根本不需要看相关API,而直接看VS给我们的提示就可以完成一个新技术的学习了. 今天我们来说几个CSS中的伪元素,它们在 ...

  7. C++ multimap 的插入,遍历,删除

    #include <iostream> #include <map> #include <string> using namespace std; int main ...

  8. jps命令使用

    jps工具 jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前全部java进程pid的命令,简单有用,很适合在linux/un ...

  9. [Regular Expressions] Find Plain Text Patterns

    The simplest use of Regular Expressions is to find a plain text pattern. In this lesson we'll look a ...

  10. android AsyncTask 详细例子(2)

    超时处理 001 import java.util.Timer; 002 import java.util.TimerTask; 003   004 import android.app.Activi ...