bean管理(xml)

(一)spring的工厂类

FileSystemXmlApplicationContext 读取磁盘配置文件

(二)bean实例化的三种方式

(1)使用类构造器实例化(默认无参数)

1.Bean01.java

  1. package demo01;
  2.  
  3. public class Bean01 {
  4. //无参构造函数
  5.  
  6. public Bean01() {
  7.  
  8. System.out.println("bean1被实例化了...");
  9.  
  10. }
  11.  
  12. }

2.applicationContext.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <beans xmlns="http://www.springframework.org/schema/beans"
  4.  
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6.  
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  8. <!--无参构造器方式-->
  9.  
  10. <bean id="bean01" class="demo01.Bean01"/>
  11.  
  12. </beans>

3.DemoTest.java

  1. package Test;
  2.  
  3. import demo01.Bean01;
  4.  
  5. import org.junit.Test;
  6.  
  7. import org.springframework.context.ApplicationContext;
  8.  
  9. import org.springframework.context.support.ClassPathXmlApplicationContext;
  10.  
  11. public class DemoTest {
  12.  
  13. @Test
  14.  
  15. public void demo01(){
  16.  
  17. //创建工厂
  18.  
  19. ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
  20.  
  21. //通过工厂创建类
  22.  
  23. Bean01 bean01=(Bean01)applicationContext.getBean("bean01");
  24.  
  25. }
  26.  
  27. }

(2)使用静态工厂方法实例化(简单工厂模式)

1.Bean02.java

  1. package demo01;
  2.  
  3. public class Bean02 {
  4.  
  5. }

2.Bean02Factory.java

  1. package demo01;
  2.  
  3. public class Bean02Factory {
  4.  
  5. public static Bean02 bean2(){
  6.  
  7. System.out.println("bean02被实例化了...");
  8.  
  9. return new Bean02();
  10.  
  11. }
  12.  
  13. }

3.applicationContext.xml

  1. <!--静态工厂方式-->
  2.  
  3. <bean id="bean02" class="demo01.Bean02Factory" factory-method="bean2"/>

4.DemoTest.java

  1. @Test
  2.  
  3. public void demo02(){
  4.  
  5. //创建工厂
  6.  
  7. ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
  8.  
  9. //通过工厂创建类
  10.  
  11. Bean02 bean02=(Bean02) applicationContext.getBean("bean02");
  12.  
  13. }

(3)使用实例工厂方法实例化(工厂方法模式)

1.Bean03.java

  1. package demo01;
  2.  
  3. public class Bean03 {
  4.  
  5. }

2.Bean03Factory.java

  1. package demo01;
  2.  
  3. public class Bean03Factory {
  4.  
  5. public Bean03 bean3(){
  6.  
  7. System.out.println("bean03被实例化了...");
  8.  
  9. return new Bean03();
  10.  
  11. }
  12.  
  13. }

3.applicationContext.xml

  1. <!--实例工厂方式-->
  2.  
  3. <bean id="bean03Factory" class="demo01.Bean03Factory"/>
  4.  
  5. <bean id="bean03" factory-bean="bean03Factory" factory-method="bean3"/>

4.DemoTest.java

  1. @Test
  2.  
  3. public void demo03(){
  4.  
  5. //创建工厂
  6.  
  7. ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
  8.  
  9. //通过工厂创建类
  10.  
  11. Bean03 bean03=(Bean03) applicationContext.getBean("bean03");
  12.  
  13. }
(三)bean的常用配置

(1)bean的配置

(2)bean的作用域

(四)bean的生命周期

