SSM框架学习-依赖注入、自动装配、暴力反射

news2024/11/16 9:44:23

1. 依赖注入

1.1 引用类型

注入引用类型
一种是默认按照类型装配
一种是如果有相同类型的bean采用按bean名称装配
但是在写的过程中@Qualifier前面必须写上@Autowired
也就是必须依赖@Autowired

    //@Autowired:注入引用类型,自动装配模式,默认按类型装配
    @Autowired
    //@Qualifier:自动装配bean时按bean名称装配
    @Qualifier("bookDao")
    private BookDao bookDao;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 简单(基本)类型

当注入的来自外部文件properties时,需要在Java配置文件中加入
这里的引入properties文件不能采用*,不允许通配符
@PropertySource({"*.properties"})

//@PropertySource加载properties配置文件
@PropertySource({"jdbc.properties"})

直接改成$占位符

    //@Value:注入简单类型(无需提供set方法)
    @Value("${name}")
    private String name;

1.3 暴力反射

这里解释一下暴力反射

暴力反射(也称为非安全反射)是一种通过反射机制可以访问和修改类的私有成员的技术。当应用程序设计者定义一个类时,可以使用private或protected关键字限制该类的方法或变量只能在该类本身中被访问和修改,而外部程序则无法直接访问或修改它们。然而,通过使用反射API,可以在程序运行时绕过这种保护机制,访问和修改私有成员。

在Java中,通过设置AccessibleObject.setAccessible(boolean
flag)方法实现暴力反射。这个方法可以访问和修改一个类的protected和private方法和成员变量,同时也可以访问和修改一个数组的元素。当flag设置为true时,表示反射对象在使用时取消Java语言访问检查,从而访问和修改保护成员。

下面是一个简单的示例代码,展示了如何通过暴力反射获取并修改一个类的私有变量:

public class MyClass {
    private String myPrivateField = "private field value";
}

public class Main {
    public static void main(String[] args) throws Exception {
        MyClass obj = new MyClass();

        Field field = MyClass.class.getDeclaredField("myPrivateField");
        field.setAccessible(true);
        System.out.println(field.get(obj)); // 输出"private field value"
        field.set(obj, "new private field value");
        System.out.println(field.get(obj)); // 输出"new private field value"
    }
}

上述代码中,使用反射API获取了 MyClass 类的 myPrivateField 字段,并使用 setAccessible()
方法将其设置可访问标志(取消访问检查),然后通过该方法修改了私有变量的值。需要注意的是,暴力反射可能会破坏程序的封装机制,因此在使用时需要谨慎。

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

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

相关文章

一场面试下来,狂飙 Framework底层原理

近期有位Android 开发的朋友在吐槽说:现在的招聘信息网站是假的吧,我都怀疑一些公司的人事在冲他们的KPI,三个月了,简历投了上百份,结果收到回应的才个位数,去面试还一套Framework底层原理面试题狂炸…… 面…

178_技巧_Power BI 动态排名多项展示

178_技巧_Power BI 动态排名多项展示 一、背景 在 Power BI 中做排名矩阵时,我们经常遇到同一维度下,多项展示排名的问题。类似这样的排名矩阵,排名的名次不会太多,但是同一维度下会有多项同时展示排名,并且还要满足…

树结构 数据可视化

这边有个 树结构数据,想做一个可视化展示的需求;首先想到的是 python pyecharts, 一直传说 python 做数据可视化 一把梭; pyecharts 在线实例展示 pyecharts 官网 当看到上面的 示例 后,这不就我想找的嘛!哈哈 随后 找…

web前端 --- CSS(02) -- 样式修饰

CSS本质是用来修饰HTML标签的 常用CSS属性 (1)字体及文本属性 文字相关效果 属性含义font字体及其属性(复合属性,不建议直接使用)font-family设置文本字体,电脑中存在字体font-size字体大小font-weight字…

PPT如何使用基础功能?

文章目录 0.引言1.菜单栏 0.引言 因科研办公等多场景需要进行汇报展示,笔者对PPT进行了学习,通过《PPT 2016高效办公实战应用与技巧大全666招》及其配套素材结合网上相关资料进行学习笔记总结,本文对软件界面基础功能进行阐述。    1.菜单…

[光源频闪] Basler相机光源频闪设置操作说明

📢博客主页:https://loewen.blog.csdn.net📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉📢现…

2019年下半年软件设计师下午试题

