@Repository、@Service、@Controller 和 @Component

  @Repository 、@Service 、 @Controller 、@Component 这四个Spring注解 ,用于把加了注解的 类 加入到Spring 容器中管理,节省了xml 的繁重的配置,尽管如此xml 同样可以实现(一般建议先搞懂xml)。

@Repository

  @Repository注解便属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。具体只需将该注解标注在 DAO类上即可。同时,为了让 Spring 能够扫描类路径中的类并识别出 @Repository 注解,需要在 XML 配置文件中启用Bean 的自动扫描功能,这可以通过 <context:component-scan/> 实现。

<context:component-scan base-package=”com.dao” /> 

  如此,我们就不再需要在 XML 中显式使用 <bean/> 进行Bean 的配置。Spring 在容器初始化时将自动扫描 base-package 指定的包及其子包下的所有 class文件,所有标注了 @Repository 的类都将被注册为 Spring Bean。  

  为什么 @Repository 只能标注在 DAO 类上呢?这是因为该注解的作用不只是将类识别为Bean,同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常类型。 Spring本身提供了一个丰富的并且是与具体的数据访问技术无关的数据访问异常结构,用于封装不同的持久层框架抛出的异常,使得异常独立于底层的框架。

@Service        通常作用在业务层,但是目前该功能与 @Component 相同。

@Contryoller       通常作用在控制层,但是目前该功能与 @Component 相同。

@Component       是一个泛化的概念,仅仅表示一个组件 (Bean) ,可以作用在任何层次。

 

  通过在类上使用 @Repository、@Component、@Service 和 @Constroller 注解,Spring会自动创建相应的 BeanDefinition 对象,并注册到 ApplicationContext 中。这些类就成了 Spring受管组件。这三个注解除了作用于不同软件层次的类,其使用方式与 @Repository 是完全相同的。

 

   谢谢大家的关注,续更ing......

  

转载于:https://www.cnblogs.com/hxb2016/p/6403329.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255386.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【pyqt5学习】——QTextEdit控件学习:获取文本、添加文本

目录 1、QTextEdit控件介绍 2、QTextEdit控件添加文本、添加HTML格式 3、QTextEdit控件获取文本、获取HTML格式文本 4、案例 1&#xff09;完整代码 2&#xff09;效果 1、QTextEdit控件介绍 QTextEdit控件是一个支持多行输入的输入框&#xff0c;支持HTML进行格式的设置 2…

空间变化

空间变化 第一种&#xff1a;圆 第二种: 矩形 第三种&#xff1a;正五边形 第四种:正六边形 第五种&#xff1a;腰圆 算法&#xff1a; 在规则图形&#xff08;不包括圆心-直径法&#xff09;中&#xff0c;等于或者超过三个点。一般的&#xff0c;利用p1,p2,p3来建立一个用户…

【pyqt5学习】——QAbstractButton学习(普通按钮QPushButton、工具按钮QToolButton、单选按钮QRadioButton、复选框按钮QCheckBox)

目录 1、按钮介绍 2、普通按钮QPushButton学习 1&#xff09;特殊模式——开关按钮&#xff08;toggle&#xff09; ①将按钮设置为可选择的 ②将按钮按下 判断按钮是否被按下 isChecked() 2&#xff09;给按钮设置前置图标setIcon() ​编辑 3&#xff09;按钮信号 4)完…

java 企业 网站源码 模版 屏幕自适应 有前后台 springmvc SSM 生成静态化

前台&#xff1a; 支持四套模版&#xff0c; 可以在后台切换点击&#xff1a;获取地址QQ 313596790官网 http://www.fhadmin.org/系统介绍&#xff1a;1.网站后台采用主流的 SSM 框架 jsp JSTL&#xff0c;网站后台采用freemaker静态化模版引擎生成html2.因为是生成的html&…

挖财后端架构简介

挖财后端技术用的主要是比较大众的东西&#xff0c;Web容器用Tomcat&#xff0c;框架主要是Spring MVC&#xff0c;也有少量的Play&#xff0c;中间服务层是Dubbo&#xff0c;微容器用Spring Boot&#xff0c;服务注册这一块是用ZooKeeper&#xff0c;核心业务开发方式还是围绕…

【pyqt5学习】——QcomboBox学习

目录 1、添加条目&#xff1a; 1)逐一添加 2&#xff09;批量添加 3&#xff09;获取当前选中的索引 4&#xff09;获取当前选中文本 5&#xff09;根据索引获取文本 6&#xff09;统计条目总数 7&#xff09;信号——当前选中的索引发生改变currentIndexChanged() 2、…

vSphere Client 编辑虚拟机属性的问题

vSphere Client 编辑虚拟机属性的问题 编辑虚拟机属性的时候&#xff0c; 出现&#xff1a; vpxclient.vmconfig.cpuid 初始值设置异常之类的&#xff0c;重置了&#xff0c; 并将注册表中的所有vmvare 相关键值删除了&#xff0c; 还是一样的。。 后面参照https://kb.vmware.c…

Val编程-系统架构

