1.0属性注入

新建一个people类

package com.java.test3;/*** @author nidegui* @create 2019-06-22 14:45*/
public class People {private Integer id;private String name;private String age;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}@Overridepublic String toString() {return "People{" +"id=" + id +", name='" + name + '\'' +", age='" + age + '\'' +'}';}
}

  

装配在bean里面

<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="helloWorld" class="com.java.test.Helloworld"></bean><bean id="people" class="com.java.test3.People"></bean><!--属性注入--><bean id="people2" class="com.java.test3.People"><property name="name" value="nidegui"></property><property name="id" value="1"></property><property name="age" value="12"></property></bean>
</beans>

  

测试:

package com.java.test3;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;/*** @author nidegui* @create 2019-06-22 14:47*/
public class Test {public static void main(String[] args) {/*属性注入*/ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");People people =(People) ac.getBean("people2");System.out.println(people);}
}

  

2.0构造函数注入

1.0通过类型注入

在实体中添加构造方法

    public People(Integer id, String name, String age) {this.id = id;this.name = name;this.age = age;}
}

bean.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--构造方法通过类型注入--><bean id="people3" class="com.java.test3.People"><constructor-arg type="java.lang.Integer" value="1"></constructor-arg><constructor-arg type="java.lang.String" value="nideg"></constructor-arg><constructor-arg type="java.lang.String" value="15"></constructor-arg></bean><!--属性注入--><!--<bean id="people2" class="com.java.test3.People"><property name="name" value="nidegui"></property><property name="id" value="1"></property><property name="age" value="12"></property></bean>-->
</beans>

  

3.0按照索引注入

<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--构造方法类型注入--><bean id="people3" class="com.java.test3.People"><constructor-arg type="java.lang.Integer" value="1"></constructor-arg><constructor-arg type="java.lang.String" value="nideg"></constructor-arg><constructor-arg type="java.lang.String" value="15"></constructor-arg></bean><!--索引注入,按照构造方法的顺序注入--><bean id="people4" class="com.java.test3.People"><constructor-arg index="0" value="1"></constructor-arg><constructor-arg index="1" value="nideg"></constructor-arg><constructor-arg index="2" value="15"></constructor-arg></bean><!--属性注入--><!--<bean id="people2" class="com.java.test3.People"><property name="name" value="nidegui"></property><property name="id" value="1"></property><property name="age" value="12"></property></bean>-->
</beans>

  

3.0工厂方法注入

 创建一个工厂

package com.java.test3;/*** @author nidegui* @create 2019-06-22 15:15*/
public class Factory {/*** 定义一个非静态工厂* @return*/public People createFactoty(){People p=new People();p.setId(1);p.setName("ni");p.setAge("25");return p;}
}

  

注入bena.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--构造方法注入--><bean id="people3" class="com.java.test3.People"><constructor-arg type="java.lang.Integer" value="1"></constructor-arg><constructor-arg type="java.lang.String" value="nideg"></constructor-arg><constructor-arg type="java.lang.String" value="15"></constructor-arg></bean><!--索引注入,按照构造方法的顺序注入--><bean id="people4" class="com.java.test3.People"><constructor-arg index="0" value="1"></constructor-arg><constructor-arg index="1" value="nideg"></constructor-arg><constructor-arg index="2" value="15"></constructor-arg></bean><!--属性注入--><!--<bean id="people2" class="com.java.test3.People"><property name="name" value="nidegui"></property><property name="id" value="1"></property><property name="age" value="12"></property></bean>--><!--工厂模式注入--><bean id="peopeFactoty" class="com.java.test3.Factory"></bean><bean id="people5" factory-bean="peopeFactoty" factory-method="createFactoty"></bean>
</beans>

  

工厂模式的静态方法注入

 public static People createFactoty2(){People p=new People();p.setId(1);p.setName("ni");p.setAge("25");return p;}

  

<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--构造方法注入--><bean id="people3" class="com.java.test3.People"><constructor-arg type="java.lang.Integer" value="1"></constructor-arg><constructor-arg type="java.lang.String" value="nideg"></constructor-arg><constructor-arg type="java.lang.String" value="15"></constructor-arg></bean><!--索引注入,按照构造方法的顺序注入--><bean id="people4" class="com.java.test3.People"><constructor-arg index="0" value="1"></constructor-arg><constructor-arg index="1" value="nideg"></constructor-arg><constructor-arg index="2" value="15"></constructor-arg></bean><!--属性注入--><!--<bean id="people2" class="com.java.test3.People"><property name="name" value="nidegui"></property><property name="id" value="1"></property><property name="age" value="12"></property></bean>--><!--工厂模式注入--><bean id="peopeFactoty" class="com.java.test3.Factory"></bean><bean id="people5" factory-bean="peopeFactoty" factory-method="createFactoty"></bean><!--静态方法注入--><bean id ="people6" class="com.java.test3.Factory" factory-method="createFactoty2"></bean>
</beans>

  

