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

2-6.JAVA三大框架

Spring MVC

在这里插入图片描述
1、用户发送请求至前端控制器DispatcherServlet。
2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4、DispatcherServlet调用HandlerAdapter处理器适配器。
5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
6、Controller执行完成返回ModelAndView。
7、andlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
9、ViewReslover解析后返回具体View。
10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
11、DispatcherServlet响应用户。
在这里插入图片描述
在这里插入图片描述

SpringMVC常用的注解

@Controller 标识是一个Controller,Spring包扫描创建实例
@RequestMapping 请求后的映射路径
@PathVariable 标识接收单个参数
@ResponseBody 返回对象利用jackson工具类转换为json字符串
@RequestParam 参数名和请求参数名称不同时使用,可以设置默认值

Spring

目的:是为了解决企业应用程序开发复杂性而创建的,解耦
在这里插入图片描述

Spring框架两大核心:IoC和DI

概念
IoC(Inversion of Control)简单来说就是将对象Object的创建的权力及对象的生命周期的管理过程交由Spring框架来处理,从此在开发过程中不在需要关注对象的创建和生命周期的管理,而是在需要的时候由Spring框架提供,这个由Spring框架管理对象创建和生命周期的机制称之为控制反转。
在创建对象的过程中Spring可以依据对象的关系,自动把其它对象注入(无需创建对象,直接拿着使用)进来,这个过程称之为DI(Dependency Injection)依赖注入。
总结下Spring核心就干了两件事:
创建对象 就是指将对象的创建,对象的存储(map),对象的管理(依赖查找,依赖注入)交给了spring容器。
设置对象的关联关系

IoC的XML方式

new一个xml文件
在这里插入图片描述
ApplicationContext ac = new ClassPathXmlApplicationContext(“applicationContext.xml”);
Hello h1 = new Hello();
System.out.println(h1);
h1.hi();
//根据id获取bean
//Spring就是一个大工厂(容器)专门生成bean,bean就是对象
Hello hello = (Hello)ac.getBean(“Hello”);
System.out.println(hello);
hello.hi();

注解方式

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

MyBatis持久层框架

简化JDBC的开发
能够更好的完成ORM(对象关系映射)

内部组件结构图

在这里插入图片描述

配置xml文件

在这里插入图片描述

引入xml文件

在这里插入图片描述

测试

在这里插入图片描述
在sqlMapConfig.xml配置,在映射文件中直接写对象名称即可

< typeAliases >
< typeAlias type=“cn.mybatis.pojo.User” alias=“User” />
< /typeAliases >

动态传值

#{…}/${…} #更高效
select * from user where name={name}

动态SQL

< sql id=“cols”>
id,title,sell_point,price,num,barcode,image,cid,status,created,updated
< /sql>
< select id=“find” resultType=“Item” parameterType=“Item”>
SELECT < include refid=“cols”/> FROM tb_item
< /select >

if

< select id=“find” resultType=“Item” parameterType=“Item”>
SELECT < include refid=“cols”/> FROM tb_item where
< if test=“title != null”> title like #{title} < /if>
< if test=“sellPoint != null”>and sell_point like #{sellPoint}< /if>
< /select>

where

去掉条件中可能多余的and或者or:

< select id=“find” resultType=“Item” parameterType=“Item”>
SELECT < include refid=“cols”/> FROM tb_item
< where>
< if test=“title != null”> title like #{title} < /if>
< if test=“sellPoint != null”>and sell_point like #{sellPoint}< /if>
< /where>
< /select>

set

UPDATE teachers < set> < if test="tname != null">tname=#{tname},< /if> < if test="tsex != null">tsex=#{tsex},< /if> < if test="tbirthday != null">tbirthday=#{tbirthday},< /if> < if test="prof != null">prof=#{prof},< /if> < if test="depart != null">depart=#{depart}< /if> < /set> WHERE tno=#{tno} < /update> #### foreach 用于in子查询中的多个值的遍历: DELETE FROM teachers WHERE tno IN < foreach collection="ids" item="id" open="(" close=")" separator=","> #{id} < /foreach> < /delete> 调用代码: Map

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

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

阿里面试官力荐:Java面试必刷的17套一线大厂真题(含答案)

金三银四过去之后&#xff0c;回顾好多同学的面试经历&#xff0c;总结出了这份大厂面试真题的合集&#xff08;含答案&#xff09;&#xff0c;里面包含了Java中级到Java架构师的方方面面&#xff0c;其中大厂也包含了阿里巴巴&#xff0c;京东&#xff0c;百度&#xff0c;拼…...

