动态网站的滚动图片怎么做/西安互联网推广公司

动态网站的滚动图片怎么做,西安互联网推广公司,南京发布最新通报,北京网站开发建设目录 1.实战篇第一课 我们将会在本次实战中学习到哪些知识点? 开发模式和环境搭建: 注册接口 1.Lombok 2.开发流程 1.controller层,这个层会指明访问路径和要执行的逻辑: 2.我们把返回结果根据接口文档包装成一个类result&a…

目录

1.实战篇第一课

我们将会在本次实战中学习到哪些知识点?

 开发模式和环境搭建:

注册接口

1.Lombok

2.开发流程

1.controller层,这个层会指明访问路径和要执行的逻辑:

2.我们把返回结果根据接口文档包装成一个类result,它有code代表成败,message代表返回信息,data代表响应数据

3.service接口和service实现类,实现controller层调用的方法,并且对数据进行加密:

4.Mapper层,使用@select,@Insert等注释在Mapper层实现对数据库的操作:

5.至此三层写完,实现了注册的流程,我们可以使用postman测试api是否可用(测试用的JSON文件另外提供):

2.学习过程中的疑惑:

1.@Controller和@RestController有啥区别

@Controller

@RestController

总结

示例代码

使用 @Controller

使用 @RestController

2. 什么是RESTful web 服务

RESTful Web 服务的特点:

RESTful Web 服务的操作:

示例:

3.@RequestMapping 或 @GetMapping、@PostMapping的区别

@RequestMapping

@GetMapping

@PostMapping

示例

使用 @RequestMapping

使用 @GetMapping 和 @PostMapping

注意事项

4.$和#在Spring中的区别

# 符号

$ 符号

示例

使用 # 符号

使用 $ 符号

总结


1.实战篇第一课

我们将会在本次实战中学习到哪些知识点?

 开发模式和环境搭建:

 步骤:

 1.在xml文件中引入启动依赖,如web、mybatis、MySQL:

2.在yml文件中配置mybatis的参数:

3.创建项目结构和实体类:

4.配置启动类,添加@SpringBootApplication和SpringApplication.run()方法:

注册接口

1.Lombok

为了避免手动编写大量的 getter 和 setter 方法以及构造方法,你可以使用 Lombok 库。Lombok 是一个 Java 库,可以通过注解自动生成 getter、setter、构造方法等。

例如,在类上添加 @Data 注解,Lombok 会自动为类中的所有字段生成 getter 和 setter 方法,以及一个全参构造方法和一个无参构造方法:

@Data
public class User {private Integer id;//主键IDprivate String username;//用户名private String password;//密码private String nickname;//昵称private String email;//邮箱private String userPic;//用户头像地址private LocalDateTime createTime;//创建时间private LocalDateTime updateTime;//更新时间}

它在编译后的class里面会包含getset方法以及equals,toString等方法:

lombok还有这两个注释,可以让你不用手动去写构造方法。

2.开发流程

 对于一个注册模块,思考他的三层架构长什么样?

1.controller层,这个层会指明访问路径和要执行的逻辑:

2.我们把返回结果根据接口文档包装成一个类result,它有code代表成败,message代表返回信息,data代表响应数据

3.service接口和service实现类,实现controller层调用的方法,并且对数据进行加密:

工具类md5,这是一个加密工具类,调用里面的getMd5String()方法可以返回一个加密好的密码

4.Mapper层,使用@select,@Insert等注释在Mapper层实现对数据库的操作:

5.至此三层写完,实现了注册的流程,我们可以使用postman测试api是否可用(测试用的JSON文件另外提供):

测试成功!

2.学习过程中的疑惑:

1.@Controller和@RestController有啥区别

在 Spring MVC 框架中,@Controller@RestController 都是用来创建控制器的注解注解,但它们有一些关键的区别:

@Controller

  • @Controller 是一个通用的控制器注解注解,它主要用于处理传统的 MVC 模型,其中控制器只负责处理请求,返回视图(页面)和模型(数据)。

  • 使用 @Controller 时,返回的数据通常通过视图解析器(ViewResolver)解析为具体的页面。

