java spring IOC Bean管理操作(xml P名称空间注入)

news2024/9/30 7:29:34

首先 我们来写一个基本的 通过xml的set属性注入
首先创建一个项目 然后引入 spring 最基本的几个依赖包
在这里插入图片描述
src下 下有一个 gettingStarted 包 下面有一个 user类
代码如下

package gettingStarted;

public class user {
    public String name;
    public int age;

    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }

    public void setAge(int age){
        this.age = age;
    }
    public int getAge(){
        return age;
    }
}

配置文件是src下的 bean.xml 参考代码如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- user类的对象创建 -->
    <bean id = "user" class = "gettingStarted.user">
        <property name="name" value = "小猫猫"></property>
        <property name="age" value = "13"></property>
    </bean>
</beans>

对应找到gettingStarted下的 user类 创建对象 通过property给两个set方法传递值

gettingStarted 下的text测试类 代码如下

package gettingStarted;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class text {
    public static void main(String args[]) {
        //获取配置文件
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        user user = context.getBean("user",user.class);
        System.out.println(user.getName());
        System.out.println(user.getAge());
    }
}

通过反射创建类对象 然后用get方法获取属性值 看看有没有问题
运行结果如下
在这里插入图片描述
这样 一个最基本的案例就做出来了

但是 大家会不会感觉 一个属性 配置文件搞一个property太麻烦了
其实可以简化的
这就要说到 我们的 P名称空间注入

我们修改 bean.xml配置文件 将xmlns的一行整个复制出来

然后将 xmlns改为 xmlns:p 将等于的 最后的beans换成p
在这里插入图片描述
然后 我们可以将整个bean标签修改成这样

<bean id = "user" class = "gettingStarted.user" p:name = "小猫猫" p:age = "13"></bean>

整体上说 就是直接写在bean标签上 格式是 p:属性名 = “需要注入的值”

最后 我们bean.xml下的代码是这样的

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- user类的对象创建 -->
    <bean id = "user" class = "gettingStarted.user" p:name = "小猫猫" p:age = "13"></bean>
</beans>

运行结果如下
在这里插入图片描述
也是没有任何问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/174246.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode 1817. 查找用户活跃分钟数【python3,哈希表的实现思路详解】

题目 给你用户在 LeetCode 的操作日志&#xff0c;和一个整数k。日志用一个二维整数数组logs表示&#xff0c;其中每个logs[i] [IDi, timei]表示ID为IDi的用户在timei分钟时执行了某个操作。 多个用户可以同时执行操作&#xff0c;单个用户可以在同一分钟内执行多个操作。指定…

Deno不只是个Javascript运行时

Deno 是一个安全的 JavaScript 和 TypeScript 运行时&#xff0c;作者是 Ryan Dahl&#xff08;也是 Node.js 的原作者&#xff09;。Deno 的诞生之初是为了解决 2009 年首次设计 Node.js 时的一些疏忽。我认为这种改造动机很有道理&#xff0c;因为我相信每个程序员都希望有机…

cmake跨平台构建工具

TOP目录 前言 CMake是一个跨平台的安装编译工具&#xff0c;可以用简单的语句来描述所有平台的安装(编译过程)。CMake可以说已经成为大部分C开源项目标配 因此&#xff0c;作为一名C C发开人员&#xff0c;看到cmake不应该一脸茫然… 作为初学者&#xff0c;通俗的认为cmake…

C语言入门(七)——结构体

复合类型与结构体 数据抽象 数据类型标志 嵌套结构体 复合类型与结构体 在编程语言中&#xff0c;最基本的&#xff0c;不可再分的数据类型称为基本类型&#xff0c;例如整型&#xff0c;浮点型;根据语法规则由基本类型组合而成的类型称为复合类型&#xff0c;例如字符串是…

系统性能优化、性能指标、性能测试

系统性能是互联网应用最核心的非功能性架构目标&#xff0c;系统因为高并发访问引起的首要问题就是性能问题&#xff1a;高并发访问的情况下&#xff0c;系统因为资源不足&#xff0c;处理每个请求的时间就会变慢&#xff0c;看起来就是性能变差。 因此&#xff0c;性能优化是…

1596_AURIX_TC275_LMU简介

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 这个章节其实没有多少页文档&#xff0c;而大部分的文档其实是寄存器的字段描述。因此&#xff0c;这次一次性把这个文档的内容大概看完。 LMU提供了32K的本地通用RAM。ED存储的访问也是通…

Mybatis 框架开发的准备

从百度中“mybatis download”可以下载最新的 Mybatis 开发包。进入选择语言的界面&#xff0c;进入中文版本的开发文档。下载相关的 jar 包或 maven 开发的坐标。下载的 zip 文件如下&#xff08;我们的资料文件夹&#xff09;&#xff1a;我们所使用的 Mybatis 版本是 3.2.7 …

我在CSDN的2022:突破零粉丝,4个月涨粉4000+,2023年目标5万+