【试题四】0-1背包问题 阅读下列说明和C代码,回答问题1至问题3。 【说明】 0-1背包问题定义为:给定i个物品的价值v[1…i]、小重量w[1...i]和背包容量T,每个物品装到背包里或者不装到背包里。求最优的装包方案,使得所得到的价值最大。 0-1…

程序进制换算

进制数介绍 一、进制介绍 二进制 :0或1,满2进1,以0B或者0b开头,如 0b1101 八进制:0-7,满8进1,,以0开头,如0234 十进制:0-9,满10进1,…

MVC分部视图的使用:Html.Partial/RenderPartial,Html.Action/RenderAction,RenderPage

ASP.NET MVC 里的部分视图,相当于 Web Form 里的 User Control。我们的页面往往会有许多重用的地方,可以进行封装重用。 使用部分视图有以下优点: 1. 可以简写代码。 2. 页面代码更加清晰、更好维护。 在视图里有多种方法可以 加载部分视图&a…

运营-10.算法分发

定义: 通过对信息的自动过滤和分流,从而实现对不同用户的个性化推荐 算法分发三要素 算法的前提 算法分发的前提:了解用户的喜好,给用户做画像。 用户画像是根据用户 基本属性 、 社会属性 、 行为属性 和 消费属性 等真实数 据信…

流式作业如何保证真正的精准一次消费

checkpoint 两阶段提交和WAL 真的是神!!!! 彻底解决了重复消费问题!! 状态一致性 当在分布式系统中引入状态时,自然也引入了一致性问题。一致性实际上是"正确性级别"的另一种说法,也就是说在成功…

【美化命令行教程】

目录 下载字体打开Teminal设置 美化powershell注意:主题路径powershell 自动提示看效果 美化git看效果 下载字体 防止乱码一定要下载下面的字体并安装 下载作者推荐MesloLGM NF字体,点此下载 打开Teminal设置 修改Teminal配置文件json "font&q…

数组存储与指针学习笔记(二)枚举类型、常量与变量

嵌入式C语言学习进阶系列文章 GUN C编译器拓展语法学习笔记(一)GNU C特殊语法部分详解 GUN C编译器拓展语法学习笔记(二)属性声明 GUN C编译器拓展语法学习笔记(三)内联函数、内建函数与可变参数宏 数组存储与指针学习笔记(一)数…

听劝 千万不要盲目自学网络安全

听劝 不要什么盲目的学网络安全。 一,怎么入门? 1、Web 安全相关概念(2 周) 了解网络安全相关法律法规 熟悉基本概念(SQL 注入、上传、XSS、CSRF、一句话木马等)。 通过关键字(SQL 注入、…

人工智能简历-计算机视觉简历

前言 很多粉丝私我,说面试的事情。 这玩意我不理解,因为如果是计算机科班出身,计算机行业我觉得闭着眼睛找。 简历这玩意我真不会。。。 分享2个东西给大家。 第一个是 出国/在国外找实习/外企的英文简历。 比较流行的是一页。 第二个…

高速动车组全谱系图解

很多人认为中国高速铁路起源于2004年以来的技术引进,却不知道中国第一条高铁是1999年开工、2003年建成的秦沈客专;动车组的研制则更早,“蓝箭”、“中原之星”、“中华之星”都是鼎鼎大名。毫无疑问,2004年以来的引进技术&#xf…

SPI配置

I/O配置 主输出、从输入(MOSI) 主出从入(MOSI )引脚是主器件的输出和从器件的输入,用于主器件到从器件的串行数据传输。当SPI 配置为主器件时,该引脚为输出,当 SPI 配置为从器件时,该…

【原创】免费,不限量,使用OpenAI ChatGPT方法大揭秘

文章目录 微软的Edge浏览器集成WeTab插件就可以免费使用ChatGPT1、安装最新版的Edge浏览器2、选中浏览器的配置中的扩展3、在启动新页时,就可以看到chatGPT了4、这就可以免费使用chatGPT啦 微软的Edge浏览器集成WeTab插件就可以免费使用ChatGPT 1、安装最新版的Edg…

零信任网络安全

什么是零信任 零信任是一种安全思维方式,表示组织不应自动信任其边界内外的任何内容。在授予访问权限之前,必须验证任何尝试连接的实体。零信任安全策略围绕最低特权访问控制和严格的用户身份验证,因为假设不信任任何人。 若要实现这些原则…

4年外包终于上岸,我只能说别去....

我大学学的是计算机专业,毕业的时候,对于找工作比较迷茫,也不知道当时怎么想的,一头就扎进了一家外包公司,一干就是4年。现在终于跳槽到了互联网公司了,我想说的是,但凡有点机会,千万…