  • 它通常与 @RequestMapping@GetMapping@PostMapping 等注解一起使用来映射请求路径。

  • @Controller 控制器通常返回一个 ModelAndView 对象,或者返回一个视图名称让视图解析器决定如何渲染视图。

@RestController

  • @RestController@Controller@ResponseBody 注解的结合体,用于创建 RESTful web 服务。

  • 使用 @RestController 时,Spring MVC 会自动将返回的对象序列化为 JSON 格式(默认使用 Jackson 库),并直接写入 HTTP 响应体中,而不是返回一个视图名称。

  • @RestController 通常用于构建 API 接口,它使得编写 RESTful 服务变得更加简单。

  • 它也与 @RequestMapping@GetMapping@PostMapping 等注解一起使用来映射请求路径。

总结

  • 如果你需要返回一个视图(如 JSP 页面),使用 @Controller

  • 如果你需要返回 JSON 或 XML 格式的数据,使用 @RestController

示例代码

使用 @Controller

java复制

@Controller
public class MyController {@RequestMapping("/hello")public String sayHello(Model model) {model.addAttribute("message", "Hello, World!");return "hello"; // 返回视图名称}
}
使用 @RestController

java复制

@RestController
public class MyRestController {@GetMapping("/hello")public Map<String, Object> sayHello() {Map<String, Object> map = new HashMap<>();map.put("message", "Hello, World!");return map; // 直接返回 JSON 数据}
}

2. 什么是RESTful web 服务

RESTful Web 服务是一种基于表现层状态转移(Representational State Transfer,简称 REST)原则构建的网络应用程序接口(API)。REST 是由 Roy Fielding 在 2000 年提出的,它是一种设计风格,用于设计网络应用程序,以便它们可以通过标准的 HTTP 方法访问和操作网络资源。

RESTful Web 服务的特点:

  1. 无状态(Stateless): 每个请求从客户端到服务器必须包含所有必要的信息来理解和处理请求,服务器不会存储任何会话信息。

  2. 统一接口(Uniform Interface): 通过统一和预定义的接口简化和标准化架构之间的交互。RESTful API 通常使用标准的 HTTP 方法(如 GET、POST、PUT、DELETE)来操作资源。

  3. 可缓存(Cacheable): 响应可以被标记为可缓存或不可缓存。这可以减少网络通信量,提高响应速度。

  4. 分层系统(Layered System): 客户端不能通常不能直接知道它是否正在与中间层(如代理服务器、网关或应用服务器)通信,还是直接与最终服务器通信。

  5. 按需代码(Code on Demand,可选): 服务器可以按需向客户端发送代码(如 JavaScript),以扩展客户端的功能。

  6. 超文本传输协议(HTTP): RESTful Web 服务通常使用 HTTP 协议来传输数据,这使得它们可以在 Web 浏览器中直接访问。

RESTful Web 服务的操作:

  • GET:请求从服务器检索特定资源。

  • POST:在服务器上创建一个新的资源。

  • PUT:更新服务器上的现有资源或创建一个新资源。

  • DELETE:从服务器删除特定资源。

示例:

假设有一个 RESTful Web 服务用于管理博客文章:

  • GET /articles:检索所有文章的列表。

  • GET /articles/{id}:检索特定 ID 的文章。

  • POST /articles:创建一篇新文章。

  • PUT /articles/{id}:更新特定 ID 的文章。

  • DELETE /articles/{id}:删除特定 ID 的文章。

RESTful Web 服务因其简单性、可扩展性和易于维护性而在现代 Web 开发中非常流行。它们使得不同应用程序和服务之间的交互变得更加容易,并且可以轻松地与各种客户端(包括浏览器、移动应用和第三方服务)集成。

3.@RequestMapping 或 @GetMapping、@PostMapping的区别

在 Spring MVC 框架中,@RequestMapping@GetMapping@PostMapping 是用于映射 HTTP 请求到处理器方法上的注解(annotations)。这些注解帮助定义了 URL 路径和 HTTP 方法之间的对应关系。

@RequestMapping

@RequestMapping 是一个通用的请求映射注解,它可以映射到任何 HTTP 方法。它是最灵活的映射注解,可以指定路径、方法、参数等。@RequestMapping 可以用于类或方法上。