spring学习笔记之---bean管理的更多相关文章

  1. spring学习笔记之---bean管理的注解方式

    bean管理的注解方式 (一)使用注解定义bean (1)常用注解 (2)实例 1.在pom.xml中进行配置 <dependencies> <dependency> < ...

  2. Spring学习笔记(3)——Bean的注入方式

    依赖注入 依赖注入支持属性注入.构造函数注入.工厂注入. 属性注入: 属性注入即通过setXxx()方法注入Bean的属性值或依赖对象 属性注入要求Bean提供一个默认的构造函数(无参构造函数),并为 ...

  3. Spring学习笔记——02 Bean的命名及实例化

    一.Bean的命名 前一篇讲到IoC是一个管理Bean的容器,Bean多数情况下都是通过XML文件进行配置的,其中Bean的命名有以下几种方式,现在梳理一下. 1. 不指定id,只配置类名 <b ...

  4. Spring学习笔记(2)——Bean的配置

    要使应用程序中的Spring容器成功启动,需要以下三个方面的条件都具备: 1.Spring框架的类包都已经放到应用程序的类路径下 2.应用程序为Spring提供完备的Bean配置信息 3.Bean的类 ...

  5. Spring学习笔记—装配Bean

    在Spring中,对象无需自己负责查找或创建与其关联的其他对象.相反,容器负责把需要相互协作的对象引用赋予各个对象.创建应用对象之间协作关系的行为通常称为装配(wiring),这也是依赖注入的本质. ...

  6. Spring学习笔记之bean配置

    1.命名bean 每个bean都有一个或者多个的的标识符.这些标识符必须在加载他们的容器里边唯一.一个bean经常有且只有一个标识符,但是如果需要超过一个的名字,可以考虑额外的别名. 基于xml的配置 ...

  7. Spring学习笔记之Bean的实例化

    一.bean的实例化方法有3种, 1.构造器实例化 2.静态工厂方法实例化 3.实例工厂方法实例化 二.用构造器来实例化 <bean id="ShunDao" class=& ...

  8. Spring学习笔记--注入Bean属性

    这里通过一个MoonlightPoet类来演示了注入Bean属性property的效果. package com.moonlit.myspring; import java.util.List; im ...

  9. spring学习笔记之---bean属性注入

    bean属性注入 (一)构造方法的属性注入 1.Student.java package entity; public class Student { private String name; pri ...

随机推荐

  1. 了解selenium--(虫师的博客)

    Selenium is a portable software-testing framework for web applications. Selenium is composed of seve ...

  2. PATB 1041 考试座位号(15)

    #include <cstdio> #include <iostream> using namespace std; struct student{ char str[15]; ...

  3. Redis 学习笔记(篇四):整数集合和压缩列表

    整数集合 Redis 中当一个集合(set)中只包含整数,并且元素不多时,底层使用整数集合实现,否则使用字典实现. 那么: 为什么会出现整数集合呢?都使用字典存储不行吗? 整数集合在 Redis 中的 ...

  4. 源码解读·RT-Thread操作系统从开机到关机

    本篇内容比较简单,但却很繁琐,篇幅也很长,毕竟是囊括了整个操作系统的生命周期.这篇文章的目的是作为后续设计多任务开发的铺垫,后续会单独再抽出一篇分析任务的相关知识.另外本篇文章以单核MCU为背景,并且 ...

  5. ajax请求中 两种csrftoken的发送方法

    通过ajax的方式发送两个数据进行加法运算 html页面 <body> <h3>index页面 </h3> <input type="text&qu ...

  6. Spring MVC源码(三) ----- @RequestBody和@ResponseBody原理解析

    概述 在SpringMVC的使用时,往往会用到@RequestBody和@ResponseBody两个注解,尤其是处理ajax请求必然要使用@ResponseBody注解.这两个注解对应着Contro ...

  7. 一个内存不能被written的问题

    C程序面试中曾经面试过这样一道题: #include <stdio.h> int main() { char *p = "12345"; *p = '6'; print ...

  8. pip install xxxx报错(一大堆红色exception)【解决】

    安装个distribute或nose或lpthw.web或virtualenv 都可能出现下面问题   root@kali:~# pip install distribute Collecting d ...

  9. CentOS 7.3 安装python3

    1.排查 CentOS 7.3 默认安装的是python2,使用命令 python -V 可以看到 python 的版本 Python 2.7.5 然后使用命令 which python 查看一下Py ...

  10. Java中的I/O输入输出流概述

    流是一组有序的数据序列,根据操作类型,可以分为输入流和输出流两种,Java语言中定义的负责各种输入输出的类都被放在java.io包中.其中所有的输入流类都是抽象类InputStream(字节输入流)或 ...