Spring获取JavaBean的xml形式和注解形式

Spring获取JavaBean的xml形式和注解形式

文章目录

  • 一、用xml文件方式管理JavaBean
    • 1. 创建一个xml配置文件
    • 2. 将一个Bean交由spring创建并管理
    • 3. 获取Spring上下文,获取bean
  • 二、用注解获取Javabean
    • 1. 创建一个class配置java文件
    • 2. 将一个bean交由Spring创建并管理
    • 3. 获取Spring上下文,后去Javabean
    • 总结:都是初始化Spring上下文获取Javabean
  • 三、获取Javabean对比
  • 四、简化注解获取Javabean
    • 1.在javabean类上添加@Component注解
    • 2. 在配置java类上添加@ComponentScan注解,value 属性设置Spring扫描那些bean
    • 3. 初始化Spring上下文,获取bean就可以了

一、用xml文件方式管理JavaBean

1. 创建一个xml配置文件

2. 将一个Bean交由spring创建并管理

<!--1. 创建一个xml配置文件-->
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--2. 将一个Bean交由spring创建并管理--><bean id="javaBean" class="com.gblfy.ioc.JavaBean"/>
</beans>

注:用id作为bean的唯一标识 用class来指定这个bean是哪个类

3. 获取Spring上下文,获取bean

 ApplicationContext context =new ClassPathXmlApplicationContext("applicationContext.xml");

获取bean

 JavaBean javaBean = context.getBean("javaBean",JavaBean.class);

二、用注解获取Javabean

1. 创建一个class配置java文件

2. 将一个bean交由Spring创建并管理

//1 .创建一个class配置java文件
@Configuration
public class Configuation {//2. 将一个bean交由Spring创建并管理@Bean(value = "bean2")public JavaBean javaBean(){return new JavaBean();}
}

3. 获取Spring上下文,后去Javabean

 //3. 获取Spring上下文ApplicationContext context =new AnnotationConfigApplicationContext(Configuation.class);//获取 BeanJavaBean javaBean = context.getBean("javaBean",JavaBean.class);System.out.println("javaBean"+javaBean);

总结:都是初始化Spring上下文获取Javabean

三、获取Javabean对比

在这里插入图片描述

在这里插入图片描述

上面只是由xml形式获取Javabean变成了注解形式,但是,代码量没有减少,那如何简化呢?

四、简化注解获取Javabean

1.在javabean类上添加@Component注解

@Component
public class JavaBean { }

2. 在配置java类上添加@ComponentScan注解,value 属性设置Spring扫描那些bean

//创建一个class配置java文件
@Configuration
@ComponentScan(value = "com.gblfy.ioc")
public class Configuation { }

3. 初始化Spring上下文,获取bean就可以了

//获取Spring上下文ApplicationContext context =new AnnotationConfigApplicationContext(Configuation.class);//huoqu BeanJavaBean javaBean = context.getBean("javaBean",JavaBean.class);System.out.println("javaBean"+javaBean);

原理:通过@ComponentScan注解来告知Spring,让Spring扫描这个包结构下的所有class

那么扫描的原则是什么呢?

扫描原则:在刚才包结构下类上有@Component注解的class,这些class将交由Spring来管理,并由Spring来为我们实例化这些class的Javabean。

Javabean的id默认为类名小写,如果,想自定义bean的id在@Component的value 属性中添加value即可;

@Component(value = "javaBeanId")
public class JavaBean { }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置包扫描,在类上添加注解,就可以交由Spring来管理,并进行实例化
注解:

注解位置注解名称
controller层@Controller
service层@Service
持久层@Repository
其它层@Component

依赖附上

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.1.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.1.8.RELEASE</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency></dependencies>

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

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

相关文章

C++中两个栈实现一个队列

引言 首先看这个标题的时候&#xff0c;需要联想到栈和队列的特点&#xff0c;栈是先进后出&#xff0c;队列是先进先出。假如三个元素1&#xff0c;2&#xff0c;3&#xff0c;将这三个元素依次入栈1后&#xff0c;再将栈1中元素依次出栈放入到栈2中&#xff0c;栈1中只留下最…

Kube-OVN:基于OVN的开源Kubernetes网络实践

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;今天&#xff0c;许多企业开始运行Kubernetes集群&#xff0c;并从中受益。但我们仍然…

IntelliJ IDEA中创建xml文件

1、file—setting&#xff0c;左上角输入template&#xff0c;2、在左侧栏找到File And Code Templates3、中间选中Files4、点击号&#xff0c;添加模板5、输入模板名字&#xff1a;Name:mybatis-cfg.xml &#xff08;name可以自定义&#xff09;6、后缀名extension&#xff1a…

C++冒泡排序

引言 冒泡排序作为排序中一个比较重要的方法&#xff0c;这里做一些简单的记录。 示例 本例中将一组数据2&#xff0c;4&#xff0c;3&#xff0c;8&#xff0c;5按照从小到大的顺序进行冒泡排序。首先说一下&#xff0c;冒泡排序是怎么排序的&#xff1a;将数组中相邻的两个…

Spring概念理解

什么是IOC&#xff1f; 控制反转&#xff0c;依赖注入 1、控制什么&#xff1f; 控制对象的创建及销毁(生命周期) 2、反转什么&#xff1f; 讲对象的控制权交给IOC容器