  • 用于方法上:映射特定的 HTTP 请求到一个处理方法。

  • 用于类上:为类中的所有方法提供一个共同的基础请求路径。

@GetMapping

@GetMapping@RequestMapping 的一个特化,专门用于映射 HTTP GET 请求。它简化了只处理 GET 请求的方法的定义。

@PostMapping

@PostMapping 也是 @RequestMapping 的一个特化,专门用于映射 HTTP POST 请求。它用于处理需要通过 POST 方法提交数据的场景。

示例

使用 @RequestMapping

java复制

@Controller
public class MyController {@RequestMapping(value = "/users", method = RequestMethod.GET)public String listUsers(Model model) {// 获取用户列表并添加到模型中model.addAttribute("users", userService.findAll());return "userList"; // 返回视图名称}@RequestMapping(value = "/users", method = RequestMethod.POST)public String addUser(@ModelAttribute("user") User user) {// 保存新用户userService.save(user);return "redirect:/users"; // 重定向到用户列表}
}
使用 @GetMapping 和 @PostMapping

java复制

@RestController
public class MyRestController {@GetMapping("/users")public List<User> listUsers() {// 获取用户列表并返回return userService.findAll();}@PostMapping("/users")public User addUser(@RequestBody User user) {// 保存新用户并返回return userService.save(user);}
}

注意事项

  • 返回类型@Controller 通常返回视图名称,而 @RestController 返回数据(如 JSON)。

  • 请求体@RequestBody 注解用于将 HTTP 请求体绑定到方法参数上,通常与 @PostMapping 一起使用。

  • 路径变量:可以使用 {variableName} 语法在路径中定义变量,例如 @RequestMapping("/users/{userId}")

这些注解使得在 Spring MVC 中处理不同类型的 HTTP 请求变得更加简单和直观。通过合理使用这些注解,可以清晰地定义应用程序的 API 接口。

4.$和#在Spring中的区别

在 Spring 框架中,$# 这两个符号在不同的上下文中有不同的用途,尤其是在 Spring Expression Language(SpEL)和 Bean 属性注入中。

# 符号

在 Spring 中,# 符号通常与 SpEL(Spring Expression Language)一起使用。SpEL 是一种功能强大的表达式语言,它支持在运行时查询和操作对象图。

  • 属性访问:使用 # 可以访问对象的属性。例如,#user.name 可以获取 user 对象的 name 属性。

  • 方法调用:使用 # 可以调用对象的方法。例如,#math.max(1, 2) 可以调用 math 对象的 max 方法。

  • 数组和集合访问:使用 # 可以访问数组和集合的元素。例如,#users[0] 可以获取 users 集合的第一个元素。

$ 符号

在 Spring 中,$ 符号通常用于属性占位符,它允许你引用配置文件中的值。

  • 配置文件引用:使用 $ 可以引用外部配置文件(如 application.propertiesapplication.yml)中的值。例如,${app.name} 可以引用配置文件中的 app.name 属性。

  • 环境变量引用:使用 $ 也可以引用环境变量。例如,${ENV_VAR} 可以引用名为 ENV_VAR 的环境变量。

示例

使用 # 符号

假设你有一个 User 类,并且想要在 Spring 中通过 SpEL 获取 User 对象的 name 属性:

java复制

public class User {private String name;// getters and setters
}@Autowired
private User user;public String getUserName() {return user.getName(); // Java 代码直接访问// 或者使用 SpEL// return #user.name;
}
使用 $ 符号

假设你的 application.properties 文件中有以下配置:

properties复制

app.name=MyApp

你可以在 Spring 应用中这样引用它:

java复制

@Value("${app.name}")
private String appName;public void printAppName() {System.out.println(appName); // 输出:MyApp
}

总结

  • # 符号用于 SpEL 中,用于对象图的查询和操作。

