本例主要介绍基于xml文件配置的4中初始化方法
1、使用property配置Bean
2、使用P标签简化配置Bean
3、使用构造函数初始化Bean
4、使用基础来初始化Bean

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:p="http://www.springframework.org/schema/p"xmlns:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd"><!-- 1. 使用property初始化Bean属性 --><bean id="user1" class="cn.com.infcn.bean.User"><property name="userName" value="lisi" /><property name="age"><value>20</value></property><property name="cars"><!-- 使用 list 元素来装配集合属性 --><list><ref bean="audiCar" /><ref bean="bmwCar" /></list></property></bean><!-- 使用util标签:声明集合类型的 bean --><util:list id="cars"><ref bean="audiCar" /><ref bean="bmwCar" /></util:list><!-- 2. 使用P标签简化bean配置 --><bean id="user2" class="cn.com.infcn.bean.User" p:userName="zhangsan"p:age="1" p:cars-ref="cars"></bean><!-- 3. 使用构造函数进行初始化bean --><bean id="user3" class="cn.com.infcn.bean.User"><constructor-arg><value>wangwu</value></constructor-arg><constructor-arg value="5"></constructor-arg></bean><!-- 4. bean 的配置能够继承吗 ? 使用 parent 来完成继承 --> <bean id="user4" parent="user3" p:cars-ref="cars"></bean><bean id="audiCar" class="cn.com.infcn.bean.Car" p:brand="audi"></bean><bean id="bmwCar" class="cn.com.infcn.bean.Car" p:brand="bmw"></bean>
</beans>

Car.java

package cn.com.infcn.bean;/*** @author jijs*/
public class Car {private String brand;public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}@Overridepublic String toString() {return brand;}
}

User.java

package cn.com.infcn.bean;
import java.util.List;/*** @author jijs*/
public class User {private String userName;private int age;private List<Car> cars;public User() {}public User(String userName, int age) {this.userName = userName;this.age = age;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public List<Car> getCars() {return cars;}public void setCars(List<Car> cars) {this.cars = cars;}@Overridepublic String toString() {return "User [userName=" + userName + ", age=" + age + ", cars=" + cars+ "]";}
}

BeanInstantiation.java

package cn.com.infcn.springdemo;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.com.infcn.bean.User;/*** @author jijs*/
public class BeanInstantiation {public static void main(String[] args) {ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");// 1、使用property配置BeanprintUser(ac, "user1");// 2、使用P标签简化配置BeanprintUser(ac, "user2");// 3、使用使用构造初始化BeanprintUser(ac, "user3");// 4、使用基础来初始化BeanprintUser(ac, "user4");}private static void printUser(ApplicationContext ac, String beanName) {User user = User.class.cast(ac.getBean(beanName));System.out.println(user);}
}

输出结果

User [userName=lisi, age=20, cars=[audi, bmw]]
User [userName=zhangsan, age=1, cars=[audi, bmw]]
User [userName=wangwu, age=5, cars=null]
User [userName=wangwu, age=5, cars=[audi, bmw]]

本人简书blog地址:http://www.jianshu.com/u/1f0067e24ff8    
点击这里快速进入简书

GIT地址:http://git.oschina.net/brucekankan/
点击这里快速进入GIT

spring bean 基于xml的4中初始化方法相关推荐

  1. 一步一步手绘Spring IOC运行时序图二(基于XML的IOC容器初始化)