阿里云技术专家入选Apache Member;百度Q1财报:营收241亿元;华为面向全球发布AI-Native数据库……...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周二第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

c++选择排序

引言 选择排序就是找出每趟中的最小值或者最大值与对应趟数位置上的数值进行交换&#xff0c;从而排序&#xff0c;具体像序列&#xff1a;2&#xff0c;5&#xff0c;4&#xff0c;3&#xff0c;8若按照从小到大的顺序选择排序&#xff0c;总共5个元素&#xff0c;需要进行5-…

Java高级特性——反射

定义 JAVA反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff1b;对于任意一个对象&#xff0c;都能够调用它的任意方法和属性&#xff1b;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 1. 反射机…

C++快速排序(二)

引言 此文继上一次的c快速排序之后&#xff0c;是时隔一年后的重新领悟。快速排序就是从一列序列中选择一个数作为基数&#xff0c;一般以左边第一个元素为基数&#xff0c;然后定义两个变量left与right,left指向左边第一个元素&#xff0c;与基数指向相同&#xff0c;right指…

如何看待“英特尔是一家软件公司”?

戳蓝字“CSDN云计算”关注我们哦&#xff01;1968年7月&#xff0c;传奇半导体公司仙童的两位共同创办人罗伯特诺伊斯、高登摩尔从仙童请辞&#xff0c;共同创办了以“INTegrated ELectronics&#xff08;集成电子&#xff09;”前缀为名的一家电子公司&#xff0c;这家公司就是…

C++插入排序

引言 插入排序就是将一个序列中第一个元素&#xff0c;认为是有序数组&#xff0c;该数组含一个元素&#xff0c;剩下的元素构成一个无序数组&#xff0c;将无序数组中元素逐一与有序数组中最后一个元素开始向前比较&#xff0c;根据具体的从大到小的顺序或者从小到大的顺序&a…

日常软件安装

软件安装专栏总览 文章目录一、JDK安装1.1下载、安装一路next1.2 配置环境变量1.2.1. 新建系统变量JAVA_HOME1.2.2. 创建CLASSPATH环境变量1.2.3. 编辑Path环境变量1.2.4. 验证1.2.5. 验证javac一、JDK安装 1.1下载、安装一路next 1.2 配置环境变量 1.2.1. 新建系统变量JAVA…

C++中数组下标越界

引言 最近突然想到当数组array有2个元素&#xff0c;而访问其array[2]时会不会编译错误的问题&#xff0c;答案是编译的时候不报错&#xff0c;只有运行的时候才报错。 感悟 以下是我测试用的代码&#xff0c;程序可以正常编译&#xff0c;且编译正确&#xff0c;只是在运行…

Java 动态加载类

Class.forName(“类的全称”); 不仅表示类的类类型&#xff0c;还代表了动态加载类 请大家区分编译、运行 编译时刻加载类时静态加载类、运行时刻加载类时动态加载类 编写一个Office.java文件&#xff0c;在类中创建2个不存在的对象Word和Excel&#xff0c; public class Off…

升级为私有全栈云的腾讯云TStack究竟强在了哪儿?

戳蓝字“CSDN云计算”关注我们哦&#xff01;在刚刚结束的美国丹佛Open Infrastructure峰会上&#xff0c;腾讯云对全新升级为私有全栈云的TStack进行了详细的介绍&#xff0c;引起峰会现场众多OpenStack专业人士侧目。那么&#xff0c;这款腾讯基于OpenStack倾力打造的私有云解…

C++中继承与虚函数示例

引言 此文记录以下虚函数和继承的一个示例。 示例 class Base {virtual void method(){std::cout<<"from base"<<std::endl;} public:virtual ~Base(){method();}void baseMethod(){method();} };class A:public Base {void method(){std::cout<&l…

JAVA反射专题

JAVA反射专题 文章目录一、Class类 和 面向对象1.1. 一个普通的类的实例对象表示1.2. Class类的实例对象介绍1.3 任何类都是Class的实例对象,下面三种方式:二、Java 动态加载类信息三、方法的反射四、反射和泛型从主要以下几点开始学习Class类的使用 方法的反射 成员变量的反射…

漫画:图的 “多源” 最短路径

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;————— 第二天 —————小灰的思路如下&#xff1a;第一步&#xff0c;利用迪…

C++实现单链表的反序

引言 将一个没有空结点作为头的单链表实现反转。其实质就是将结点的指针域指向反转。定义指向当前结点的指针&#xff0c;指向前一个结点的指针&#xff0c;指向当前结点的后一个结点的指针&#xff0c;这个过程中包含只有一个结点的单链表&#xff0c;那么反转之后还是它本身…

Git版本控制管理系统_企业实战上篇

Git专题 文章目录一、Git 介绍1.2. Linux 环境安装并配置Git1.3. 在windows安装git1.4. Windows配置Git 篇1.5. 创建git仓库二、时光机穿梭2.1. 版本回退2.2. 工作区和暂存区2.3. 管理修改2.4. 撤销修改2.5. 删除文件三、远程仓库3.1. 添加远程库3.2. 从远程库克隆四、分支管理…