@select注解_SSM框架(十三):Spring框架中的IoC(3)新注解,完全摆脱xml文件

spring中的新注解

1、Configuration

作用:指定当前类是一个配置类

细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写。

2、ComponentScan

作用:用于通过注解指定spring在创建容器时要扫描的包

属性:

value:它和basePackages的作用是一样的,都是用于指定创建容器时要扫描的包。

我们使用此注解就等同于在xml中配置了:

<context:component-scan base-package="com.itheima"></context:component-scan>

3、Bean

作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中

属性:

name:用于指定bean的id。当不写时,默认值是当前方法的名称

细节:

当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象。

查找的方式和Autowired注解的作用是一样的

4、Import

作用:用于导入其他的配置类

属性:

value:用于指定其他配置类的字节码。

当我们使用Import的注解之后,有Import注解的类就父配置类,而导入的都是子配置类

5、PropertySource

作用:用于指定properties文件的位置

属性:

value:指定文件的名称和路径。

关键字:classpath,表示类路径下

有了新注解后,就可以完全不使用xml

这里创建一个配置类 SpringConfiguration

// 该类是一个配置类,它的作用和bean.xml是一样的

60257ff301615494d9fc1ea4564778a9.png

创建一个jdbc相关的配置类,供SpringConfiguration引入