利用Val可以编写相对大型软件。 界面书写&#xff0c;运动轨迹规划&#xff0c;外部通讯&#xff0c;进程交互&#xff0c;文本读写.... GlobalData可以利用一个库来作为一个公用库&#xff0c;实现各个库的数据交互。 PublicFunc书写基本的通用函数来作为基本函数&#xff0c;…

poj 1256 Anagram—next_permutation的神奇应用

题意&#xff1a;给你一条字符串&#xff0c;让你输出字符串中字符的全排列&#xff0c;输出的顺序要按它给的奇葩的字典序。 题解&#xff1a;要输出全排列&#xff0c;暴力dfs可以过&#xff0c;但要注意题目的字典序以及相同字符的情况。如果用next_permutation()处理可以简…

【pyqt5学习】—— 滑动条Qslider、计数器QSpinBox学习

目录 1、滑动条QSlider 1)常用属性 2&#xff09;实例——利用滑动条来实现字体大小的修改 ​编辑 2、计数器QSpinBox 1&#xff09;属性方法 2&#xff09;实例 1、滑动条QSlider 1)常用属性 self.slider QSlider(Qt.Horizontal)# 设置最小值self.slider.setMinimum(2)…

shell常用命令之curl: -w,–write-out参数详解

顾名思义&#xff0c;write-out的作用就是输出点什么。curl的-w参数用于在一次完整且成功的操作后输出指定格式的内容到标准输出。 输出格式由普通字符串和任意数量的变量组成&#xff0c;输出变量需要按照%{variable_name}的格式&#xff0c;如果需要输出%&#xff0c;double一…

Val编程-速度因子

机械手臂在一个三个基本指令&#xff08;movel,movej,movec&#xff09;指令中有下面基本参数进行配置。 1. Frame toolField; Tcp的值2. Frame frameField;用户坐标系的值3. MoveType absRelField;绝对运动与相对运动4. Config configField;姿态5. BlendType blendTypeField;倒…

Node.js学习之路24——Express框架的app对象

1.express() 基于Node.js平台&#xff0c;快速、开放、极简的web开发框架。创建一个Express应用.express()是一个由express模块导出的入口top-level函数.const express require(express); let app express(); 1.1 静态资源管理 express.static(root, [options]) express.stat…

【pyqt5学习】——对话框QDialog学习(QMessageBox、QColorDialog、QFIleDialog、QFontDialog、QInputDialog)

目录 1、对话框QDialog类别 2、通用对话框 ​编辑 3、消息对话框QMessageBox() 1&#xff09;消息对话框QMessageBox类型 2&#xff09;案例 ​编辑 4、输入对话框QInputDialog 1) 类型 2&#xff09;案例 5、字体格式对话框QFontDialog 6、颜色对话框QColorDialog 1&…

使用 Mesos 管理虚拟机

摘要 为了满足渲染、基因测序等计算密集型服务的需求&#xff0c;UCloud 推出了“计算工厂”产品&#xff0c;让用户可以快速创建大量的计算资源&#xff08;虚拟机&#xff09;。该产品的背后&#xff0c;是一套基于 Mesos 的计算资源管理系统。本文简要介绍该系统的结构、Mes…

Swift数据类型_整型和浮点型

//swift中的整型和浮点型/***//类型推断整数是Int 浮点数是Double ,日常使用需要注意不能越界,存储时间毫秒数 英雄经验数等等之类内容容易越界整型大多数情况下&#xff0c;你不需要在代码中指定哪种整型。Swift提供了一种额外的整型&#xff0c;Int类型Java中的long型&#x…

Val编程-套接字

套接字的介绍&#xff1a;http://zh.wikipedia.org/wiki/Berkeley%E5%A5%97%E6%8E%A5%E5%AD%97 主要分为客户端和服务器。客户端一般是需要主动去链接&#xff0c;需要配置服务器的IP和端口。服务器是被动响应&#xff0c;需要打开相应的端口。端口一般不推荐使用系统端口和常用…

【pyqt5学习】——Qpainter控件学习(文本、图像、各种图形)

目录 1、作用及应用步骤 2、绘制文本drawText() 3、像素级别绘制点&#xff08;正弦曲线为例&#xff09; 4、绘制不同样式的直线 5、绘制弧形、圆形、扇形、图像等 6、画刷填充区域QBrush 1、作用及应用步骤 QPainter是一个用于绘制的类&#xff0c;该类可以用于绘制&…

反向代理与Real-IP和X-Forwarded-For(转)

如下图所示&#xff0c;客户端通过Nginx Proxy1 和 Nginx Proxy2 两层反向代理才访问到具体服务Nginx Backend&#xff08;或如Tomcat服务&#xff09;。那Nginx Backend如何才能拿到真实客户端IP呢&#xff1f; 接下来我们来看看如何才能获取到客户端真实IP。 场景1  场景1是…

Android studio打开之后 cannot load project: java.lang.NUllpointerException

参考来源&#xff1a;http://bbs.csdn.net/topics/391014393 关闭网络&#xff0c;重新打开Android studio就好了。&#xff08;但是原因不清楚是为什么&#xff1f;&#xff09; Internal error. Please report to http://code.google.com/p/android/issuescom.intellij.ide.p…