记一次关于SSM框架的使用错误
今天遇到一个十分操蛋的问题,最后发现是因为忘记在对应的Service上加上@AutoWired。
难怪单元测试没问题,因为单元测试中用到的Service,其实现类通过DAO自动装配了。也就是在对应的spring-mybatis.xml配置了Bean。
而Controller,调用对应的业务Service需要手动加上@AutoWired注解实现装配。
那么什么是自动装配?
简单的说,将对象交给spring管理,那么spring是如何管理对象的呢?通过配置文件来管理。
比如自动装配有这么几种常用的方式?
第一种是@AutoWired注解,会自动将service名称注入到xml中,比如:
<bean id="testService" class="com.test.TestServiceImpl"> </bean>
但是这种方式虽然自动化,但是也有其局限性,就是在扫描service层时,不能存在相同的testService,否则会报错。
第二种是@Resource注解,该注解可以自动装配,也可以指定名称。
之所以指定名称,是防止出现重复的service注入导致报错。
这里说下@Autowired 与@Resource的区别:
(1)@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上;
(2)@Autowired默认按类型装配(这个注解是属于spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:
@Autowired@Qualifier("testDao") private TestDao testDao;
(3)@Resource(这个注解属于J2EE的),默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
通常一般为了减少因为装配的冲突,建议使用@Resource。
记一次关于SSM框架的使用错误相关推荐
- 使用maven搭建ssm框架的javaweb项目
目前主流的javaweb项目,常会用到ssm(Spring+Spring MVC+Mybatis)框架来搭建项目的主体框架,本篇介绍搭建SSM框架的maven项目的实施流程.记之共享! 一.SSM框架 ...
- Java学习路线,Java SE,EE,ME的区别,SSM框架基本概念
1.尚硅谷 视频课程:https://www.bilibili.com/read/cv5216534 初学者可按照尚硅谷公开的JAVA视频最快学习路线: JavaSE --> MySQL–> ...
- 基于SSM框架社交媒体实现
本文由本人的本科毕业论文修改而来,并不是论文的完整篇幅,部分已进行修改或删除.注意,在参考时还请注意查重等其他因素,由此所产生的相关问题均与本人无关,概不负责. 目录 摘要 Abstract 第一章 ...
- 基于SSM框架的校园论坛设计与实现(MySQL、JSP)
此文章记录了本人毕业设计的设计与实现过程,欢迎大家交流讨论. 目录 摘 要 第1章 绪 论 1.1 课题背景及研究的目的和意义 1.2 国内外研究现状 1.3 本文的主要研究内容 第2章 系统总体设计 ...
- java ssm小案例_简易的SSM框架整合小案例
简易的SSM框架整合小案例 一.创建一个web工程的maven项目 1.项目名随便起 2.选择好你的maven路径,然后finish 二.配置pom.xml文件 org.springframework ...
- SSM框架个人学习汇总
SSM框架汇总 什么是SSM框架 SSM是Spring.SpringMVC.Mybatis三种框架的首字母简写, SSM是目前Java Web开发的最普遍和最高效框架,并且依然在不断发展与完善. SS ...
- 【SSM】第一课 超市订单管理平台--SSM框架整合
概念 在Java服务端开发中,Spring+SpringMVC+Mybatis搭建MVC三层架构完成项目的创建流程是开发者学习框架编程的必经之路,这里我们使用一个项目来完成整个的开发过程,后期会用一系 ...
- SSM框架——Spring+SpringMVC+Mybatis的搭建教程
一:概述 SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛. Spring作为一个轻量级的框架,有很多的拓展功能,最主要的我们一般项目使用的就是IOC和AOP. S ...
- 初学ssm框架的信息
ssm框架,就是Spring ,SpringMVC ,mybstis 的简称,我们是从mybstis 开始学起的,mybatis的作用作为一个连接数据库的框架,可以很好配置连接好数据库, 有mybat ...
最新文章
- jquery submit()不能提交表单的解决方法
- 使用CFree调用Win32 LoadLibrary 简单示例
- mysql auto_increment 原理_[Mysql]mysql原理之Auto_increment
- sendmail邮件服务器的基本建立过程
- Django Bootstrap开发笔记01 - 添加简单网页
- 解决 SmallPDF 联网验证和试用期过期问题
- 面向机器学习的特征工程 一、引言
- nodejs服务端基本结构
- Java基础篇:如何解决成员的访问和继承?
- c# 多线程界面卡顿_C#多线程解决界面卡死问题的完美解决方案
- TextMate里添加Theme
- 我买的开发板——大虾网DX32(for STM32)
- 批发企业如何使用订单软件app管理账目混乱问题
- 阿里云短信服务的使用(创建,测试笔记)
- 计算机未安装flash,win10系统提示未安装Flash的解决方法
- WIN10 LTSC 转 WIN10 专业版(纯净)
- 解决在RHEL/CentOS7.4以上版本无法使用AFD(Oracle ASMFD)特性
- android沉浸式模式简书,Android-沉浸式模式
- 自动化软件测试工作内容,「自动化测试」自动化测试岗位职责(职位描述,任职要求)...
- java 列表伸缩,微服务实例自动弹性伸缩实践