转载于:https://www.cnblogs.com/nidegui/p/11068898.html

spring IOC 装配一个bean相关推荐

  1. Spring IOC容器和Bean的配置

    Spring IOC容器 和Bean的配置 : IOC和DI IOC(Inversion of Control):反转控制 在应用程序中的组件需要获取资源时,传统的方式是组件主动的从容器中获取所需要的 ...

  2. Spring IoC容器与Bean管理

    Spring IoC容器与Bean管理 一.Spring IoC容器与Bean管理 1.Spring快速入门 IoC控制反转 DI依赖注入 Spring概述 Spring IoC初体验 使用XML方式 ...

  3. Spring IoC容器与Bean管理18:Bean对象的作用域及生命周期三:对象生命周期;

    说明: (1)本篇博客主要根据案例阐述对象的声明周期: (2)其中,比较重要的是注意下这个对应关系: (3)还有就是调用[registerShutdownHook()]销毁IoC容器: 目录 一:be ...

  4. Spring IOC中的Bean对象

    Spring IOC中的Bean对象 (一)Bean是什么 突然发现提到了好多次Bean,居然忘记了讲Bean是什么.没事,现在讲也不晚.Java中的Bean是一种规范,是一种特殊的java类.所以我 ...

  5. [Spring实战系列](6)配置Spring IOC容器的Bean

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/SunnyYoona/article/details/50619900 1. 简介 Spring提供了 ...

  6. Spring IoC容器以及Bean的创建过程

    1 Spring 静态结构介绍 什么是Spring,可以自己网上查询,总之,可以说是一个面向Web应用开发的,轻量级,企业级框架.它包含了如下图所示一些模块,这些模块的详细的概念和所负责的职责,可以通 ...

  7. Spring中把一个bean对象交给Spring容器管理的三种方式

    一.使用@Component,把bean对象依赖交给Spring容器 注意,该注解不能使用,则说明未添加依赖,需要去该项目pom.xml文件内引入依赖,若该项目只是作为一个存放工具类的子模块项目,没有 ...

  8. Spring IOC 容器根据Bean 名称或者类型进行autowiring 自动依赖注入

    //根据类型对属性进行自动依赖注入 protected void autowireByType(String beanName, AbstractBeanDefinition mbd, BeanWra ...

  9. Spring | IOC技术之Bean的配置与实例化

最新文章

  1. WEB测试 test case测试点
  2. mybatis支持驼峰自动转换sql吗_mybatis-plus返回map自动转驼峰配置操作
  3. 打印机可以打印不能扫描怎么弄_为什么打印机可以通过电脑打印可不能扫描呢...
  4. 代码缺乏装饰?使用ts装饰器来装饰你的代码
  5. 75个移动App开发教程
  6. Android中简单的日期格式化
  7. 安卓教程:提取APK程序里图片资源的方法
  8. unity DOTS的学习总结之Job System应用——绘制曼德勃罗集合
  9. excel制作窗体查询界面_利用 VBA窗体制作excel登录界面
  10. 作业2.1.1 安装并使用CheckStyle
  11. 【Java必备技能二】防止表单重复提交方法
  12. Tomcat 修改网站旁边的小图标
  13. 【生活中的逻辑谬误】以暴制暴和压制理性
  14. 百度地图三维效果实现
  15. windows10操作-虚拟桌面与关闭时间线
  16. Spring boot出现java.awt.HeadlessException【已解决】
  17. LoRa SX1278/76驱动原理 附代码
  18. js定时器和延时调用的使用
  19. 【解释比较形象好理解】你稀里糊涂学的算法复杂度,原来这么简单!
  20. [论文阅读]ICE: Inter-instance Contrastive Encoding for Unsupervised Person Re-identification(ICCV2021)

热门文章

  1. HappyLeetcode37:Add Binary
  2. ROC曲线(Receiver Operating Characteristic Curve)
  3. wp7 --缓动动画
  4. Android开发指南中文版(十三)User Interface-Notifications
  5. Android自定义View 开发流程综合简述 Android自定义View(三)
  6. CC++中的时间函数和时间类
  7. json_decode()和json_encode()区别----2015-0929
  8. pl/sql developer 设置oracle的date类型默认显示样式
  9. Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课
  10. WPF:动态显示或隐藏Listview的某一列