Vue系列3——Vue计算属性、监视属性和生命周期

点赞多大胆&#xff0c;就有多大产&#xff01;开源促使进步&#xff0c;献给每一位技术使用者和爱好者&#xff01; 干货满满&#xff0c;摆好姿势&#xff0c;点赞发车 路漫漫其修远兮&#xff0c;吾将上下而求索 前言 本章节咱们来说一下Vue中两个非常重要的计算属性、监视…...

剑指 Offer 11. 旋转数组的最小数字

class Solution:def minArray(self, numbers: List[int]) -> int:left 0right len(numbers) - 1while left < right:# 取中点mid left (right - left) // 2# 如果 numbers[mid] > numbers[right] ,分界点落在 (mid, right]if numbers[mid] > numbers[right]:le…...

offer来了读书笔记-数据库三范式

面试中被问到了数据库三范式&#xff0c;只知道范式是数据库的设计规范&#xff0c;但是具体文档化的内容一下子却想不起来了&#xff0c;回顾平时的数据库表设计&#xff0c;其实也没有特别遵守范式&#xff0c;一切都是以方便开发为第一要素&#xff0c;这里对数据库的几个范…...

Linux 之 RAID 磁盘阵列

目录一、RAID磁盘阵列1.1 RAID磁盘阵列介绍1.2 常用的RAID级别1.2.1 RAID 0&#xff08;条带化存储&#xff09;1.2.2 RAID 1 (镜像存储)1.2.3 RAID5 磁盘列阵1.2.3 RAID6 磁盘列阵1.2.4 RAID 10&#xff08;先做镜像&#xff0c;再做条带&#xff09;1.2.5 RAID 01&#xff08…...

用 Python 进行 OCR 图像识别

数据采集就怕遇到图片,只能看不能复制怎么办。手动将文字提取出来,要耗费很大的工作量。 例如下图,某楼盘的一房一价表,怎么样发现单价低位的房子?光凭肉眼很难发现吧,能否让计算机进行文字的识别,然后再对这些数值型信息进行数据分析? 首先把图片中的单价提取出来, …...

5个实用提速深度学习模型的方法

您是否通过深度学习模型获得了良好的准确性&#xff0c;却发现推理时间不足以部署到生产环境中&#xff1f;您是否对如何优化模型的推理速度迷失了方向&#xff1f;那么这篇文章是给你的。众所周知&#xff0c;数据科学项目有一个奇特的特性&#xff0c;即项目者需要不断转换关…...

Linux系统中安装MySQL

文章目录提前须知Linux版本的MySQL下载卸载系统自带的数据库安装前准备解压MYSQL安装包创建MYSQL用户和用户组创建data文件夹修改MYSQL目录的归属用户准备MYSQL的配置⽂件正式开始安装MYSQL复制启动脚本到资源目录设置MySQL系统服务并开启⾃启启动MySQLD将MySQL的BIN目录加入PA…...

(更新时间)2021年6月3日 商城高并发秒杀系统(.NET Core版) 24-性能优化-nginx负载均衡优化

一、关于Nginx的负载均衡 在服务器集群中&#xff0c;Nginx起到一个代理服务器的角色&#xff08;即反向代理&#xff09;&#xff0c;为了避免单独一个服务器压力过大&#xff0c;将来自用户的请求转发给不同的服务器。 二、Nginx负载均衡策略 负载均衡用于从“upstream”模…...

webui自动化测试框架(2)——对基本操作进行封装common

接上篇&#xff1a;webui自动化测试框架&#xff08;1&#xff09;——框架介绍 封装driver.py: driver的初始化&#xff0c;查找元素&#xff0c;点击元素&#xff0c;输入内容&#xff0c;切换iframe&#xff0c;切换Windows等 1.类&#xff0c;构造函数init里面适配浏览器…...

Python学习日记3

今天换了一个视频资源学习&#xff0c;因为发现之前的教学视频讲的是python2&#xff0c;python2跟现在的python3差别很大&#xff0c;所有换了一个平台学习。 今天学习内容主要是把python重新从头看了一遍&#xff0c;重新学习了一下&#xff0c;补充了关系运算符的知识&…...

如何用Python快速爬取小姐姐的美图

最近有一个小伙伴拿一个python代码来问我为什么报错&#xff1f; 我仔细一看&#xff1a;是用来爬取某个网站妹子图的代码&#xff0c;结果发现那个网站已经404了&#xff0c;当然爬不到了。 其实很多初学者都喜欢拿网上的案例作为练习&#xff0c;但是我们的爬虫可能会对一些…...