文章目录前言我为什么又回来写博客&#xff1f;初写文章碰壁1024活动第一次上热榜关于上热榜博客之星2023年目标最后前言 今年最自豪的事&#xff0c;我用业余时间&#xff0c;在CSDN上坚持创作了4个月&#xff0c;产出了20多篇博客&#xff0c;其中7篇文章上了全站热榜&#…

Python基础必经之路——函数

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 目录前言定义函数向函数传递信息实参和形参传递实参返回值将函数存储在模块中导入整个模块尾语 &#x1f49d;定义函数 下面是一个打印问候语的简单函数 def greet_user():print("hello") greet_user()本例示例…

excel函数技巧:如何快速汇总销售合计项

一年的销售数据整理完了&#xff0c;除了要看到每个人的销售合计之外&#xff0c;老板今年还要看到图中这两项合计&#xff1a;销量最高的三个月合计是指汇总每人一年中&#xff0c;销量最高的三个月的数据。超过平均值的销售合计是指汇总超过总平均值的月份销量。两项合计需要…

【进阶】Spring Boot日志文件

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录一、日志有什么用二、日志怎么用三、 自定义日志打印四、 日志级别五、日志持久化六、更简单的日志输出——lombok小结普通小孩也要热爱生活&#xff01; 一、日志有什么用 日志是解决问题最直观、最有效的方法。⽇…

ROS2机器人编程简述humble-第二章-Launchers .3.3

ROS2机器人编程简述humble-第二章-Publishing and Subscribing .3.2ros2 run一次只能开启一个node&#xff0c;如果一次开启一组相关node&#xff0c;需要使用ros2 launch。支持Python, XML, 和 YAML。推荐Python。zhangrelayLAPTOP-5REQ7K1L:~$ ros2 run -h usage: ros2 run […

Mysql之约束

简介 not null前面也说过&#xff0c;这些约束是针对列的数据的&#xff0c;对应整个列的数据都起约束作用 基本但是创建表在字段后使用的语句 1.primary key-主键 主键特征1.对应列不能有重复的数据2.不能为NULL 唯一且非空 -- 主键 -- id,name,email CREATE TABLE t17(id…

AX7A200教程(1): DDR3仿真平台搭建(一)

本章节主要调用官方的MIG控制器&#xff0c;并使用官方的MIG控制器进行仿真&#xff0c;开发环境vivado2020.1鉴于很多童鞋无法仿真自己新建的DDR工程&#xff0c;即使使用modelsim仿真也仿真失败&#xff0c;本例程着重于在vivado中&#xff0c;对自己新建的带DDR3的工程进行仿…

力扣45.跳跃游戏Ⅱ(贪心思路详解)

文章目录力扣45.跳跃游戏Ⅱ题目描述算法思路代码实现力扣45.跳跃游戏Ⅱ 题目描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意…

114、【树与二叉树】leetcode ——77. 组合:回溯法+剪枝优化(C++版本)

题目描述 原题链接&#xff1a;77. 组合 解题思路 组合问题是回溯法里的经典问题&#xff0c;分别采用两个全局变量path记录当前组合情况&#xff0c;res作为结果集。每次因为结果集需要去重&#xff0c;因此还需要再设置一个局部变量startIndex作为每次遍历的起始值&#xf…

Linux kernel Memory Pin机制的实现以及测试

提起Memory Pin机制&#xff0c;就不得不提到swap的概念&#xff0c;这两个概念息息相关&#xff0c;为了避免在CPU忙碌的时候&#xff0c;也就是在缺页异常发生的时候&#xff0c;临时搜索可供换出的内存页面并加以换出&#xff0c;Linux内核定期地检查系统的空闲页面数量是否…

九大数据分析方法-单指标分析方法与多指标分析方法

文章目录1 单指标分析方法1.1 周期性分析法1.2 结构分析法1.3 分层分析法2 多指标分析方法2.1 矩阵分析法2.2 指标拆解法本文来源&#xff0c;为接地气的陈老师的知识星球&#xff0c;以及付同学的观看笔记。1 单指标分析方法 顾名思义&#xff0c;用单个数据指标进行数据分析…

RocketMQ 简介

一、简介 官方简介&#xff1a; l RocketMQ是一款分布式、队列模型的消息中间件&#xff0c;具有以下特点&#xff1a; l 能够保证严格的消息顺序 l 提供丰富的消息拉取模式 l 高效的订阅者水平扩展能力 l 实时的消息订阅机制 l 亿级消息堆积能力 二、网络架构 三、特性 1. na…

05-jquery基本过滤器

2.5过滤器 过滤器是一个字符串&#xff0c;用了筛选dom对象&#xff0c;过滤器是和选择器一起使用。在选择dom对象后&#xff0c;再进行过滤筛选。 .5.1基本过滤器 使用dom对象在数组中的位置&#xff0c;作为过滤条件。 1 选择数组中第一个dom成员。 语法&#xff1a;$(“选…