当前位置: 首页 > news >正文

[黑马程序员SSM框架教程] Spring-11-setter注入

  • 思考:向一个类中传递数据要几种?
    • set方法
    • 构造方法
  • 思考:依赖注入描述了在容器中建立bean与bean之间依赖关系的过程,如果bean运行需要数字或字符呢
    • 引用类型
    • 简单类型(基本数据类型和字符串)
      注入方式(4种)
    • setter注入简单和引用类型(学过)
    • 构造器注入简单和引用类型
  • 代码演示:一个service绑定两个dao,以及其中一个dao中的数据插入方式(setter方法)
  • 代码结构
    在这里插入图片描述
    pom文件不变
    两个接口均为save()的方法体
    BookDaoImpl:不变
package com.dao.impl;import com.dao.BookDao;public class BookDaoImpl implements BookDao {public void save() {System.out.println("输出bookbean");}
}

StuDaoImpl:添加两个变量以及他们的set方法用于IOC装载数据

package com.dao.impl;import com.dao.StuDao;public class StuDaoImpl implements StuDao {private String name;private int number;
//set方法是为了让IOC转载数据public void setName(String name) {this.name = name;}public void setNumber(int number) {this.number = number;}
//打印输出public void save() {System.out.println(name+","+number);}
}

BookServiceImpl:多声明一个dao以及对应的set方法

package com.service.impl;import com.dao.BookDao;
import com.dao.StuDao;
import com.service.BookService;public class BookServiceImpl implements BookService {private BookDao bookDao;private StuDao stuDao;public void setBookDao(BookDao bookDao) {this.bookDao = bookDao;}public void setStuDao(StuDao stuDao) {this.stuDao = stuDao;}public void save() {bookDao.save();stuDao.save();}
}

applicationContext.xml:展示数据的装载方式以及一个service绑定两个dao

<?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"><bean id="bookDao" class="com.dao.impl.BookDaoImpl"></bean><bean id="stuDao" class="com.dao.impl.StuDaoImpl"><!--  对stuDao的实现类中的变量根据名字一一加载   --><property name="name" value="ljh"></property><property name="number" value="191106044"></property></bean><!--  同时加载两个dao  --><bean id="bookService" class="com.service.impl.BookServiceImpl"><property name="bookDao" ref="bookDao"></property><property name="stuDao" ref="stuDao"></property></bean>
</beans>

app启动文件不变

package com;import com.service.BookService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class app {public static void main(String[] args) {ApplicationContext apx = new ClassPathXmlApplicationContext("applicationContext.xml");BookService bookService = (BookService) apx.getBean("bookService");bookService.save();}
}

运行结果:
在这里插入图片描述
总结:可以进行简单的数据配置了,并且一个服务层绑定两个dao。注意在dao层有变量的时候要记得用set方法来让IOC容器找到机会注入数据,服务层声明的接口也一样要用set让IOC找到注入方法

相关文章:

[黑马程序员SSM框架教程] Spring-11-setter注入

思考&#xff1a;向一个类中传递数据要几种&#xff1f; set方法构造方法 思考&#xff1a;依赖注入描述了在容器中建立bean与bean之间依赖关系的过程&#xff0c;如果bean运行需要数字或字符呢 引用类型简单类型&#xff08;基本数据类型和字符串&#xff09; 注入方式&#x…...

Java多线程(一)--多线程基础知识

1. 为什么要使用并发编程提升多核CPU的利用率&#xff1a;一般来说一台主机上的会有多个CPU核心&#xff0c;我们可以创建多个线程&#xff0c;理论上讲操作系统可以将多个线程分配给不同的CPU去执行&#xff0c;每个CPU执行一个线程&#xff0c;这样就提高了CPU的使用效率&…...

AutoDock, AutoDock-vina等对接工具安装

AutoDock, AutoDock-vina等对接工具安装 AutoDock-GPU安装 下载地址&#xff1a; https://autodock.scripps.edu/downloads/ 将压缩包传送至安装目录中&#xff0c;并解压到当前路径 unzip AutoDock-GPU-develop.zip 找到服务器的cuda的路径&#xff0c;cuda的路径一般默认…...

MySQL常见面试题(2023年最新)

目录1.char和varchar的区别2.数据库的三大范式3.索引是什么4.索引的优点和缺点5.索引怎么设计(优化)6.索引的类型7.索引的数据类型8.索引为什么使用树结构9.二叉查找树、B树、B树10.为什么使用B树不用B树11.最左匹配原则12.MylSAM和InnoDB的区别13.什么是事务14.事务的四大特性…...

C# 泛型详解

C# 泛型详解1、泛型概述2、定义泛型3、泛型的特性4、泛型委托5、泛型的优点在 C# 中&#xff0c;泛型&#xff08;Generic&#xff09;是一种规范&#xff0c;它允许我们使用占位符来定义类和方法&#xff0c;编译器会在编译时将这些占位符替换为指定的类型&#xff0c;利用泛型…...

数据仓库相关术语

数据仓库数据集市事实维度级别数据清洗数据采集数据转换联机分析处理(OLAP OnlineAnalytical Processing )切片切块星型模式雪花模式粒度度量度量值口径指标 原子指标&#xff1a;派生指标衍生指标标签自然键持久键代理键退化维度下钻上卷T0与T1数据挖掘数据科学家总线架构总线…...

