bean管理(xml)

(一)spring的工厂类

FileSystemXmlApplicationContext 读取磁盘配置文件

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

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

1.Bean01.java

package demo01;

public class Bean01 {
//无参构造函数 public Bean01() { System.out.println("bean1被实例化了..."); } }

2.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"

       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--无参构造器方式--> <bean id="bean01" class="demo01.Bean01"/> </beans>

3.DemoTest.java

package Test;

import demo01.Bean01;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class DemoTest {

    @Test

    public void demo01(){

        //创建工厂

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

        //通过工厂创建类

        Bean01 bean01=(Bean01)applicationContext.getBean("bean01");

    }

}

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

1.Bean02.java

package demo01;

public class Bean02 {

}

2.Bean02Factory.java

package demo01;

public class Bean02Factory {

    public static Bean02 bean2(){

        System.out.println("bean02被实例化了...");

        return new Bean02();

    }

}

3.applicationContext.xml

<!--静态工厂方式-->

<bean id="bean02" class="demo01.Bean02Factory" factory-method="bean2"/>

4.DemoTest.java

@Test

public void demo02(){

    //创建工厂

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

    //通过工厂创建类

    Bean02 bean02=(Bean02) applicationContext.getBean("bean02");

}
 

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

1.Bean03.java

package demo01;

public class Bean03 {

}

2.Bean03Factory.java

package demo01;

public class Bean03Factory {

    public Bean03 bean3(){

        System.out.println("bean03被实例化了...");

        return new Bean03();

    }

}

3.applicationContext.xml

<!--实例工厂方式-->

<bean id="bean03Factory" class="demo01.Bean03Factory"/>

<bean id="bean03" factory-bean="bean03Factory" factory-method="bean3"/>

4.DemoTest.java

@Test

public void demo03(){

    //创建工厂

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

    //通过工厂创建类

    Bean03 bean03=(Bean03) applicationContext.getBean("bean03");

}
(三)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. django-haystack+whoosh+jieba实现中文全文搜索

    先上效果图 附上个人网站:https://liyuankun.cn 安装依赖库 注意:这里我们不安装django-haystack,因为要添加中文分词的功能很麻烦,所以我直接集成了一个中文的djang ...

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

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

  3. Docker安装nacos1.0.0固定ip单机模式

    1 从dockerHub拉取镜像到本地 docker pull nacos/nacos-server:1.0.0 2 创建目录(宿主机) 2.1 日志目录 mkdir -p /docker/nacos ...

  4. SQL Server温故系列(3):SQL 子查询 & 公用表表达式 CTE

    1.子查询 Subqueries 1.1.单行子查询 1.2.多行子查询 1.3.相关子查询 1.4.嵌套子查询 1.5.子查询小结及性能问题 2.公用表表达式 CTE 2.1.普通公用表表达式 2. ...

  5. 精通并发与 Netty (二)常用的 rpc 框架

    Google Protobuf 使用方式分析 对于 RPC 协议来说,最重要的就是对象的发送与接收,这就要用到序列化与反序列化,也称为编码和解码,序列化与反序列化和网络传输一般都在对应的 RPC 框架 ...

  6. Qt实现炫酷启动图-动态进度条

    目录 一.简述 二.动效进度条 1.光效进度条 2.延迟到达进度条 3.接口说明 三.启动图 1.实现思路 2.背景图切换 四.测试 1.构造启动图 2.背景图 3.其他信息 4.事件循环 五.源码 ...

  7. Spring源码阅读-ApplicationContext体系结构分析

    目录 继承层次图概览 ConfigurableApplicationContext分析 AbstractApplicationContext GenericApplicationContext Gen ...

  8. 牛逼了,教你用九种语言在JVM上输出HelloWorld

    我们在<深入分析Java的编译原理>中提到过,为了让Java语言具有良好的跨平台能力,Java独具匠心的提供了一种可以在所有平台上都能使用的一种中间代码——字节码(ByteCode). 有 ...

  9. Postgresql_fdw

    Postgresql_fdw 测试环境 Ubuntu 16.04 LTS云主机2台,主机名为pg1(192.168.0.34)和pg2(192.168.0.39). 安装postgresql 下面这个 ...

  10. 【题解】旅行-C++

    Description 某趟列车的最大载客容量为V人,沿途共有n个停靠站,其中始发站为第1站,终点站为第n站.在第1站至第n-1站之 间,共有m个团队申请购票搭乘,若规定:(1)对于某个团队的购票申请 ...