目录结构

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.geyao</groupId><artifactId>spring01geyao</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.13.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>3.2.0.RELEASE</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.3.4.RELEASE</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.3.4.RELEASE</version><scope>test</scope></dependency></dependencies>
</project>

log4j.properties

### 设置###
log4j.rootLogger = ERROR,stdout### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
log4j.category.org.springframework.beans.factory=ERROR

applicationContext.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"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!--bean元素:描述当前的对象需要由spring容器管理id属性:标识对象 未来在应用程序中可以根据id获取对象class对象:被管理的对象的全名--><context:component-scan base-package="com.geyao.demo"></context:component-scan><bean id="notepad" class="com.geyao.demo.NotePad" scope="singleton"/>
</beans>

notepad类

package com.geyao.demo;public class NotePad {public NotePad() {super();System.out.println("NotePad的构造函数"+this.toString());}
}

notepad2类

package com.geyao.demo;import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;@Component
//@Scope("prototype")
//@Scope(scopeName = "prototype")
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class Notepad2 {public Notepad2() {super();System.out.println("NotePad的构造函数"+this.toString());}}

Notepadtest类

package com.geyao.demo;import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
//无论我们是否去主动获取对象,spring上下文刚加载就会创建对象
//无论获取多少次,都是统一对象
//
public class NotepadTest {@Testpublic void test01(){ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");NotePad notePad1= (NotePad)context.getBean("notepad");NotePad notePad2= (NotePad)context.getBean("notepad");System.out.println(notePad1=notePad2);}
}

notepadtestAuto类

package com.geyao.demo;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class NotePadTestAuto {@Autowiredprivate NotePad notePad1;@Autowiredprivate NotePad notePad2;@Testpublic void test01(){System.out.println(notePad1==notePad2);}
}

notepadtestt类

package com.geyao.demo;import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;@Component
//@Scope("prototype")
//@Scope(scopeName = "prototype")
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class Notepad2 {public Notepad2() {super();System.out.println("NotePad的构造函数"+this.toString());}}

运行结果

NotePad的构造函数com.geyao.demo.NotePad@117159c0
NotePad的构造函数com.geyao.demo.Notepad2@3cce5371
NotePad的构造函数com.geyao.demo.Notepad2@480d3575
false

spring学习(48):自动装配中定义的bean的作用域相关推荐

  1. Spring学习笔记--自动装配Bean属性

    Spring提供了四种类型的自动装配策略: byName – 把与Bean的属性具有相同名字(或者ID)的其他Bean自动装配到Bean的对应属性中. byType – 把与Bean的属性具有相同类型 ...

  2. Spring Boot(一) 自动装配--约定大于配置

    欢迎去我的个人博客--晓坞坐坐,里面有很多有趣的文章,不止是技术.www.lixiaodongisme.com 随着spring体系的发展,我们在开发时需要配置整合的东西也越来越多,在进行开发时,繁琐 ...

  3. Spring 由构造函数自动装配

    转载自  Spring 由构造函数自动装配 Spring 由构造函数自动装配 这种模式与 byType 非常相似,但它应用于构造器参数.Spring 容器看作 beans,在 XML 配置文件中 be ...

  4. Spring IOC容器-自动装配

    1 autowire="byName" 根据名称自动装配,自动去IOC容器中找与属性名同名的引用的对象,并自动注入. <!-- ###############自动装配#### ...

  5. java 自动装载_java_详解Java的Spring框架下bean的自动装载方式,Spring容器可以自动装配相互协 - phpStudy...

    详解Java的Spring框架下bean的自动装载方式 Spring容器可以自动装配相互协作bean之间的关系,这有助于减少对XML配置,而无需编写一个大的基于Spring应用程序的较多的和元素. 自 ...

  6. 点云数据的类型主要分为_点云学习在自动驾驶中的研究概述

    作者:蒋天园 Date:2020-04-17 来源:点云学习在自动驾驶中的研究概述 自动驾驶公司的发展 有关自动驾驶的研究最早可以追述到2004年的DARPA Grand Challenge和2007 ...

  7. Spring按类型自动装配注入数组、集合、Map

    Spring按类型自动装配注入数组.集合.Map时,是把应用上下文中对应类型的bean装配进集合,而不是直接查找一个对应类型的集合然后注入.以下面这段代码为例: import org.springfr ...

  8. 极市分享|第34期 袁源Jerry:机器学习及深度学习在自动驾驶中的应用

    | 极市线上分享 第34期 | ➤活动信息 主题:机器学习及深度学习在自动驾驶中的应用 时间:本周四(10月18日)晚20:00~21:30 ➤嘉宾信息 Jerry 贪心科技讲师,美国微软总部和美国亚 ...

  9. spring自动装配依赖包_解决Spring自动装配中的循环依赖

    spring自动装配依赖包 我认为这篇文章是在企业应用程序开发中使用Spring的最佳实践. 使用Spring编写企业Web应用程序时,服务层中的服务量可能会增加. 服务层中的每个服务可能会消耗其他服 ...

最新文章

  1. python导入excel表格-通过Python将Excel表格信息导入数据库
  2. html写登录框中的字,一个登录界面的PS设计和HTML/CSS实现
  3. (45)css面试题集锦二
  4. 对应生成树的基本回路_2011秋季学期离散数学语音答疑提纲下(全书考试内容)
  5. php只取时间的下士_PHP 获取时间的各种处理方式!
  6. gradle DSL method not found: android()
  7. Android 系统预装添加第三方apk到data/app
  8. kernel oops_Java中的OOPS概念– OOPS概念示例
  9. iOS底层探索之多线程(六)—GCD源码分析(sync 同步函数、async 异步函数)
  10. 商务办公软件应用与实践【5】
  11. 【推荐】HDC2021华为开发者大会技术分论坛内部课件合集
  12. 2020主流室内定位技术对比
  13. 集成电路CAD课程实验报告:反相器电路设计、版图设计与仿真
  14. win8.1系统自带微软拼音输入法卸载教程
  15. 一款全屏展示的流量卡官网单页模板源码
  16. Cesium设置实体初始偏移量
  17. Cannot satisfy the following dependencies for tc解决
  18. 世界上不存在完美的人性
  19. “技术天才”李一男已出狱:曾被视为华为接班人!
  20. 详解|一级建造师考试报名流程有哪些?

热门文章

  1. 微软u盘安装工具_使用微软Winget工具安装软件教程
  2. 你如何在java中获取线程堆_如何在Windows上获取未在控制台中运行的Java进程的线程和堆转储...
  3. dw网页制作入学教程_简单的手机网页制作教程
  4. MSP430F5529 DriverLib 库函数学习笔记(十四)看门狗定时器 (WDT)
  5. 如何在MyBatis中优雅的使用枚举
  6. 判断一个数的二进制形式是否只有一个1,是的话就输出
  7. Java 结构体之 JavaStruct 使用教程二 JavaStruct 用例分析
  8. Libusb开发教程一 安装
  9. 前端学习(3347):数组方法的运用和总结稀疏数组
  10. react学习(25)---注意接口引入位置