JavaEE进阶5/24

news2024/12/28 3:33:25

1.IOC

控制反转

把对象的生命周期的控制权由程序员反转给其他人。

控制反转减少了代码的耦合性。

哪里发生了反转?f

1.对象生命周期的控制权由程序员转交给Spring

2.对象创建的顺序反转了,原本程序员通过new来创建的是从外层到内层的,控制反转的话是从内到外的,内部改变的话由于要把内部传给外部,外部不需要改变。

 

2.Spring

Spring是一个包含了众多工具和方法的IOC容器

说白了就是Spring来帮助你管理对象的生命周期

3.DI

dependecy  injection 依赖注入

DI就是在程序运行期间,动态的将某个对象引入当前类的机制/行为。

        

  

4.Spring项目的创建和bean对象的存取

Spring项目的创建

1.创建maven项目

2.引入spring.xml依赖在resource里面


存入Bean对象

1.创建Bean对象

Bean对象就是一个普通的对象

2.将类注册到Spring当中(逻辑上的存储,不是物理上的。只是声明了一下)

首先需要在resource里面配置Spring的配置文件

只需要在resource里面创建一个文件然后把spring配置文件CV进去。

添加配置文件的目的就是让Spring启动的时候把bean带进去启动

3.获取并使用bean对象

1.得到Spring对象(Spring上下文对象,一个意思)

2. 从spring中取出bean对象

3.使用Bean

这个spring配置文件的目的就是告诉spring一些信息,比如说我写了这个 

就是告诉Spring你加载的时候不要忘记带上我User类 

xml就是记录一些要干的事情(记事本)是一个描述性的指导性文件

我们看到上面那个从spring中取出bean对象需要强转,那么如果getBean()里面的id不存在就会得到null,对null进行强转就会报错

 不存在users,对null进行了强转

那么引出来了,另一种找到bean对象的方法 

applicationContext.getBean("user",User.class) 第一个参数是id 第二个参数是类型(class) 这种是主推的获取bean对象的方法

        

5.ApplicationContext 和BeanFactory 的区别? 

不必认为ApplicationContext加载所有的类会消耗资源,实际上Spring在设置的时候是根据你的硬件资源来决定加载多少的,硬件越强,加载的越多.

资源够的情况下,直接饿汉模式一次性全部加载,一般认为也是这样的

BeanFactory是懒加载,ApplicationContext是饿加载。后者性能高,并且后者是前者的子类,包含父类的所有方法,此外还有一些更多的功能......

 

总结:BeanFactory是懒汉模式,它在调用getBean方法的时候才会实例这个对象。

ApplicationContext是饿汉模式,它在实例化的时候已经实例化所有的bean对象

6.更好的方法去存取和读取bean对象(注解)

MySQL三大核心:连表查询 索引 和事务

1.前置工作:配置扫描bean的路径

2.添加注解

 方法注解是将方法返回的对象存储到Spring当中(存到spring当中最小的是对象,不是方法)

五大类注解实现注解

1.Controller:控制器

2.Service :服务

3.Repository :仓库 repository

4.Component :组件

5.Configuration :配置 

方法注解实现类注解

将当前方法返回的对象存储到Spring当中

7.注解的具体实现

就是在

写入路径,然后在类或者方法上加注解  在注册个Spring上下文getBean即可

8.五大类注解

为什么要有五种类注解呢?

1.通过类注解可以了解当前类的用途(比如看到车牌陕A就知道这是西安的车)

2.功能有轻微的不同        

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

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

相关文章

Turtlebot4 和 Turtlebot3 和 Turtlebot2 ROS开源机器人说明及参数对比

一、TB4和TB3产品参数对比: 二、Turtlebot 3和Turtlebot 4的比较: 很多未接触过Turtlebot ROS机器人系列的用户,看到TB3和TB4两型号,就会很自然地认为TB4肯定比TB3高级,会问到TB4和TB3的区别,TB4进行了哪些…

k8s入门实战-Service

k8s入门实战-Service Service 和 Label Service 通过一组 Pod 路由通信。Service 是一种抽象,它允许 Pod 死亡并在 Kubernetes 中复制,而不会影响应用程序。在依赖的 Pod (如应用程序中的前端和后端组件)之间进行发现和路由是由Kubernetes Service 处理…

基于PHP的毕业设计管理系统的设计与实现(源码+配套论文)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据你想解决的问题,今天给…

“懒人”设计师必备的AI绘画软件,轻松实现建筑设计闭环

最近这两个月AI设计席卷整个设计圈 现如今手头上没一两个AI工具 你都不好意思说自己是新时代设计师 目前主流的AI绘画软件有midjourney、Stable Diffusion 基本上都能自动打造超高质量的渲染图纸 但即便如此,仍有不少“懒人”设计师打着怕麻烦的旗号 抵触AI画…

10+秒,AIGC炸出抖音小红书爆款!国产Fashion Diffusion颠覆时尚行业

