目录

  • 准备
  • 手动创建对象
  • 使用spring创建对象
    • 使用xml配置文件的方式创建对象
    • 使用注解的方式创建对象
  • spring在哪个阶段创建对象
  • 获取容器中对象的数量
  • 获取容器中对象的名称
  • 创建非自定义类的对象


准备

为了方便获取spring所依赖的jar包,这里直接使用maven来创建项目(maven创建项目可以参考这篇文章:项目管理工具 Maven 的下载,安装,配置以及项目的创建和管理)

项目结构

在pom.xml配置文件中添加spring的依赖


创建类Student

手动创建对象

在测试类中手动创建Student对象并执行out方法

使用spring创建对象


使用xml配置文件的方式创建对象

创建spring配置文件

在资源目录resources下创建spring配置文件,名称自定义

Ctrl + Alt + insert 搜索 xml 找到 Spring Config


在配置文件中使用bean标签创建对象,一个bean标签对应一个对象,id为对象名,class为类的全路径

格式:<bean id="对象名" class="类的全路径" ></bean>

加载spring配置文件

//        spring 配置文件名称String filename = "beans.xml";//        ApplicationContext 就是spring的容器//        ClassPathXmlApplicationContext 从类路径中加载spring配置文件ApplicationContext ac = new ClassPathXmlApplicationContext(filename);

从类路径中加载配置文件,就是从存放java文件编译后的class文件的目录中加载配置文件,maven项目编译后会自动将资源目录下的spring配置文件复制到类路径下,如果你的类路径下没有spring的配置文件,可以手动将其复制到该目录下

获取spring创建的对象

//        获取对象//        通过对象id的方式获取,getBean()方法返回值为object,需要强转Student student = (Student) ac.getBean("student");

spring创建好对象后,会将对象存放到map中,也就相当于将对象存放到spring的容器中 格式为:map.put( 对象id , 对象),所以我们可以通过对象的id来从容器中获取对象

使用测试类测试



使用注解的方式创建对象


使用Component注解创建对象

在需要创建对象的类中添加Component注解,注解写在类的上面

格式:@Component(value = 对象名) 或 @Component(对象名) 或 @Component;不指定对象名时,默认对象名为类名的首字母小写


在配置文件中添加组件扫描器

格式:<context:component-scan base-package=“包名”></context:component-scan>

作用:扫描指定包及子包下的所有类,根据类中的注解创建对象


测试类测试


使用其他注解创建对象

以下注解也可以创建对象,但不同注解创建的对象会有不同的功能

@Repository :创建dao对象,用来访问数据库

@Service :创建Service对象,用来处理事务逻辑

@Controller:创建控制器对象,用来接收请求



spring在哪个阶段创建对象

spring在加载完配置文件后(执行完下列代码),就会将配置文件中的所有对象都创建出来

String filename = "beans.xml";ApplicationContext ac = new ClassPathXmlApplicationContext(filename);

我们可以验证一下

在Student类中添加无参构造方法:

在配置文件中添加要创建的对象

运行测试方法

运行结果

由此可证明,在spring加载完配置文件后,会将配置文件中的所有对象都创建出来

获取容器中对象的数量

通过getBeanDefinitionCount()方法获取容器中对象的数量,返回值为int类型

配置文件


获取对象的数量

获取容器中对象的名称

通过getBeanDefinitionNames()方法获取容器中对象的名称,返回值是泛型为字符串的一个数组

配置文件


获取对象名称

创建非自定义类的对象

上面的例子中我们创建的是自定义类的对象,也就是这个类是我们自己创建的,那我们能否创建非自定义类的对象呢?也就是创建已经存在的类的对象

这里以创建String类的对象为例

spring配置文件

测试类

由测试方法可知,我们使用spring创建的String类的对象可以调用String对象的方法,所以,spring可以创建非自定义类的对象

©著作权归作者所有:来自51CTO博客作者SmallSweets的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 【庖丁解牛】如何解决wordpress安装主题或者插件时候提示:“安装
  2. Servlet监听器使用实例(提高程序运行速度)
  3. Windows部署多个Memcached和Redis服务
  4. 使用 Pillow 快速创建 GIF 动图
  5. Java面试题,Java面试题及答案,2021最新的,都整理好了
  6. PO BO VO DTO POJO DAO概念及其作用(附转换图)
  7. Oracle的簇与簇表
  8. 使用Composition API在Vue3中创建防抖搜索输入框
  9. Vue开发中可以使用的ES6新特征

随机推荐

  1. 系出名门Android(4) - 活动(Activity),
  2. 更新Android SDK Tools, revision 7报错
  3. 从零开始学习android
  4. Android(安卓)Studio 生成Jar包
  5. android 重用 c代码
  6. android studio 中一些比较好的插件
  7. Android HDMI( 三)
  8. Android 中文 API (102)—— CursorAdapter
  9. Nexus one (Android(安卓)2.1升级Android
  10. 系出名门Android(5) - 控件(View)