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--获取对象方式介绍的主要内容,如果未能解决你的问题,请参考以下文章

Spring在代码中获取bean的几种方式

001-Spring在代码中获取bean的几种方式

Spring在代码中获取bean的几种方式

Spring AOP深入理解之拦截器调用

SpringSpring 入门介绍

SpringSpring 入门介绍