Spring_用Spring容器创建对象并给属性赋值

创建spring配置文件:spring-config.xml。对象的创建和赋值都在这里进行配置。

创建实体类,设置属性

import java.util.List;
import java.util.Map;

public class BookBean {

    private Long bookId;
    private String bookName;
    private Float price;
    private List<String> fzb;
    private Map<String,String> fields;
    private CategoryBean categoryBean;  //引用另外一个实体类
     //注意://如果有构造方法,创建对象时配置文件则会你读重写的构造的方法,如果用setter方法赋值,则必须要重载一个空的构造方法。
    public BookBean() {
    }
    public BookBean(Long bookId, String bookName, Float price) {
        this.bookId = bookId;
        this.bookName = bookName;
        this.price = price;
    }}

1.创建单例对象:在整个项目运行期间,这个对象只有一个。

 <bean class="com.lanou.demo.bean.BookBean" id="book1"/>

2.创建多例对象:每次取出的对象都是一个新的对象,

 <bean class="com.lanou.demo.bean.BookBean" id="book1" scope="prototype"/>

3.创建对象是为对象属性赋值,前提时属性必须要有setter方法

<bean class="com.lanou.demo.bean.BookBean" id="book2">

        <property name="bookId" value="1"/>
        <property name="bookName" value="西游记"/>
        <property name="price" value="34.4"/>

<!--为对象中的集合类型的属性赋值-->
        <property name="fzb">
            <list>
                <value>李忠仁</value>
                <value>马琳</value>
                <value>陈颖媛</value>
            </list>
        </property>

<!--为对象中的map类型的属性赋值: -->
        <!--第一种方式:-->
        <property name="fields">
            <map>
                <entry key="1" value="陈新元的诞生"/>
                <entry key="2" value="陈新元的灭亡"/>
            </map>
        </property>
<!--第二种方式:-->
        <property name="fields">
            <props>
                <prop key="1">陈新元的复活</prop>
                <prop key="1">陈新元的崛起</prop>
            </props>
        </property>

<!--在一个bean中引用另外一个bean的对象,使用ref赋值-->
        <property name="categoryBean" ref="category1"/>
   </bean>

4.用构造方法给属性赋值。

  <bean class="com.lanou.demo.bean.BookBean" id="book3">
        <!--为构造方法中bookId这个参数赋值-->
        <constructor-arg name="bookId" value="2"/>
        <constructor-arg name="bookName" value="西游记"/>
        <constructor-arg name="price" value="45.5"/>
    </bean>

原文地址:https://www.cnblogs.com/zhouchangyang/p/10885806.html

时间: 2024-10-06 01:44:27

Spring_用Spring容器创建对象并给属性赋值的相关文章

Spring注解 - 生命周期、属性赋值、自动装配

一.Bean的生命周期 流程 Bean创建 -- 初始化 -- 销毁 创建: 单实例:在容器启动时创建对象 多实例:每次调用时创建对象 初始化: 都是在对象创建完成后,调用初始化方法 销毁: 单实例:容器关闭时,调用销毁方法 多实例:容器不会管理这个bean,只能手动调用销毁方法 实现方式 在 @Bean 注解上指定初始化(initMethod).销毁方法(destroyMethod) @Bean(initMethod = "init", destroyMethod = "d

Spring框架笔记(四)——Spring容器的属性配置详解的六个专题

在spring IOC容器的配置文件applicationContext.xml里,有一些配置细节值得一提.我们将一些问题归结为以下几个专题. 专题一:字面值问题 配置的bean节点中的值,我们提出一个概念--字面值. 字面值:可用字符串表示的值. 字面值可以通过 <value> 元素标签或 value 属性进行注入. 基本数据类型及其封装类.String 等类型都可以采取字面值注入的方式 若字面值中包含特殊字符,可以使用 <![CDATA[]]> 把字面值包裹起来. 例如:(本文

[原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Spring框架笔记(三)——Spring容器、属性注入和构造器注入详解

Spring 容器 在 Spring IOC 容器读取 Bean 配置创建 Bean 实例之前, 必须对它进行实例化. 只有在容器实例化后, 才可以从 IOC 容器里获取 Bean 实例并使用. Spring 提供了两种类型的 IOC 容器实现. BeanFactory: IOC 容器的基本实现. ApplicationContext: 提供了更多的高级特性. 是 BeanFactory 的子接口. BeanFactory 是 Spring 框架的基础设施,面向 Spring 本身: Appli

spring容器中bean的初始化

当我们在spring容器中添加一个bean时,如果没有指明它的scope属性,则默认是singleton,也就是单例的. 例如先声明一个bean: public class People { private String name; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public String get

Spring容器关于继承的应用案例

一:案例演示 1.1.spring的配置文件applicationContext-extends.xml 1.2.业务类:CommonDao.java,PersonDao.java ---------------------------------------------------------------------------------------------------------------------------- 1.3.客户端代码 二:总结 1.如果一个类在spring配置文件中

Spring笔记04(DI(给属性赋值),自动装配(autowire))

1.DI(给属性赋值)的四种方式: 01.Student实体类: package cn.pb.bean; /** * 学生实体类 */ public class Student { private String name; //姓名 private Integer age; //年龄 private Grade grade; //年级 @Override public String toString() { return "Student [name=" + name + "

Spring容器核心机制

Spring容器核心机制 一.背景 Spring内部最核心的机制就是IOC,控制反转.它可以让你再使用某一个对象的时候不用再去new了,只需要告诉Spring你要调用的对象的beanid就可以.这其实就是利用java里的反射,反射其实就是在运行时动态的去创建.调用对象,Spring就是在运行时,根据配置文件或注解来动态的创建对象,和调用对象里的方法的 . Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是 在调用这类对象的具体方法的前后去调用你指定的

spring容器与java访问权限的关系!

java中的访问控制权限有: public:无限制 任何人都能访问 protected:只允许在本类中相互调用,还可以由基于父类的子类来调用(即子类可以调用父类中的protected定义的参数或者方法) 默认:默认的权限为同包类调用(即com.xx能调用com包下的其他类,属性和方法,但没法调用com.demo.xx下由默认权限定义的类或者属性或者方法) private:私有权限,只能在本类中相互调用,不对外开放 public class Dem { private Dem () {} publ