spring学习笔记之---bean管理
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管理的更多相关文章
- spring学习笔记之---bean管理的注解方式
bean管理的注解方式 (一)使用注解定义bean (1)常用注解 (2)实例 1.在pom.xml中进行配置 <dependencies> <dependency> < ...
- Spring学习笔记(3)——Bean的注入方式
依赖注入 依赖注入支持属性注入.构造函数注入.工厂注入. 属性注入: 属性注入即通过setXxx()方法注入Bean的属性值或依赖对象 属性注入要求Bean提供一个默认的构造函数(无参构造函数),并为 ...
- Spring学习笔记——02 Bean的命名及实例化
一.Bean的命名 前一篇讲到IoC是一个管理Bean的容器,Bean多数情况下都是通过XML文件进行配置的,其中Bean的命名有以下几种方式,现在梳理一下. 1. 不指定id,只配置类名 <b ...
- Spring学习笔记(2)——Bean的配置
要使应用程序中的Spring容器成功启动,需要以下三个方面的条件都具备: 1.Spring框架的类包都已经放到应用程序的类路径下 2.应用程序为Spring提供完备的Bean配置信息 3.Bean的类 ...
- Spring学习笔记—装配Bean
在Spring中,对象无需自己负责查找或创建与其关联的其他对象.相反,容器负责把需要相互协作的对象引用赋予各个对象.创建应用对象之间协作关系的行为通常称为装配(wiring),这也是依赖注入的本质. ...
- Spring学习笔记之bean配置
1.命名bean 每个bean都有一个或者多个的的标识符.这些标识符必须在加载他们的容器里边唯一.一个bean经常有且只有一个标识符,但是如果需要超过一个的名字,可以考虑额外的别名. 基于xml的配置 ...
- Spring学习笔记之Bean的实例化
一.bean的实例化方法有3种, 1.构造器实例化 2.静态工厂方法实例化 3.实例工厂方法实例化 二.用构造器来实例化 <bean id="ShunDao" class=& ...
- Spring学习笔记--注入Bean属性
这里通过一个MoonlightPoet类来演示了注入Bean属性property的效果. package com.moonlit.myspring; import java.util.List; im ...
- spring学习笔记之---bean属性注入
bean属性注入 (一)构造方法的属性注入 1.Student.java package entity; public class Student { private String name; pri ...
随机推荐
- 了解selenium--(虫师的博客)
Selenium is a portable software-testing framework for web applications. Selenium is composed of seve ...
- PATB 1041 考试座位号(15)
#include <cstdio> #include <iostream> using namespace std; struct student{ char str[15]; ...
- Redis 学习笔记(篇四):整数集合和压缩列表
整数集合 Redis 中当一个集合(set)中只包含整数,并且元素不多时,底层使用整数集合实现,否则使用字典实现. 那么: 为什么会出现整数集合呢?都使用字典存储不行吗? 整数集合在 Redis 中的 ...
- 源码解读·RT-Thread操作系统从开机到关机
本篇内容比较简单,但却很繁琐,篇幅也很长,毕竟是囊括了整个操作系统的生命周期.这篇文章的目的是作为后续设计多任务开发的铺垫,后续会单独再抽出一篇分析任务的相关知识.另外本篇文章以单核MCU为背景,并且 ...
- ajax请求中 两种csrftoken的发送方法
通过ajax的方式发送两个数据进行加法运算 html页面 <body> <h3>index页面 </h3> <input type="text&qu ...
- Spring MVC源码(三) ----- @RequestBody和@ResponseBody原理解析
概述 在SpringMVC的使用时,往往会用到@RequestBody和@ResponseBody两个注解,尤其是处理ajax请求必然要使用@ResponseBody注解.这两个注解对应着Contro ...
- 一个内存不能被written的问题
C程序面试中曾经面试过这样一道题: #include <stdio.h> int main() { char *p = "12345"; *p = '6'; print ...
- pip install xxxx报错(一大堆红色exception)【解决】
安装个distribute或nose或lpthw.web或virtualenv 都可能出现下面问题 root@kali:~# pip install distribute Collecting d ...
- CentOS 7.3 安装python3
1.排查 CentOS 7.3 默认安装的是python2,使用命令 python -V 可以看到 python 的版本 Python 2.7.5 然后使用命令 which python 查看一下Py ...
- Java中的I/O输入输出流概述
流是一组有序的数据序列,根据操作类型,可以分为输入流和输出流两种,Java语言中定义的负责各种输入输出的类都被放在java.io包中.其中所有的输入流类都是抽象类InputStream(字节输入流)或 ...