【IDEA】常用快捷键

代码补全 快捷键说明sout快速输出System.out.println();psvm快速输出public static void main(String[] args) {}Ctrl Alt Space代码补全 编辑类 快捷键说明Shift Enter向下键入一行&#xff0c;并将光标移到下一行的开头Ctrl Alt Enter当前行上方生成空行&#xff0c;并…...

【调试】sysRq按键使用方法

SysRq键简介 SysRq键是一个魔术案件&#xff0c;只要在内核没有完全卡死的情况下&#xff0c;内核都会相应SysRq 键的输入&#xff0c;使用这些组合键都可以搜集包括系统内存使用、CPU任务处理、进程运行状态等系统运行信息。 配置 内核配置选项中要使能CONFIG_MAGIC_SYSRQ选…...

Jenkins Pipeline 语法

官网 ## https://www.jenkins.io/doc/book/pipeline/ 参考文章 ## https://www.jianshu.com/p/215584419f3d 根据Jenkins官网Pipeline给出的解释&#xff0c; 流水线语法分为两种&#xff0c; 一种是声明式流水线&#xff08;Declarative Pipeline&#xff09;另一种是脚本…...

rust语言实现超级简单的杀毒软件,通过哈希扫描病毒。

以下是一个简单的rust语言程序&#xff0c;用于扫描病毒文件并使用哈希表进行比较。该程序可以扫描指定目录中的所有文件&#xff0c;并查找其中是否包含特定的病毒文件。程序可以通过计算文件哈希值并将其与已知的病毒哈希值进行比较来确定文件是否是病毒。注意&#xff0c;这…...

Git仓库中的常用命令

1.第一次使用Git软件前&#xff0c;告诉Git你是谁 git config --global user.name "自定义用户名" git config --global user.email "用户邮箱" 2.查看配置列表 git config --list 3.初始化一个Git仓库&#xff0c;用来管理当前项目 git i…...

arduino和stm32和51和TSM32的区别,树莓派和jetson nano的区别

本科时段接触过很多嵌入式的微处理器和微控制器&#xff0c;但对其使用场景和区别一直没有一个总结&#xff0c;这次收集了一些信息在这总结一下。 Arduino、STM32、51、TMS320和树莓派和jetson nano都是不同的嵌入式系统&#xff0c;它们之间有以下的区别&#xff1a; 开发难度…...

如何进行nginx的负载配置

示例&#xff1a;//多机负载策略&#xff1a;加权轮询(适用于服务器无状态,并且服务器硬件配置不均衡的场景)upstream setServ { server 47.100.110.58:80 weight1; server 47.100.110.59:8080 weight4; }location / {//转发到负载服务上proxy_pass http://setServ;}注意&#…...

从功能测试进阶自动化测试,熬夜7天整理出这一份3000字超全学习指南

一、为什么要学习自动化测试&#xff1f; 如果在前两年&#xff0c;可能10个测试员有6个都是做的功能测试&#xff0c;但随着测试技术的发展以及测试工作的深入&#xff0c;传统的手工测试已经无法满足多模块的测试需求&#xff0c;所以为了提高测试效率和测试质量&#xff0c…...

[NOIP2011 提高组] 铺地毯

[NOIP2011 提高组] 铺地毯 题目描述 为了准备一个独特的颁奖典礼&#xff0c;组织者在会场的一片矩形区域&#xff08;可看做是平面直角坐标系的第一象限&#xff09;铺上一些矩形地毯。一共有 n 张地毯&#xff0c;编号从 1 到 n。现在将这些地毯按照编号从小到大的顺序平行于…...

mac下ElasticSearch 集群搭建,使用Kibana配置和管理集群

Elasticsearch如果做集群的话Master节点至少三台服务器或者三个Master实例加入相同集群&#xff0c;三个Master节点最多只能故障一台Master节点&#xff0c;如果故障两个Master节点&#xff0c;Elasticsearch将无法组成集群.会报错&#xff0c;Kibana也无法启动&#xff0c;因为…...

【软件测试】自动化测试的追求,水土不服?看看资深测试咋说的......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 大部分测试初学者入…...

Mac mini 外接移动硬盘无法显示,磁盘工具装载报错显示 com apple diskmanagement disenter

使用“启动安全性实用工具”可确保 Mac 始终从您指定的启动磁盘以及合法的受信任操作系统启动。 如果您使用的是配备 Apple T2 安全芯片的 Mac&#xff0c;则“启动安全性实用工具”提供以下三项功能来帮助保护您的 Mac 免受未经授权的访问&#xff1a;固件密码保护、安全启动…...

【图像处理OpenCV(C++版)】——4.6 限制对比度的自适应直方图均衡化

前言&#xff1a; &#x1f60a;&#x1f60a;&#x1f60a;欢迎来到本博客&#x1f60a;&#x1f60a;&#x1f60a; &#x1f31f;&#x1f31f;&#x1f31f; 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义&#xff0c;适用于平时学习、工作快…...

设计模式--工厂模式

这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。在工厂模式中&#xff0c;我们在创建对象时不会对客户端暴露创建逻辑&#xff0c;并且是通过使用一个共同的接口来指向新创建的对象。   工厂模式主要使用了C的多态特性。将存在继承关系的类&a…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...