学习SSM框架第四天

学习目标:

基于XML三层架构开发小实验


学习时间:

学习SSM框架第四天
周三下午

开始实验前需要理解的几个知识点:

0.🍖生成对象方法

a.使用静态工程类

b.实例工厂类

c.空构造方法(IOC)+所有属性的set方法(DI)或者通过带所以参数的构造方法

说明:IOC与DI的核心功能
IOC:配置Bean将Java类配置到Spring容器当中。
因为我们使用的是空构造方法,生成的属性全是空的。
所以需要
DI:选择将容器中适配的对象装配到🍖对象的属性中


1.🍖基于XML
使用到:Java类+配置文件
生成对象方法:可以用个第0点的所有方法,与第二基于注解不同的地方在于配置文件。

如何实现:


2.🍖基于注解(自动装配) 梦幻联动😉:一般使用注解,基本就要用到自动装配

使用到:Java类(【属性、方法、类上面添加注解】)+配置文件【相对于基于XML,这里的更为简洁】
生成对象方法:可以用个第0点的所有方法,与第一基于XML不同的地方在于配置文件,多了注解。

6大常用注解与解释
IOC(控制反转):将类配置到Container中
@Component 如果不清楚该组件是哪一层,直接使用@Component,比较简单。
可以替代@Repository@service@controller

@Repository@service@controller
默认对象的名(id)类名的首字母小写


DI(依赖注入):在容器中挑选最合适的对象,注入到IOC生成的对象当中。

