spring(2)--获取对象方式介绍

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");

原文地址:https://www.cnblogs.com/ywqtro/p/12257906.html

时间: 2024-10-08 05:05:48

spring(2)--获取对象方式介绍的相关文章

spring 获取对象方式

1 通过配置文件注入 1.配置文件中配置注入信息 2.class中添加注解的接口(set get. 构造函数等) 2.通过注解方式获得 1. 在class中对方法添加注解信息 (类标示 :@Service .@Repository  ;  注入标示:@Resource) 3. 在spring环境中获取对象(从web环境中获取) WebApplicationContext webApplicationContext = WebApplicationContextUtils.getWebApplic

Spring获取ApplicationContext方式,和读取配置文件获取bean的几种方式

转自:http://chinazhaokeke.blog.163.com/blog/static/109409055201092811354236  Spring获取ApplicationContext方式 我自己常用的方法: 读取一个文件1 //创建Spring容器 2 ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml"); 3 //获取chinese 实例 4 Person p = ctx.g

Spring中获取被代理的对象

目录 Spring中获取被代理的对象 获取Spring被代理对象什么时候可能会用到? Spring中获取被代理的对象 Spring中获取被代理的对象 ### 获取Spring被代理对象的JAVA工具类 ? Spring采用CGLIB或者JDK动态代理来实现AOP,那如何获取 被代理对象?通过ApplicationContext.getBean()获取到的对象都是 利用字节码动态生成的 增强对象,那假如我们有场景获取 被代理的对象,方式如下: (封装到工具类形式里面,直接通过getTrueTarg

获取spring的IOC核心容器,并根据id获取对象

public class Client { /** * 获取spring的IOC核心容器,并根据id获取对象 * ApplicationContext的三个常用实现类 * classPathXmlApplicationContext: 它可以加载路径下的配置文件,要求配置文件必须在类路径下.不在的话加载不了 * FileSystemXmlApplicationContext: 它可以加载磁盘任意路径下的配置文件件(必须有访问权限) * AnnotationConfigApplicationCon

spring -mvc 将对象封装json返回时删除掉对象中的属性注解方式

spring -mvc 将对象封装json返回时删除掉对象中的属性注解方式 在类名,接口头上注解使用在 @JsonIgnoreProperties(value={"comid"}) //希望动态过滤掉的属性 例 @JsonIgnoreProperties(value={"comid"}) public interface 接口名称{ } @JsonIgnoreProperties(value={"comid"}) public class 类名{

获取Spring管理bean对象

package com.sinosoft.base.util; import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext; import org.springframework.context.Applica

spring中获取dao或对象中方法的实例化对象

spring中获取dao的中方法的实例化对象: 1 //获取应用上下文对象 2 ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-config.xml"); 3 //例子:获取dicDao实例 4 dicDao = ctx.getBean(IDicDao.class); //例子2:获取MemcacheAccess的实例: 5 memcachedAccess = ctx.getBean(Memcach

Spring 使用静态工厂方式实例化Bean

知识点介绍: 静态工厂顾名思义,就是通过调用静态工厂的方法来获取自己需要的对象,为了让spring管理所有对象,我们不能直接通过"工程类.静态方法()"来获取对象,而是依然通过spring注入的形式获取. [转载使用,请注明出处:http://blog.csdn.net/mahoking] 操作步骤: 1.创建Speaker对象. /** * 静态工厂类 * */ public class Speaker { private String name ; private String t

Spring IOC 几种方式 总结

Spring框架是目前各大Java开发者追捧的框架之一,相信对于大家来说并不陌生,Spring之所以这么流行,少不了他的两大核心技术IOC和IOP.我们这里重点讲述Spring框架的IOC技术.在我们平 常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一 管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中. 依赖