    相关内容: 架构师系列内容:架构师学习笔记(持续更新) 一步一步手绘Spring IOC运行时序图一(Spring 核心容器 IOC初始化过程) 一步一步手绘Spring IOC运行时序图二(基于XM ...

  2. Spring Bean、XML方式Bean配置、Bean实例化配置、Bean注入

    文章目录 Bean管理 一.SpringBoot Bean 初了解 1.1 了解 1.2 Bean的作用域 1.2.1 注意事项 1.3 第三方Bean 二. 基于XML方式Bean的配置 2.1 S ...

  3. Spring——Bean管理-xml方式进行属性注入

    目录 一.xml方式创建对象 二.xml方式注入属性 第①种方式注入:set方法注入 第②种方式注入:有参构造函数注入 constructor-arg:通过构造函数注入 用name标签属性: 不按照顺 ...

  4. 从源码深处体验Spring核心技术--基于Xml的IOC容器的初始化

    IOC 容器的初始化包括 BeanDefinition 的 Resource 定位.加载和注册这三个基本的过程. 我们以ApplicationContext 为例讲解,ApplicationConte ...

  5. Spring框架----Spring的基于XML的AOP的实现

    导入依赖 <dependency><groupId>org.springframework</groupId><artifactId>spring-co ...

  6. python中初始化方法_Python中类的初始化特殊方法

    什么是特殊方法?当我们在设计一个类的时候,python中有一个用于初始化的方法$__init__$,类似于java中的构造器,这个就是特殊方法,也叫作魔术方法.简单来说,特殊方法可以给你设计的类加上一 ...

  7. Spring IoC — 基于XML的配置

    1.属性注入 注意点: 1)如果类中显示定义了一个带参的构造函数,则一定还要显示提供一个无参构造函数,否则使用属性注入时将抛出异常. 2)JavaBean关于属性命名的特殊规范.Spring只会检查B ...

  8. Spring框架——基于xml文件的相关配置

    文章目录 1.IOC创建对象 2.Bean的作用域 3.Bean的继承 4.读取外部资源(导入资源文件) 1.IOC创建对象 通过 < bean id="" class=&q ...

  9. 【Spring】基于xml文件的Autowire自动装配

    一.什么是自动装配 根据指定的策略,在IOC容器中匹配某一个bean,自动为指定的bean中所依赖的类类型或接口类型属性赋值. 二.自动装配的使用 可以通过bean标签中的autowire属性设置自动 ...

最新文章

  1. 盘点工业界AI项目流程以及边缘设备现状
  2. html微信窗口阻止滚动条,解决微信浏览器页面可以随意拉伸,导致页面内部滚动条滚动体验不好的问题...
  3. 苹果广告背景音乐大全【转】
  4. 用-force –opengl 指令_OpenGL-使用Tessellation技术绘制Cubic Bézier Patches
  5. 大富由天定,小富靠算计!
  6. C++---------之--------【虚析构函数】
  7. BugkuCTF web5
  8. android连接service,android连接webservice
  9. 最大公约数GCD的三种算法程序
  10. RIA 应用程序模式
  11. Make WAR file 1.0
  12. linux卸载rpm包的命令,Linux RPM包安装、卸载和升级(rpm命令)
  13. 零基础入门学习Python4
  14. python计算两点间距离_用python计算图像中两点之间的距离
  15. 有刷直流电机和无刷直流电机有什么区别?
  16. 确定自动驾驶汽车安全评估指标的挑战
  17. SNN综述(2):生物可解释的脉冲神经网络
  18. 苹果8wifi找不到服务器,教大家遇到苹果手机iPhone11搜不到无线网怎么解决
  19. 七、Android定位与拨打电话、发送短信
  20. 科普贴:远程开户,有哪些离岸银行可以选?

热门文章

  1. ECCV 2020 Spotlight | 多标签长尾识别前沿进展
  2. 实用教程:如何制作学术会议Oral/Spotlight Video?
  3. AAAI 2018论文解读 | 基于文档级问答任务的新注意力模型
  4. 飞桨第三课2020.4.2
  5. Java软件研发工程师转行之深度学习(Deep Learning)进阶:手写数字识别+人脸识别+图像中物体分类+视频分类+图像与文字特征+猫狗分类
  6. mysql 1067 42000_MySQL:ERROR 1067 (42000): Invalid default value for 'end_time'
  7. 一个命名管道可以被多个客户端访问吗_Redis 的事务机制和管道技术Pipelining
  8. 牛客题霸 NC22 合并两个有序的数组
  9. Mybatis Plus——[Could not set property 'id' of '***' with value]解决方案
  10. 青岛农业大学第九届ACM程序设计竞赛