spring IOC构造器注入使用
运行主类
package com.beans;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Main { public static void main(String[] args) { //1.创建spring的IOC容器对象 //ApplicationContext 代表IOC容器 是 BeanFactory 接口的子接口 // ClassPathXmlApplicationContext: 是 ApplicationContext的实现类,从类路径下来加载配置文件ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");//2.从IOC容器中获取bean实例//利用id定位到IOC容器中的bean Car car=ctx.getBean(car);System.out.println(car); }}
Car类
package com.beans;public class Car { private String brand; private String corp;private double price;private int maxSpeed; public Car(String brand, String corp, double price, int maxSpeed) { super(); this.brand = brand; this.corp = corp; this.price = price; this.maxSpeed = maxSpeed; }@Override public String toString() { retu "Car [brand=" + brand + ", corp=" + corp + ", price=" + price + ", maxSpeed=" + maxSpeed + "]"; }}
xml配置文件,主要注意的地方是这个标签没有name属性,所以一定要按构造器的属性的先后顺序编写好配置文件。
比如第一个属性String brand;
<constructor-arg value="Audi" index="0"></constructor-arg>
对应好位置就可以了。
<?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 class :bean 的全类名,通过反射的方式在IOC容器中创建bean,所以要求必须要有无参的构造器id: 表示容器中唯一的id--><!--通过构造方法配置bean的属性 --><bean id="car" class="com.beans.Car"><constructor-arg value="Audi" index="0"></constructor-arg><constructor-arg value="ShangHai" index="1"></constructor-arg><constructor-arg value="30000" index="2"></constructor-arg><constructor-arg value="200" index="3"></constructor-arg></bean></beans>
作者:codingXT
来源链接:https://blog.csdn.net/qq_37774171/article/details/85231799
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。