/**

e0d2489084bd67f4a16b5df0f2dafa21.png

junit整合spring的注解:

1、应用程序的入口为main方法,junit没有mian方法也能够运行,因为junit集成了一个main方法,该方法就会判断当前测试类中哪些方法有 @Test注解,junit就让有Test注解的方法执行。

2、在执行测试方法时,junit根本不知道我们是不是使用了spring框架,所以也就不会为我们读取配置文件/配置类创建spring核心容器

3、使用Junit提供的一个注解把原有的main方法替换了,替换成spring提供的main方法,使用

@RunWith

4、告知spring的运行器,spring和ioc创建是基于xml还是注解的,并且说明位置

注解:

@ContextConfiguration

xml:

@ContextConfiguration

整合后的测试类

@RunWith

d4fc5cfd7607db6ee55a983551a926fd.png

最后我们实现了在test类中实现了spring的注入,并且使用新注解完全摆脱了xml,最后完成了测试

e8fbe4f32dc02335fff2eb1844a6c64f.png

其中dao为

package 

service为

package 

如果使用bean.xml,就可以不写配置类SpringConfiguration,配置文件为:

<?xml version="1.0" encoding="UTF-8"?>

e57dbb60ff1296244dd43a502ab5d7a0.png

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

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

相关文章

linux 到文件的最后一行,linux – 将第一行复制到文件中的最后一行

这里的目的是将文件中的第一行复制到最后一行这里是输入文件335418.75,2392631.25,36091,38466,1335418.75,2392643.75,36092,38466,1335418.75,2392656.25,36093,38466,1335418.75,2392668.75,36094,38466,1335418.75,2392681.25,36095,38466,1335418.75,2392693.75,36096,384…

element ui 多个子组件_ElementUI 技术揭秘(2) 组件库的整体设计

需求分析当我们去实现一个组件库的时候&#xff0c;并不会一上来就撸码&#xff0c;而是把它当做产品一样&#xff0c;思考一下我们的组件库的需求。那么对于 element-ui&#xff0c;除了基于 Vue.js 技术栈开发组件&#xff0c;它还有哪些方面的需求呢。丰富的 feature&#x…

LinuX编译显示内核配置无效,配置编译内核(Linux kernel)

虽然以前也编译过内核&#xff0c;但是关于内核配置选项特别是有关本机驱动这块还是不熟悉&#xff0c;因为没有通过确定有效的途径知道当前工作正常的内核中到底使用了什么驱动模块来控制硬件&#xff0c;最近看到一本书《Linux kernel in a netshell》&#xff0c;感觉讲的还…

arraylist线程安全吗_Java的线程安全、单例模式、JVM内存结构等知识梳理

java技术总结知其然&#xff0c;不知其所以然 &#xff01;在技术的海洋里&#xff0c;遨游&#xff01;做一个积极的人编码、改bug、提升自己我有一个乐园&#xff0c;面向编程&#xff0c;春暖花开&#xff01;本篇以一些问题开头&#xff0c;请先不看答案&#xff0c;自己思…

linux 7查内核,查看CentOS7内核版本及发行版本

原文&#xff1a;https://blog..net/networken/article/details/79771212s1.查看内核版本[rootlocalhost ~]# uname -srLinux 4.15.11-1.el7.elrepo.x86_64[rootlocalhost ~]# uname -aLinux localhost.localdomain 4.15.11-1.el7.elrepo.x86_64 #1 SMP Mon Mar 19 11:46:06 ED…

python下载文件损坏_pythonw.exe停止工作,无法运行IDLE或任何.py文件 - python

此问题与任何代码都不完全相同。我认为我的安装&#xff08;python 3.3.5&#xff09;以某种方式损坏。我尝试了卸载和重新安装以及修复&#xff0c;但是没有任何效果。自从我上次运行任何python代码或进行涉及python的操作以来已经有一段时间了&#xff0c;所以我不能说我不小…

【GitHub精选项目】抖音/ TikTok 视频下载:TikTokDownloader 操作指南

前言 本文为大家带来的是 JoeanAmier 开发的 TikTokDownloader 项目&#xff0c;这是一个高效的下载 抖音/ TikTok 视频的开源工具。特别适合用户们保存他们喜欢的视频或分享给其他人。 TikTokDownloader 是一个专门设计用于下载 TikTok 视频的工具&#xff0c;旨在为用户提供一…

python的界面文字翻译_一个把网站全英文转成中文的方法,让你轻松看懂python官网...

近日&#xff0c;在看python官网&#xff08;英文网站&#xff09;时&#xff0c;使用了有道翻译工具查看了几个专有名词。无意间&#xff0c;有了是不是可以输入网站地址进行翻译的想法&#xff0c;翻译后的网站地址点击进去后&#xff0c;又是一个什么情况呢&#xff1f;小编…

linux配置redis服务,记一次linux下安装redis, 设置redis服务, 及添加环境变量

一. redis的安装cd /opt # 切换至opt目录下wget http://download.redis.io/releases/redis-3.2.9.tar.gz # 指定版本下载redistar xzf redis-3.2.9.tar.gz …

drools规则引擎技术指南_物联网规则引擎技术

物联网应用程序设计与典型的IT解决方案大不相同&#xff0c;因为它将物理操作技术&#xff08;OT&#xff09;与传感器、致动器和通信设备连接起来&#xff0c;并将数字信息技术&#xff08;IT&#xff09;与数据、分析和工作流连接起来。在企业环境中&#xff0c;物联网非常复…

linux中在工作空间编译cpp,linux tensorflow2.4.0 c++ 编译

1. bazel 版本要对应tensorflow的要求2.tensorflow 源码3.eigen4.protobuf 版本要对应tensorflow的要求(workspace.bzl 提到了这个要求)源码编译参考:https://blog.csdn.net/luo841297935/article/details/104417495其他1.CMakeLists.txtcmake_minimum_required (VERSION 2.8.8…

linux 2G内存够用吗,不管2G还是6G运存,为什么使用手机时都会先占用一半?

原标题&#xff1a;不管2G还是6G运存&#xff0c;为什么使用手机时都会先占用一半&#xff1f;以前安卓手机最大的缺陷就是运存问题&#xff0c;手机玩着玩着突然就运行内存不足了&#xff0c;为了运行更流畅手机运存从1G到2G…到8G&#xff0c;手机运存越来越大。但大家有没有…

python取列表前几个元素_Python下几种从一个序列中取出元素的方法

使用Python进行数据处理时&#xff0c;有时候会有这样的操作&#xff0c;比如从一个列表或者numpy array中随机取出一个元素&#xff0c;对一个列表中的元素进行shuffle&#xff0c;等等。虽然这些操作也可以通过编写很简短的程序完成&#xff0c;但我们使用Python有一点很重要…

c++ 写x64汇编 5参数_怀念9年前用纯C和汇编写的入侵检测软件

在翻出12年前用C#写的自我管理软件之后&#xff0c;进一步激发了本猫的怀旧情怀。上一篇在此:竟然无意间翻出12年前自己用C#写的程序这不&#xff0c;昨天竟然又找出2010年写的一款Windows系统入侵检测及防御小工具&#xff0c;当时命名是:NtInfoGuy!对于Windows的内部&#xf…

linux内核关闭网络巨帧xenomai,xenomai内核解析--双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务...

版权声明&#xff1a;本文为本文为博主原创文章&#xff0c;转载请注明出处。如有错误&#xff0c;欢迎指正。1. 引出问题上一篇文章xenomai内核解析--双核系统调用(一)以X86处理器为例&#xff0c;分析了xenomai内核调用的流程&#xff0c;读了以后可能会觉得缺了点什么&#…

python怎么导入os模块_python之os模块

在自动化测试中&#xff0c;经常需要查找操作文件&#xff0c;比如说查找配置文件&#xff08;从而读取配置文件的信息&#xff09;&#xff0c;查找测试报告&#xff08;从而发送测试报告邮件&#xff09;&#xff0c;经常要对大量文件和大量路径进行操作&#xff0c;这就依赖…

linux7配置网卡绑定,CentOS7双网卡绑定配置

step1:创建绑定文件[rootnode-1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0TYPE"bond"BOOTPROTO"none"NAME"bond0"DEVICE"bond0"IPADDR"192.168.1.20"NETMASK"255.255.255.0"GATEWAY"192.168.1.1&q…

ubuntu复制文件到另一个文件夹_简单介绍一下电脑中的文件或文件夹的复制、移动及删除的操作方式...

大家好&#xff0c;我是波仔&#xff0c;今天又来跟各位学电脑基础的朋友们分享知识&#xff0c;让我们一起来学习吧。复制文件或文件夹在我们日常操作文件或文件夹的过程中&#xff0c;经常会遇到需要复制一些文件或文件夹什么的&#xff0c;下面我们就一起来分享一下常用的几…

Windows和linux提权方法,Windows与Linux本地用户提权体验(一)

无论是Windows系统还是linux系统都是基于权限控制的&#xff0c;其严格的用户等级和权限是系统安全的有力保证。这么严密的用户权限是否不可逾越呢?下面笔者反其道而行之进行Windows及Linux下的提权测试。一、windows下获取至高权限大家知道&#xff0c;在Windows系统中SYSTEM…

三相逆变器双pi控制器参数如何调节_光伏逆变器短路特性简析

1前言短路故障相对于其他故障类型来说是比较常见的&#xff0c;不同的设备的短路故障&#xff0c;大了讲都一样&#xff0c;细了说各有千秋&#xff0c;今天我们主要聊聊光伏逆变器的短路特征。电力系统中的电源&#xff0c;传统意义是指的是并入电力系统的同步发电机。但随着分…