  • $ 符号用于属性占位符,用于引用配置文件或环境变量中的值。

这两个符号在 Spring 框架中扮演着不同的角色,正确使用它们可以提高代码的灵活性和可维护性。

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

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

相关文章

全新升级 | Built For You Spring ‘25 发布,Fin 智能客服实现新突破!

图像识别、语音交互、任务自动化&#xff0c;立即体验智能客服蜕变&#xff01; 上周&#xff0c;Intercom 举办了 Built For You Spring 25 发布会&#xff0c;正式揭晓了 AI Agent Fin 的一系列令人振奋的更新。Fin 正在以前所未有的速度革新客户支持模式——它已经成功解决了…

需求导向的K8S网络原理分析:Kube-proxy、Flannel、Calico的地位和作用

最近发现自己似乎从来没学明白过Kubernetes网络通信方案&#xff0c;特开一贴复习总结一下。 在k8s中&#xff0c;每个 Pod 都拥有一个独立的 IP 地址&#xff0c;而且假定所有 Pod 都在一个可以直接连通的、扁平的网络空间中。所以不管它们是否允许在同一个 Node&#xff08;宿…

Vulnhub:Digitalword.local: FALL靶机渗透

将靶机按照图中连接方式打开&#xff0c;fall在virtualBox中打开 信息收集 扫描得ip arp-scan -l 扫描端口 nmap -A -T4 -sV -p- 扫描目录 gobuster dir -u http://192.168.117.160 -x php,txt,html -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt 一个一个…

4、网工软考—VLAN配置—hybird配置

1、实验环境搭建&#xff1a; 2、实验过程 SW1&#xff1a; 先创建vlan2和vlan3 [Huawei-Ethernet0/0/2]port link-type hybrid //hybird端口 [Huawei-Ethernet0/0/2]port hybrid pvid vlan 2 [Huawei-Ethernet0/0/2]port hybrid untagged vlan 10 //撕掉vlan10的标签 …

2025年数智化电商产业带发展研究报告260+份汇总解读|附PDF下载

原文链接&#xff1a;https://tecdat.cn/?p41286 在数字技术与实体经济深度融合的当下&#xff0c;数智化产业带正成为经济发展的关键引擎。 从云南鲜花产业带的直播热销到深圳3C数码的智能转型&#xff0c;数智化正重塑产业格局。2023年数字经济规模突破53.9万亿元&#xff…

【深度学习】【目标检测】【OnnxRuntime】【C++】YOLOV5模型部署

【深度学习】【目标检测】【OnnxRuntime】【C】YOLOV5模型部署 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】【目标检测】【OnnxRuntime】【C】YOLOV5模型部署前言Windows平台搭建依赖环境模型转换--pytorch转onnxONNXRuntime推…

线程同步——读写锁

Linux——线程同步 读写锁 目录 一、基本概念 1.1 读写锁的基本概念 1.2 读写锁的优点 1.3 读写锁的实现 1.4 代码实现 一、基本概念 线程同步中的读写锁&#xff08;Read-Write Lock&#xff09;&#xff0c;也常被称为共享-独占锁&#xff08;Shared-Exclusive Lock&a…

全面解析PRN文件:从原理到可视化的完整指南 【标签打印】

文章目录 一、PRN文件概述二、PRN文件结构深度解析2.1 文件头配置2.1 绘图指令详解2.3 文本处理方案2.4 条码/二维码实现2.5 RFID指令集 三、实战&#xff1a;PRN可视化工具开发3.1 基于Canvas的实现方案3.2 坐标转换关键算法 四、常见问题解决方案4.1 内容偏移问题4.2 中文乱码…

C++:函数(通识版)

一、函数的基础 1.什么是函数&#xff1f;&#xff08;独立的功能单位&#xff09; 函数是C中封装代码逻辑的基本单元&#xff0c;用于执行特定任务。 作用&#xff1a;代码复用、模块化、提高可读性。 2、函数的基本结构 返回类型 函数名(参数列表) {// 函数体return 返回值…

sql注入语句学习

说明 注入漏洞作为登顶过web十大漏洞多次的漏洞&#xff0c;危害性不言而喻&#xff0c;其中sql注入就是注入漏洞常用的手段。其形成的原因是由于web在接收传参数据时&#xff0c;对数据的过滤不够严格&#xff0c;将其带入到数据库查询中&#xff0c;导致用户可以通过传参一些…

云钥科技多通道工业相机解决方案设计

项目应用场景分析与需求挑战 1. 应用场景 ‌目标领域‌&#xff1a;工业自动化检测&#xff08;如精密零件尺寸测量、表面缺陷检测&#xff09;、3D立体视觉&#xff08;如物体建模、位姿识别&#xff09;、动态运动追踪&#xff08;如高速生产线监控&#xff09;等。 ‌核心…

puppeteer+express服务端导出页面为pdf

以下是开发步骤&#xff1a; 1、创建目录 puppeteer_demo 目录&#xff0c;打开目录 初始化项目&#xff08;命令为&#xff1a;npm init -y&#xff09; 页面如&#xff1a; 初始化后&#xff0c;项目目录会出现 package.json 文件 2、安装 puppeteer &#xff0c;使用命令&a…

西域平台商品详情接口设计与实现‌

接口描述&#xff1a; 该接口用于获取西域平台中指定商品的详细信息&#xff0c;包括商品名称、价格、库存、描述、图片等。 点击获取key和secret 接口地址&#xff1a; GET /api/product/detail 请求参数&#xff1a; 参数名 类型 是否必填 描述 productId st…

项目-苍穹外卖(十五) Apache ECharts+数据统计

一、介绍 二、营业额统计 需求分析和设计&#xff1a; Controller: Service: /*** 营业额统计* param begindate* param enddate* return* */Overridepublic TurnoverReportVO turnoverStatistics(LocalDate begindate, LocalDate enddate) {//创建时间集合List<LocalDate&…

体育比分网站开发避坑指南:如何选择靠谱的数据服务商?(10年行业经验总结,避免踩坑!)

作为一家专业的体育比分数据服务商&#xff0c;我们接触过大量客户&#xff0c;发现很多人在开发体育比分网站或接入数据API时&#xff0c;由于选择不靠谱的服务商&#xff0c;导致项目延期、数据延迟、售后无响应、隐性收费等问题&#xff0c;最终影响运营效果&#xff0c;甚至…

离心萃取机在毕赤酵母萃取中的应用

在生物医药领域&#xff0c;毕赤酵母因其高效表达重组蛋白的能力&#xff0c;成为基因工程的“明星宿主”。然而&#xff0c;如何从复杂的发酵体系中高效提取目标产物&#xff0c;一直是行业痛点。离心萃取机的出现&#xff0c;凭借其高速分离、精准提纯的特性&#xff0c;正在…

CNN和LSTM的计算复杂度分析

前言&#xff1a;今天做边缘计算的时候&#xff0c;在评估模型性能的时候发现NPU计算的大部分时间都花在了LSTM上&#xff0c;使用的是Bi-LSTM&#xff08;耗时占比98%&#xff09;&#xff0c;CNN耗时很短&#xff0c;不禁会思考为什么LSTM会花费这么久时间。 首先声明一下实…

StarRocks 中 CURRENT_TIMESTAMP 和 current_time 分区过滤问题

背景 本文基于Starrocks 3.3.5 最近在进行Starrocks 跑数据的时候&#xff0c;发现了一个SQL 扫描了所有分区的数据&#xff0c;简化后的SQL如下&#xff1a; select date_created from tableA where date_createddate_format(current_time(), %Y-%m-%d %H:%i:%S) limit 20其…

从物理学到机器学习:用技术手段量化分析职场被动攻击行为

从物理学到机器学习:用技术手段量化分析职场被动攻击行为 1. 从物理系统视角看团队协作 1.1 团队系统的能量模型 在热力学系统中,系统的总能量由动能和势能组成。类比到团队协作中,我们可以建立如下模型: class TeamEnergy:def __init__(self, members):self.kinetic = …

Pytroch搭建全连接神经网络识别MNIST手写数字数据集

编写步骤 之前已经记录国多次的编写步骤了&#xff0c;无需多言。 &#xff08;1&#xff09;准备数据集 这里我们使用MNIST数据集&#xff0c;有官方下载渠道。我们直接使用torchvison里面提供的数据读取功能包就行。如果不使用这个&#xff0c;自己像这样子构建也一样。 # …