CentOS8安装activeMQ

Active简介 ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件&#xff1b;由于ActiveMQ是一个纯Java程序&#xff0c;因此只需要操作系统支持Java虚拟机&#xff0c;ActiveMQ便可执行。 它解决了下面的问题&#xff1a; 做到系统解耦&#xff0c;当新的模块接进来时&am…...

leetcode刷题笔记 322.零钱兑换【中等】

1、广度优先搜索 int coinChange(vector<int>& coins, int amount) {if (amount 0)return 0;int n coins.size();vector<int> flags(amount);queue<int> q;q.push(amount);int count 0;while (!q.empty()) {count;int s q.size();for (int i 0; i …...

wordpress新创建文章404问题解决

修改httpd.conf 找到AllowOverride None修改为ALL...

[高维随机矩阵-2]

本系列主要按照《Introduction to random matrices theory and practice》进行&#xff0c;后续不再一一声明。每次使用新资料&#xff0c;都会在第一次使用时声明&#xff0c;后续也不再一一生明。 1. 本书目标读者是绝对的零基础人员。 2.随机矩阵理论random matirx theory…...

EasyExcel + Vue +Springboot 前后端联动,快捷导出Excel文件

预期效果&#xff1a;前后台联动&#xff0c;即点击“导出Excel”按钮后弹出下载框 导出效果&#xff1a; 1. 引入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.6</version>…...

优质ip代理怎么使用?

目前&#xff0c;大家上网越来越依赖于代理IP&#xff0c;代理IP的应用范畴正在逐步扩展。对于因特网这个巨大的网站空间&#xff0c;大家一样期待着这其中的标准和实际中的一样&#xff0c;因此也期待着自己的个人信息能在互联网上得到最大的利益维护。但是事实上由于互联网是…...

windows下python3.5+安装scrapy与创建项目

scrapy框架的安装与创建项目 scrapy安装&#xff1a; 相信第一次安装scrapy框架都会遇到各种安装不上的问题&#xff01;哈哈&#xff0c;别问我为啥知道&#xff01; 那我分享下我是如何安装scrapy框架的。 首先安装scrapy框架之前需要先安装几个依赖的库 依照顺序分别是 z…...

docker搭建LDAP统一用户认证

1. 安装LDAP docker run -dit \ -p 389:389 \ -v /data/ldap/ldap:/var/lib/ldap \ -v /data/ldap/slapd.d:/etc/ldap/slapd.d \ --name ldap \ --env LDAP_TLSfalse \ --env LDAP_ORGANISATION"pibigstar" \ --env LDAP_DOMAIN"pibigstar.com" \ --env LD…...

Centos操作操作系统下安装mariadb数据库管理系统

1.查看是否安装mariadb rpm -qa|grep maridb 这种情况表示已安装,直接执行第三步&#xff0c;反之若没有任何东西&#xff0c;则执行第二步 2.安装mariadb yum install mariadb-server yum install mariadb yum install mariadb-devel 3.启动mariadb service mariadb start 4.…...

.detach().cpu().numpy()该段代码的作用

detach(): 返回一个新的Tensor&#xff0c;但返回的结果是没有梯度的。 cpu():把gpu上的数据转到cpu上。 numpy():将tensor格式转为numpy。 如图所示&#xff1a; out logits.detach().cpu().numpy()...

VISSIM二次开发(Python)大作业总结2

VISSIM二次开发&#xff08;Python&#xff09;&大作业总结2 写在前面 前一小节已经概括了基本所有这次使用的二次开发的知识&#xff0c;在这一小节&#xff0c;我们主要介绍本文对.att文件的读取和绘图以及分析的工作。 在这一部分我们将展开对这一部分的介绍&#xf…...

Python学习日记3

今天换了一个视频资源学习&#xff0c;因为发现之前的教学视频讲的是python2&#xff0c;python2跟现在的python3差别很大&#xff0c;所有换了一个平台学习。 今天学习内容主要是把python重新从头看了一遍&#xff0c;重新学习了一下&#xff0c;补充了关系运算符的知识&…...

Android FileProvider 应用间共享媒体资源

先参考以下两个文档&#xff1a; 官网介绍&#xff1a;https://developer.android.google.cn/training/data-storage/use-cases TX 介绍&#xff1a;https://developers.weixin.qq.com/community/develop/doc/0004886026c1a8402d2a040ee5b401 然后基于以上的文档做一个例子介…...

express框架rmvp的使用

文章目录前言一、RMVP是什么&#xff1f;二、搭建基本服务1.构建服务器server.js基本组成2.router文件2.1、如何实现数据的获取GETPOSTPUTPATCHDELETE2.2 如果想要不区分请求方式,一律接收2.3 做rmvp的抽离,抽离controller三、渲染知识补充前端请求静态资源目录&#xff08;快&…...

【Android 11】使用Android Studio调试系统应用五):编译Settings 模块、解决编译错误

文章目录 1. 篇头语2. 系列文章3. 关联Git4. 完善Settings的依赖4. 1 Android.bp回顾4.2 提取出所需androndx支持库4.2.1 依赖列表(android.bp)4.2.2 转换后的列表(build.gradle)4.2 提取出所需aar库4.3 提取出依赖的本地jar包4.3.1 查找本地jar包的位置4.3.2 所需jar列表(ando…...

出现了,Mac也可以玩的简单扫雷(1.0版本)

总体思路: 1.随机生成雷区 2.将每一个方块旁边有几个雷的数量算出来 3.不断的输入想要翻的方块 4.判断是否输赢 5.改变此方块的状态 直接上代码: #include <iostream> #include <ctime> #include <chrono> //计时头文件 #include <string.h> …...

python数据类型的性能分析

python数据类型的性能分析 本文主要对Python两种内置数据类型list 和 dict上各种操作的大O数量级进行分析 list与dict的比较 list类型各种操作&#xff08;interface&#xff09;的实现方 法有很多&#xff0c;如何选择具体哪种实现方法&#xff1f; 总的方案就是&#xff0…...

DP求解 最大连续子数组和

DP求解 最大连续子数组和 题目描述&#xff1a;输入一个整型数组&#xff0c;数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 1. 暴力求解 思路分析&#xff1a;计算数组中每一个连续子数组的和&#xff0c;找出其中最大值 /*** 暴力求解* param nums…...

vue批量引入components组件

平时项目开发中引入组件都是用下面的方式来移入 import A from ./components/a.vue有时候某个页面功能很多&#xff0c;需要拆分成多个模块。 这个时候我们通常想到的都是下面的方式&#xff0c;几个还好&#xff0c;万一有几十个呢 废话不多说直接上干货&#xff01;&#xf…...

vue的组件 components

一、组件组成 组成&#xff1a;html Jscss 模板: <template><div > </div> </template> <script> export default {data(){}} </script> <style></style> 二、注册组件 1、注册全局组件 //先引入组件 import 组件名…...

components 异步加载组件

组件的懒加载 require: 运行时调用&#xff0c;理论上可以运用在代码的任何地方&#xff0c; import&#xff1a;编译时调用&#xff0c;必须放在文件开头 懒加载&#xff1a;component: resolve > require([’/view/index.vue’], resolve) 用require这种方式引入的时候&am…...

yii2的components详解

components顾名思义就是组件的意思&#xff0c;yii默认会根据components数组里面的键值去vendor\yiisoft\yii2\web 里面查找这个键值得类&#xff0c;如果没有找到&#xff0c;再根据这个键值得数组里面的Class属性去找这个类&#xff0c;如果这个键值得Class属性为空&#xff…...

Java关于访问控制权限修饰符

/*** 关于访问控制权限修饰符&#xff1a;* - public 公开的&#xff0c; 在任何位置都可以访问* - protected 受保护的&#xff0c;在同包下和子类中可以访问* - 缺省 仅在同包下可以访问* - private 私有的&a…...

快速搞懂Vue里面components和template

vue可以把内容变成组件化&#xff0c;然后提高复用性,那是怎样进行组件化&#xff0c;然后使用呢&#xff1f; 1.先写组件 2.引用组件 我们是单独写的一个js文件存放组件的所以它不是全局引用的&#xff0c;所以我就要把上面写好的registerForm组件引用过来&#xff0c;在这里…...

vue 组件(component、components)

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> <body&g...

vue中定义组件 components(局部 / 全局)

1. 基本信息 组件是对你 html 标签的一个拓展 组件里面的内容就是你模板的内容 组件分为全局组件和局部组件 对象当中定义的组件都是局部组件 2. 如何定义&#xff08;注册&#xff09;组件 定义组件需要使用components选项。components是一个对象&#xff0c;该对象的属性是…...

Vue2.5学习笔记(二)深入了解组件

文章目录1.组件使用的细节1.2 子标签内使用组件1.2 非根组件的data必须是一个函数1.3 在Vue中操作DOM&#xff1a;使用ref属性2.父子组件间传值2.1 父组件向子组件传值&#xff1a;通过属性传值2.2 子组件向父组件传值&#xff1a;通过事件this.$emit()2.3 组件参数校验2.4 非p…...

tf.Graph

参考tensorflow官方文档的介绍 1.定义 一个TensorFlow的运算&#xff0c;就是一个数据流的图。 一幅图中包含一些操作&#xff08;Operation&#xff09;对象&#xff0c;这些对象是计算节点&#xff08;计算单元&#xff09;。前面说过的Tensor对象&#xff0c;则是表示在不同…...

Shader Graph入门

目录 Shader Graph 简介 1. 什么是 Shader Graph 4. Shader Graph 界面 4.1 Shader Graph 窗口 4.2 Shader Graph 窗口操作方式 5. 使用 Shader Graph 编辑 Shader 通用步骤 6. Node 节点 6.1 节点概述 6.2 节点分类 7. 主堆栈 Master Stack 7.1 主堆栈 7.2 Context…...

Graph API

Graph API {#gapi} Introduction {#gapi_root_intro} OpenCV Graph API (or G-API) is a new OpenCV module targeted to make regular image processing fast and portable. These two goals are achieved by introducing a new graph-based model of execution. G-API is...

SwiftUI教程之如何在 Xcode 14 中创建曲线导航栏动画

让我们开始打开 ​​Xcode 14。我们将在 ContentView 中执行所有代码。首先,我要添加一些资产。 现在我们可以转到 ContentView 并开始编码了!💯 我们将要实现@Environment 协议、GeometryReader 和路径。 SwiftUI 中的@Environment 协议是什么? 使用Environment属性包…...

多功能手持读数仪VH03如何连接手机蓝牙

VH03 内置有基于 SPP&#xff08;Serial Port Profile&#xff09;协议的蓝牙接口&#xff0c;蓝牙名称为“VH03”。 使用任何支持 SPP 协议的蓝牙设备均可实现与 VH03 的连接。当蓝牙建立连接后&#xff0c;可向 VH03 发送指令进行交互&#xff08;前述 MODBUS、AABB、字符串…...

linux离线下载并安装amd64包

1、https://packages.ubuntu.com/ 官方网站搜索需要下载的安装包 2、sudo dpkg --install package_name.amd64 安装...

package architecture (amd64) does not match system (arm64)

rchitecture的问题&#xff0c;一个编译好的软件是与操作系统类型&#xff0c;cpu架构都有关的。这个architecture就是cpu的体系结构。 sudo dpkg --print-architecture该命令用于显示本机的architecture&#xff0c;我在不同的机器上得到的结果有&#xff1a;arm64或amd64 …...

Linux | ubuntu-16.04-server-amd64 的安装过程

1.选择语言–建议选成英文 2.选择第一项–安装Ubuntu16.04系统 3.选择语言–建议选择英文 4.地区设置–选择other到下一页 5.地区设置–选择Asia亚洲 6.地区设置–选择china中国地区 7.字符集设置–选择United States - en_US.UTF-8 8.键盘设置–建议选no&#xff0c;因为国内基…...

amd平台运行linux,在amd64平台上安装linux的经历

在amd64平台上安装linux的经历(2011-08-29 01:36:25)标签&#xff1a;杂谈在amd64平台上安装linux的经历在amd64平台上安装linux的经历硬件&#xff1a;Althon 64 30001G Mem120G HD软件&#xff1a;Windows XP 64-Bit 2003 (光盘安装)SuSE 9.1 for x86-64 (下载&#xff0c;硬…...

为什么64位计算机CPU架构叫amd64

x86 1978 年 6 月&#xff0c;Intel 发布了新款 16 位微处理器 8086&#xff0c;开创了一个全新时代&#xff0c;x86 架构由此诞生。x86 架构指的是特定微处理器执行的计算机语言指令集&#xff0c;定义了芯片的基本使用规则。 事实上&#xff0c;8086 处理器发布之初并没有获…...

数据库------E-R图和关系模型

1、请输出下面E-R图,并转换成关系模型 有实体 A B C A属性有a1(主键),a2,a3 B属性有b1(主键),b2,b3 C属性有c1(主键),c2,c3 A和B之间有X关系,B和C之间有Y关系,A和C之间有Z关系 一个A对应多个B,一个B对应多个A 一个A对应一个C,一个C对应一个A 一个B对应一个C,一个C对应多…...