spring--获取对象方式介绍
Posted 祈欢
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring--获取对象方式介绍相关的知识,希望对你有一定的参考价值。
1.项目目录
2.Javabean(省略常见方法)
public class Person {
private int id;
private String name;
private int age;
private String phone;
3.新建Spring的配置文件:applicationContext.xml
此文件中涉及的获取对象的方式一共有6种:
1)通过id
2)通过类型(当applicationContext.xml配置文件中,只有一个Person.class的对象实例配置的时候,程序是可以正常运行的)
3)通过构造方法参数名注入值
4)index指定具体位置的参数
5)根据参数类型注入(需要写明参数类型)
6)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"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- bean标签用来配置一个Bean(bean就是对象) class属性设置你要配置的Bean的全类名 id属性设置一个唯一的标识 -->
<bean id="p1" class="com.cn.pojo.Person">
<!-- property标签配置属性值 name设置属性名 value属性设置值 -->
<property name="id" value="1" />
<property name="name" value="p1" />
<property name="age" value="18" />
<property name="phone" value="18610541354" />
</bean>
<bean id="p2" class="com.cn.pojo.Person">
<!-- property标签配置属性值 name设置属性名 value属性设置值 -->
<property name="id" value="2" />
<property name="name" value="蔡 " />
<property name="age" value="18" />
<property name="phone" value="18610541354" />
</bean>
<bean id="p3" class="com.cn.pojo.Person">
<!-- Person(Integer id, String name, String phone, Integer age) -->
<!-- constructor-arg 标签是指通过构造器赋值 name设置构造器的参数名 value设置构造器对应的参数值 -->
<constructor-arg name="id" value="3" />
<constructor-arg name="name" value="乔" />
<constructor-arg name="phone" value="18688886666" />
<constructor-arg name="age" value="18" />
</bean>
<bean id="p4" class="com.cn.pojo.Person">
<!-- Person(Integer id, String name, String phone, Integer age) -->
<!-- idnex属性设置参数的索引 0 第一个参数 1 第二个参数 …… 以此类推 n 第n+1个参数 -->
<constructor-arg index="0" value="4" />
<constructor-arg index="1" value="p4" />
<constructor-arg index="2" value="1222222" />
<constructor-arg index="3" value="22" />
</bean>
<!-- Person(Integer id, String name, String phone, Integer age) -->
<!-- 通过构造器参数类型获得 -->
<bean id="p5" class="com.cn.pojo.Person">
<constructor-arg index="0" value="5"
type="java.lang.Integer" />
<constructor-arg index="1" value="淦"
type="java.lang.String" />
<constructor-arg index="2" value="1235888"
type="java.lang.String" />
<constructor-arg index="3" value="22"
type="java.lang.Integer" />
</bean>
<!-- p名称空间格式是: p:属性="值" -->
<bean id="p6" class="com.cn.pojo.Person" p:id="6" p:name="p名称空间赋值"
p:age="18" p:phone="18699998888" />
<bean id="p7" class="com.cn.pojo.Person">
<property name="id" value="7" />
<property name="name">
<!-- null子标签表示赋null值 -->
<null></null>
</property>
<property name="phone" value="1234567312" />
<property name="age" value="18" />
</bean>
</beans>
4.测试方法
@Test
void test1() {
// IOC容器与容器的实现类
// ApplicationContext applicationContext = new
// ClassPathXmlApplicationContext("applicationContext.xml");
// or
ApplicationContext applicationContext = new FileSystemXmlApplicationContext("config/applicationContext.xml");
// 从容器中获取id为person的对象
Person person = (Person) applicationContext.getBean("p7");
System.out.println(person);
}
5.需要新掌握的写法
<bean id="p1" class="com.cn.pojo.Person"> <!-- property标签配置属性值 name设置属性名 value属性设置值 --> <property name="id" value="1" /> <property name="name" value="p1" /> <property name="age" value="18" /> <property name="phone" value="18610541354" /> </bean> <constructor-arg index="0" value="4" />
<constructor-arg index="0" value="5" type="java.lang.Integer" /> <bean id="p6" class="com.cn.pojo.Person" p:id="6" p:name="p名称空间赋值" p:age="18" p:phone="18699998888" />
<property name="name"> <!-- null子标签表示赋null值 --> <null></null> </property>
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
ApplicationContext applicationContext = new FileSystemXmlApplicationContext("config/applicationContext.xml");
// 从容器中获取id为person的对象
Person person = (Person) applicationContext.getBean("p7");
以上是关于spring--获取对象方式介绍的主要内容,如果未能解决你的问题,请参考以下文章