Spring给对象属性赋值的三种注入方式

2023-10-29

bean类

package com.zxh.model;

public class Student {
    private String username;
    private String password;
    private Integer id;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Student() {
    }

    public Student(String username, Integer id) {
        this.username = username;
        this.id = id;
    }

    public Student(String username, String password) {
        this.username = username;
        this.password = password;
    }

    @Override
    public String toString() {
        return "Student{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", id=" + id +
                '}';
    }
}

<?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 id="student1" class="com.zxh.model.Student">
        <constructor-arg name="username" value="zxh"></constructor-arg>
        <constructor-arg name="password" value="123456"></constructor-arg>
    </bean>
    <!--构造方法通过索引注入属性值-->
    <bean id="student2" class="com.zxh.model.Student">
        <constructor-arg index="0" value="zxh" type="java.lang.String"></constructor-arg>
        <constructor-arg index="1" value="123456" type="java.lang.String"></constructor-arg>
    </bean>
    <!--set方法注入属性值-->
    <bean id="student3" class="com.zxh.model.Student">
        <property name="username" value="zxh"></property>
        <property name="password" value="123456"></property>
        <property name="id" value="12"></property>
    </bean>
    <!--p标签注入属性值-->
    <bean id="student4" class="com.zxh.model.Student" p:id="10" p:username="zxh" p:password="123456"></bean>

</beans>

测试类

package com.zxh.test;

import com.zxh.model.Student;
import com.zxh.model.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class lesson06 {
    @Test
    public void test() throws Exception {

        /**
         * 给对象属性赋值的方式
         */
       ApplicationContext ac = new ClassPathXmlApplicationContext("beans6.xml");
       Student student = (Student) ac.getBean("student4");
       System.out.println(student);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring给对象属性赋值的三种注入方式 的相关文章

随机推荐

  • 记本地Debug测试遇见异步处理操作数据库遇见的问题

    1 打断点本地测试异步处理 在异步处理子线程里操作数据库报数据库连接池已关闭错误 这里使用 SpringBoot 自带的数据库连接池 HikariDataSource 为例 Caused by org springframework jdb
  • 关于python中的+、+=、*、*=

    不废话 直接干货 1 了解一下python的内存机制 a 1 b 1 id a id b 短的字符串 数字python在内存中是一个对象 a b id a id b 字典 数组这样的对象在内存中python会创建两个不同的对象 a new
  • 生成式对抗网络GAN研究进展(五)——Deep Convolutional Generative Adversarial Nerworks,DCGAN

    前言 本文首先介绍生成式模型 然后着重梳理生成式模型 Generative Models 中生成对抗网络 Generative Adversarial Network 的研究与发展 作者按照GAN主干论文 GAN应用性论文 GAN相关论文分
  • Docker Hub的使用以及配置阿里云镜像加速

    Docker Hub是一个由Docker公司负责维护的公共注册中心 它包含了超过15 000个可用来下载和构建容器的镜像 并且还提供认证 工作组结构 工作流工具 比如webhooks 构建触发器以及私有工具 比如私有仓库可用于存储你并不想公
  • [山东科技大学OJ]2297 Problem F: 编写函数:字符串的小写转大写(Append Code)

    Time Limit 1 Sec Memory Limit 16 MB Submit 3392 Solved 1822 Submit Status Description 输入一些字符串 把其中的小写字母转换成大写字母 编写函数str up
  • python 年月日_在Python中将年/月/日转换为年

    I m using the Python datetime module i e gt gt gt import datetime gt gt gt today datetime datetime now gt gt gt print to
  • 架构师成长系列 - 能力认知(3)

    之前写了关于认知的两篇文章 感觉写的还是不够透彻 可能很多人看不明白 我决定还是再次用比较详尽的一个例子 和我给别人one by one中聊到的认知成长部分来再次说明一下这个问题 在我的成长路径中 认知是非常非常重要的 所以我争取把这个问题
  • 微信小程序插件--wxml-to-canvas(生成图片)

    一 需求 项目中要实现一个将图片分享到朋友圈的功能 将生成的海报转成图片保存到手机 用到了wxml to canvas插件 二 官方示例使用方法 1 安装wxml to canvas npm install save wxml to can
  • 三维语义分割三个数据集

    随着之后的使用 可能会有一些补充 indoor datasets NYU V2 5 S3DIS 6 ScanNet 7 and outdoor datasets Semantic 3D 8 KITTI 9 vKITTI 10 semanti
  • C++ - STL标准库

    1 C STL标准库简介 长久以来 软件界一直希望建立一种可重复利用的东西 以及一种得以制造出 可重复运用的东西 的方法 从函数 functions 类别 classes 函数库 function libraries 类别库 class l
  • 并行编程的几种常见框架总结

    1 OpenMP 是基于共享内存系统的并行编程和框架 只需要在串行程序中 需要并行的部分添加一行关键字 pragma omp parallel for 来标注接下来的for循环分解到多个线程上执行 两个缺点 并行后会改变原来for循环的顺序
  • 阿里云服务器(centos7) 设置mysql账号密码开放3306端口实现远程登陆

    在阿里云服务器上 centos7 下载好了mysql并安装上去 但是暂未设置账号密码 远程登陆mysql并不可行 这里有两个问题需要我们去解决 设置账号密码 远程登陆mysql 一 设置账号密码 1 登陆远程服务器 2 查看mysql版本
  • 随机函数详解+浅谈洗牌算法

    在C 中的 rand 函数可以用来产生随机数 在使用 rand 函数的时候 首先需要包含头文件 include
  • 屏幕录制软件camtasia studio 8序列号激活

    注册名 TEAM MESMERiZE序列号 3MHCA 5DMCV H89T8 V8GML W6FB8打开hosts文件 C Windows System32 drivers etc hosts把下面两个添加进去 没有 直接复制到hosts
  • 计算机网络两台主机互相通信过程概览

    两台主机互通过程 地面 物理层信息 路 数据链路层 使物理层更好的传输 车 网络层 实现异构网络的互联 货物 传输层 实现不同主机的进程之间的通讯 TCP 楼 应用层 为应用进程提供服务 TCP IP结构 应用层 提供系统与用户的接口 传输
  • 反序列化漏洞

    什么是序列化 序列化 serialize 是将对象的状态信息转换为可以存储或传输的形式的过程 在序列化期间 对象将其当前状态写入到临时或持久性存储区 以后 可以通过从存储区中读取或反序列化对象的状态 重新创建该对象 将状态信息保存为字符串
  • android 开发(一些控件用法)

    1 属性 XML标记内部id语法 android id id button 号表示这是一个新的资源名称 引用Android资源Id时不需要加 但是需要加android命名空间 android id android id button 引用创
  • 算法系列-leetcode-34.二叉树中和为某一值的路径

    剑指 Offer 34 二叉树中和为某一值的路径 中等 给你二叉树的根节点 root 和一个整数目标和 targetSum 找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径 叶子节点 是指没有子节点的节点 示例 1 输入 root
  • 【会议资源】2022年第三届自动化科学与工程国际会议(JCASE 2022)

    2022年第三届自动化科学与工程国际会议 JCASE 2022 重要信息 会议网址 www ijcase org 会议时间 2022年10月14 16日 召开地点 中国成都 截稿时间 2022年8月30日 录用通知 投稿后2周内 收录检索
  • Spring给对象属性赋值的三种注入方式

    bean类 package com zxh model public class Student private String username private String password private Integer id publ