AI进军时装秀,已经开始改造时尚行业了!国产FD大模型能够在10秒打造小红书爆款,T台走秀之光来了。 近日,西湖心辰和知衣科技联合推出了一款面向服装设计行业的AI大模型——Fashion Diffusion(以下简称FD模型&#xff09…

STM32F4新建寄存器版本MDK(Keil5)工程(正点原子)

1. 前期准备 1.1 下载 STM32Cube 固件包 1.1.1 ST官网搜索STM32Cube 首先进入ST官网,在搜索栏输入 STM32Cube 找到 STM32CubeF4 点击进去 在这里可以选择版本进行下载,这里我选择1.26.0(后续不使用官方的因为太冗杂了,这里只…

CSDN周赛回顾

CSDN周赛回顾 55期参赛体验近两期难度题型报告 参赛回顾CSDN 题库每日一练举报题库 最后的吐槽新题目相似度判定奖品 55期参赛体验 近两期难度 最近的题目有点难度了,老顾个人感觉至少达到了中级算法程度了,所以老顾的成绩变得稀碎。。。。 题型 再来…

Centos7 第一次正常连接, 隔天连接不上

记录现象: ping:www.baidu.com bash: ping:www.baidu.com: 未找到命令... 其他没有配置错的情况下 1. 原因 vi /etc/sysconfig/network-scripts/ifcfg-ens33 因为配置的静态链接所以 不需要NetworkManager 2. 解决方案 a. 关闭NetworkManager systemctl stop NetworkMa…

Docker 下 OnlyOffice 社区版安装

一、官方信息 官网地址:ONLYOFFICE - Secure Online Office | ONLYOFFICE 官方文档:Installing ONLYOFFICE Docs for Docker on a local server - ONLYOFFICE 二、介绍 ONLYOFFICE Docs是一个在线办公套件,包括文本、电子表格和演示文稿的…

小红书产品运营的书有哪些,爆款笔记的套路

随着小红书平台的规模逐渐扩大,已经不仅仅局限于单一的产业了,甚至于出现了多元化的一个现象。有关小红书运营的书的出版就是最好的证明。今天,就来和大家一起探讨一下小红书产品运营的书有哪些,爆款笔记的套路。 一、小红书运营的…

十四、进程信号

文章目录 一、什么是信号二、信号列表(一)查看系统定义的信号列表 三、信号处理四、信号产生(一)通过终端按键产生信号1.什么是核心转储?2.核心转储功能有什么用?3.core dump标志 (二&#xff0…

突围低代码下半场,未来悬而未决

低代码行业的整个赛道的未来依然蒙着一层充满未知的迷雾,最开始,低代码的目的是让不具有软件开发能力的用户也能根据自己的需要创建各种应用程序,由此也诞生了“IT革命”“抢走程序员饭碗”等噱头。 但噱头归噱头,程序员的饭碗并…

软件测试之自动化测试详解

文章目录 一.前言二.selenium介绍三.selenium的组成部分四.Selenium的环境搭建下载浏览器配置环境变量验证环境是否搭建成功 五.Selenium的API打开浏览器元素的定位操作测试对象等待操作信息获取鼠标操作键盘操作选项操作浏览器操作 六.需要用到的包 一.前言 自动化测试指软件…

软件接口测试有什么作用?接口测试有哪些好用工具?

一、软件接口测试有什么作用? 在软件开发过程中,接口是不可避免的一部分。接口测试是为了检查软件系统中不同模块之间的接口能否正常工作,以及模块之间的数据是否能够互相传输而进行的测试。接口测试的主要作用包括保证系统区域间的互通性、降低软件的…

树莓派 CM4 RTC 时间同步

需求:树莓派 接pcf85063a RTC模块进行时间同步,上层使用Qt 开发应用,进行时间的读取与设置 一,树莓派配置: /boot/config.ini 文件 修改 二,读取时间 直接读取系统时间 TIME TimerManager::getSystemLocalTime() {TIME t;time…

【高级语言程序设计(一)】第 7 章:指针

目录 一、指针和指针变量 (1)指针 (2)指针变量 (3)指针变量的定义 (4)指针变量的初始化 (5)指针变量的一般使用 ① 给指针变量赋值 ② 直接使用指针…

java基础知识快速入门总结

你好,世界! 1、源代码组织方式 Java程序由packageclass组成,package对应目录的相对路径,class对应文件,如 E:\Workspaces\MyEclipse 10\JavaStudy\src\com\happyframework\javastudy\hello\Hello.java 关于class有如…

中国人民大学与加拿大女王大学金融硕士——在职人员成长路上的选择与追求

在职人员职场充电,选择中国人民大学与加拿大女王大学金融硕士项目是正确的吗?其实每个选择都有各自的收获和代价,不能简单的用“优劣”、“好坏”去衡量。要看这个选择是否给给予你想要的,还要看这个选择的代价是否是你愿意承受并…

SpringBoot Controller层传入的参数进行解密

一、 应用场景 当和第三方应用对接系统的时候, 可能别人的参数加密方式和我们的不相同,那就需要和对方沟通好他们的接口参数是如何加密的,达成一致后才方便后续的工作开展。 二、示例说明 采用Springboot 项目开发,先在compone…

feat:使用企业微信企业微信JS-SDK的onMenuShareAppMessage()实现点击转发自定义分享内容(TypeScript)

背景:企业微信应用使用企业微信JS-SDK的分享接口实现分享样式自定义 原生: 需要实现成: 企业微信JS-SDK 是企业微信面向网页开发者提供的 基于企业微信内 的网页开发工具包。 通过使用企业微信JS-SDK,网页开发者 可借助企业微信…