spring IOC 装配一个bean
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相关推荐
- Spring IOC容器和Bean的配置
Spring IOC容器 和Bean的配置 : IOC和DI IOC(Inversion of Control):反转控制 在应用程序中的组件需要获取资源时,传统的方式是组件主动的从容器中获取所需要的 ...
- Spring IoC容器与Bean管理
Spring IoC容器与Bean管理 一.Spring IoC容器与Bean管理 1.Spring快速入门 IoC控制反转 DI依赖注入 Spring概述 Spring IoC初体验 使用XML方式 ...
- Spring IoC容器与Bean管理18:Bean对象的作用域及生命周期三:对象生命周期;
说明: (1)本篇博客主要根据案例阐述对象的声明周期: (2)其中,比较重要的是注意下这个对应关系: (3)还有就是调用[registerShutdownHook()]销毁IoC容器: 目录 一:be ...
- Spring IOC中的Bean对象
Spring IOC中的Bean对象 (一)Bean是什么 突然发现提到了好多次Bean,居然忘记了讲Bean是什么.没事,现在讲也不晚.Java中的Bean是一种规范,是一种特殊的java类.所以我 ...
- [Spring实战系列](6)配置Spring IOC容器的Bean
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/SunnyYoona/article/details/50619900 1. 简介 Spring提供了 ...
- Spring IoC容器以及Bean的创建过程
1 Spring 静态结构介绍 什么是Spring,可以自己网上查询,总之,可以说是一个面向Web应用开发的,轻量级,企业级框架.它包含了如下图所示一些模块,这些模块的详细的概念和所负责的职责,可以通 ...
- Spring中把一个bean对象交给Spring容器管理的三种方式
一.使用@Component,把bean对象依赖交给Spring容器 注意,该注解不能使用,则说明未添加依赖,需要去该项目pom.xml文件内引入依赖,若该项目只是作为一个存放工具类的子模块项目,没有 ...
- Spring IOC 容器根据Bean 名称或者类型进行autowiring 自动依赖注入
//根据类型对属性进行自动依赖注入 protected void autowireByType(String beanName, AbstractBeanDefinition mbd, BeanWra ...
- Spring | IOC技术之Bean的配置与实例化
最新文章
- WEB测试 test case测试点
- mybatis支持驼峰自动转换sql吗_mybatis-plus返回map自动转驼峰配置操作
- 打印机可以打印不能扫描怎么弄_为什么打印机可以通过电脑打印可不能扫描呢...
- 代码缺乏装饰?使用ts装饰器来装饰你的代码
- 75个移动App开发教程
- Android中简单的日期格式化
- 安卓教程:提取APK程序里图片资源的方法
- unity DOTS的学习总结之Job System应用——绘制曼德勃罗集合
- excel制作窗体查询界面_利用 VBA窗体制作excel登录界面
- 作业2.1.1 安装并使用CheckStyle
- 【Java必备技能二】防止表单重复提交方法
- Tomcat 修改网站旁边的小图标
- 【生活中的逻辑谬误】以暴制暴和压制理性
- 百度地图三维效果实现
- windows10操作-虚拟桌面与关闭时间线
- Spring boot出现java.awt.HeadlessException【已解决】
- LoRa SX1278/76驱动原理 附代码
- js定时器和延时调用的使用
- 【解释比较形象好理解】你稀里糊涂学的算法复杂度,原来这么简单!
- [论文阅读]ICE: Inter-instance Contrastive Encoding for Unsupervised Person Re-identification(ICCV2021)
热门文章
- HappyLeetcode37:Add Binary
- ROC曲线(Receiver Operating Characteristic Curve)
- wp7 --缓动动画
- Android开发指南中文版(十三)User Interface-Notifications
- Android自定义View 开发流程综合简述 Android自定义View(三)
- CC++中的时间函数和时间类
- json_decode()和json_encode()区别----2015-0929
- pl/sql developer 设置oracle的date类型默认显示样式
- Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课
- WPF:动态显示或隐藏Listview的某一列