@Resource (name=容器
@AutoWired 按照类型来注入(假如容器中有多个同类的对象,需要和@Qualified来联动,用来直接按名称来确定注入哪一个对象)


3.🍖

实验内容:

提示:这里可以添加要学的内容

1、 新建项目,导入相对于的jar包,创建包
在这里插入图片描述

2、 代码实操:
a.创建用户类

package cn.domain;public class User {}

b.创建接口

package cn.dao;import cn.domain.User;public interface UserDao {User login();}

c.重写接口里的方法

package cn.dao.imp;import cn.dao.UserDao;
import cn.domain.User;public class UserDaoImp  implements UserDao{@Overridepublic User login() {System.out.print("获取dataSource-连接数据库,访问数据....");return new User();}}

d.生成空构造方法和set方法

package cn.service.imp;import cn.dao.UserDao;
import cn.domain.User;
import cn.service.UserService;public class UserServiceImp implements UserService {private UserDao userDao;public UserServiceImp() {super();}@Overridepublic String toString() {return "UserServiceImp [userDao=" + userDao + "]";}public UserDao getUserDao() {return userDao;}public void setUserDao(UserDao userDao) {this.userDao = userDao;}@Overridepublic User login(String username, String password) {// TODO Auto-generated method stubreturn userDao.login();}}

3、 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"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- <bean id="scope" class="com.itheima.scope.Scope" scope="singleton"/> --><bean id = "userDao" class = "cn.dao.imp.UserDaoImp"></bean><bean id = "userService" class = "cn.service.imp.UserServiceImp"><property name = "userDao" ref="userDao"></property></bean><bean id = "userAction" class = "cn.web.UserAction"><property name = "userService" ref="userService"></property></bean><!--
基于XML三层架构
接口 类 构造方法+set 方法
配置文件bean 注入对应的对象--></beans>

4、 新建测试类测试

package cn;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.web.UserAction;public class Test3Layer {public static void main(String[] args) {// TODO Auto-generated method stubString file = "applicationContext.xml";ApplicationContext ac = new ClassPathXmlApplicationContext(file);UserAction action = ac.getBean("userAction",UserAction.class);action.checkUser("admin", "123");}}

实验结果如下:
在这里插入图片描述


学习产出:

一份实验报告

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

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

相关文章

Redis命令 - Sets命令组常用命令

Set集合&#xff0c;无序&#xff0c;一堆不重复值的组合。利用redis提供的set数据结构&#xff0c;可以存储一些集合性的数据。 使用场景&#xff1a;例如&#xff0c;实现如共同关注、共同喜好、二度好友等 1、SADD key member [member …] 向集合中添加一个或者多个成员 …

如何在simulink中怎么获取足端轨迹代码解释?

在使用Java代码框架统计用户获取足端轨迹时&#xff0c;我们可以使用Simulink的外部接口功能和Java的网络编程来实现。 首先&#xff0c;我们需要在Simulink中配置外部接口以便与Java进行通信。可以使用Simulink中的TCP/IP或UDP模块来实现网络通信。假设我们选择TCP/IP模块。 …

#AIGC##VDB# 【一篇入门VDB】矢量数据库-从技术介绍到选型方向

文章概览&#xff1a; 这篇文章深入探讨了矢量数据库的基本概念、工作原理以及在人工智能领域的广泛应用。 首先&#xff0c;文章解释了矢量的数学和物理学概念&#xff0c;然后引入了矢量在数据科学和机器学习中的应用。随后&#xff0c;详细介绍了什么是矢量数据库&#xff0…

能见度传感器有什么特点-交通安全的保障

能见度传感器是一种用于测量能见度的设备&#xff0c;通常安装在高速公路、城市道路、桥梁等交通路段&#xff0c;以及隧道、停车场等封闭空间。这种传感器能够实时监测能见度值&#xff0c;并通过数据传输系统将数据发送到控制中心或相关管理部门&#xff0c;为交通安全管理、…

C++结合OpenCV:图像的加法运算

一、图像运算 针对图像的加法运算、位运算都是比较基础的运算。但是&#xff0c;很多复杂的图像处理功能正是借助这些基础的运算来完成的。所以&#xff0c;牢固掌握基础操作&#xff0c;对于更好地实现图像处理是非常有帮助的。本章简单介绍了加法运算、位运算&#xff0c;并…

自学Python笔记总结(更新中……)

自学Python笔记总结 网址数据类型类型查看类型&#xff0c;使用type内置类标识符 输出输入语句format函数的语法及用法数据类型的转换运算符算数运算符赋值运算符的特殊场景拆包 比较运算符逻辑运算符 与 短路位运算符运算符优先级 程序流程控制分支语句pass 占位 循环语句 whi…

DFT新手入门:VASPKIT生成模版INCAR

新手学习VASP计算时一般需要自行准备好VASP所需要的四个输入文件:INCAR POSCAR KPOINTS POTCAR。 其中POSCAR为计算任务的模型文件&#xff0c;POTCAR为与POSCAR中元素所对应的赝势&#xff0c;可根据要求选取。 KPOINTS的设置需要根据精度确定&#xff0c;一般通过vaspkit的1…

实现STM32烧写程序-(4) BIN文件结构

简介 BIN文件是一种二进制文件格式&#xff0c;用于存储和传输二进制数据。它包含了计算机或设备可以直接读取和执行的原始二进制数据。BIN文件通常用于存储程序、固件或其他二进制数据&#xff0c;例如嵌入式系统的固件、操作系统的映像文件等。 BIN文件的起源可以追溯到计算机…

获取本地IP网卡信息

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、获取本地IP&#xff0c;以及全部网卡信息总结 前言 一、获取本地IP&#xff0c;以及全部网卡信息 const os require(node:os) function getIPAdress(){/…

node-red实现ModBus-RTU 通信协议(RS485信号输出)的数据交互

node-red实现485型 - 温湿度变表数据转换 一、介绍二、 通讯协议2.1 通讯基本参数2.2 数据帧格式定义2.3 寄存器地址2.4 通讯协议示例以及解释 三、 node-red实现数据交互3.1 node-red读取数据3.2 node-red写回数据 本文参考《86 壳液晶温湿度变送器使用说明书&#xff08;485 …

html5+css3+bootstrap+js 新闻网页

新闻网页练习打卡&#xff01; 一、首页 二、社会 三、财经 四、视频展示 简易新闻网站&#xff08;期末作业&#xff09;

Cuda与Torch配置(For 集群服务器)超详细步骤

每次配置模型环境&#xff0c;无论是在windows&#xff0c;linux&#xff0c;集群服务器上都会在这里卡一段&#xff0c;为了未来配置方便&#xff0c;记录下配置注意事项 配置cuda和torch主要有几个要点&#xff0c;分别是&#xff1a; 显卡与驱动&#xff08;NIVIADA drive…

一刀切转为精细化,门店如何进行「体检式」巡查(一)

在品牌经营过程中&#xff0c;无论是直营店还是加盟商&#xff0c;都需要做好统一的品牌门店管理。比如总部对门店环境卫生、员工服务质量、货品质量等进行定期或不定期的巡检抽查&#xff0c;以确保各门店保持统一标准。 以往&#xff0c;传统巡店只能通过有纸质表格或微信汇报…

前端react入门day03-react获取dom与组件通信

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 受控表单绑定 React中获取DOM 组件通信 父传子 父传子-基础实现 父传子-props说明 父传子 - 特殊的…

FFmpeg之AVFilter

文章目录 一、概述二、重要结构体2.1、AVFilterGraph2.2、AVFilter2.3、AVFilterContext 三、流程梳理3.1、FFmpeg AVFilter 使用整体流程3.2、过滤器构建流程3.2.1、分配AVFilterGraph3.2.2、创建过滤器源3.2.3、创建接收过滤器3.2.4、生成源和接收过滤器的输入输出3.2.5、通过…

Java开发+Intellij-idea+Maven+工程构建

Java开发Intellij-ideaMaven工程构建 Intellij-idea是一款流行的Java集成开发环境&#xff0c;它支持Maven作为项目管理和构建工具。Maven可以帮助开发者自动下载项目依赖的jar包&#xff0c;执行编译、测试、打包等生命周期任务。本资源将介绍如何在Intellij-idea中创建、导入…

精品基于Uniapp+springboot车辆充电桩缴费管理系统管理系统App-地图

《[含文档PPT源码等]精品基于Uniappspringboot充电桩管理系统App》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;Java 后台框架&#xff1a;springboot、ssm 安…

element + table 每两行对比相同值列合并

在开始之前先要明确几个概念&#xff1a; 保持不变&#xff1a;{ rowspan: 1, colspan: 1 } 删除一个单元格&#xff1a;{ rowspan: 0, colspan: 0 } 合并一个单元格&#xff1a;{ rowspan: 2, colspan: 1 } <template><div><el-table:data"tableData&quo…

Appium 自动化测试

1.Appium介绍 1&#xff0c;appium是开源的移动端自动化测试框架&#xff1b; 2&#xff0c;appium可以测试原生的、混合的、以及移动端的web项目&#xff1b; 3&#xff0c;appium可以测试ios&#xff0c;android应用&#xff08;当然了&#xff0c;还有firefoxos&#xff09;…

web自动化实现登录的几种方式

目录 前言 一、pythonunittest框架实现登录功能 二、pythonselenium实现登录功能 三、pythonrequests库实现登录功能 前言 今天主要想介绍python语言不同的自动化测试框架的结合方式来模拟登录功能。想了解自动化测试框架的同学不要错过哦&#xff01; 一、pythonunittest框…