《Spring Boot:快速构建应用的利器》

一、Spring Boot 的崛起与优势

(四)丰富的生态支持

Spring Boot 拥有强大的生态系统,这是它在 Java 开发领域中占据重要地位的关键因素之一。

Spring Cloud 是 Spring Boot 生态中的重要组成部分,它为构建分布式系统的微服务架构提供了一系列工具和框架。通过 Spring Cloud,开发人员可以轻松实现服务注册与发现、负载均衡、断路器等功能,极大地提高了系统的可扩展性和可靠性。

Spring Data 则简化和改进了与不同数据存储的交互。无论是关系型数据库如 MySQL、PostgreSQL,还是非关系型数据库如 MongoDB、Redis 等,Spring Data 都提供了简洁的接口和强大的功能,让数据访问变得更加高效和便捷。

Spring Security 为应用程序提供了全面的安全保护,包括身份验证、授权、攻击防御等。在当今网络安全形势日益严峻的情况下,Spring Security 成为了保障应用安全的重要利器。

Spring Batch 提供了一个轻量级的批处理框架,简化了批处理应用程序的开发和部署。对于需要处理大量数据的业务场景,Spring Batch 能够高效地完成任务。

Spring Integration 构建基于消息的应用程序,实现系统之间的异步通信和集成。

Spring Boot Admin 提供了一组工具和界面,用于监视和管理 Spring Boot 应用程序。开发人员可以通过直观的界面了解应用的运行状况、系统指标等信息,方便进行运维管理。

Spring Boot Actuator 提供有关应用程序运行状况的详细信息,包括系统指标、日志和运行时状态等。这有助于开发人员及时发现和解决问题,提高应用的稳定性。

Spring Boot Test 为编写和运行 Spring Boot 集成测试提供了便利。通过强大的测试框架,开发人员可以确保应用的质量和稳定性。

总之,Spring Boot 的丰富生态系统为开发人员提供了全方位的支持,使得开发高效、可扩展、安全的 Java 应用程序变得更加容易。

二、快速构建应用的方法

(一)官网打包与 IDE 生成

Spring Boot 提供了多种方式来快速构建应用程序。其中,通过官网打包和利用集成开发环境(IDE)生成项目是两种常见的方法。

1. 官网打包

Spring Boot 官方为了方便开发者快速构建应用,搭建了一个专门的网站用于一键生成 Spring Boot 应用。地址为 https://start.spring.io/。在该网站上,开发者可以依次选择项目构建工具(如 Maven 或 Gradle)、语言(Java)、Spring Boot 版本。然后填写项目的名称、ID 等信息。在这里还可以选择项目所依赖的第三方 jar 包,例如常用的 web 和 lombok 包等。最后点击一键生成功能,等待下载完成后,解压即可得到一个初始的 Spring Boot 项目。

2. IDE 生成

许多主流的 IDE 也支持直接生成 Spring Boot 项目。以 IntelliJ IDEA 为例,带有 Spring 插件的 IDEA 可以直接在 IDE 中创建 Spring Boot 项目。具体步骤如下:打开 IntelliJ IDEA,点击 File -> New -> Project,在项目模板列表中选择 Spring boot。然后配置项目信息,选择 Maven 或 Gradle,填写 Group 和 Artifact 信息,选择 Spring Boot 版本,并选择所需的依赖(如 Spring Web、Spring Data JPA 等)。点击 Next,完成项目创建。项目生成后,可以在 IDE 中通过 Run 按钮直接运行项目。

(二)添加 Web 代码

在 Spring Boot 项目中添加 Web 相关代码可以实现页面访问效果。首先,需要在项目的 pom.xml 文件中添加 web 模块支持,例如添加依赖:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>。这个模块包含了构建 Web、RESTful 风格框架 SpringMVC 和默认的嵌入式容器 Tomcat。

然后,可以创建控制器类来处理 HTTP 请求。例如:

 
@RestControllerpublic class HelloWorldController {@RequestMapping("/hello")public String showText() {return "Hello World!";}}

启动项目后,在浏览器中输入http://localhost:8080/hello即可访问该页面,显示 “Hello World!” 字符串。

此外,还可以通过添加 Web 组件(Servlet、Filter 和 Listener)来增强 Web 应用的功能。添加 Web 组件有三种方式:

第一种方式:使用 Spring Bean 添加 Servlet、Filter 或 Listener。只要将这些 Web 组件配置成容器中 Bean 即可,Spring Boot 会自动将这些特殊的 bean 注册成 Web 组件。当 Spring 容器中只有一个 Servlet 时,它默认被映射到应用的根路径(/);当 Spring 容器中有多个 Servlet 时,它们的映射地址就是它们的 Bean 名称(name 属性值),且首字母要小写并带一个斜杠结尾。而 Filter 的映射地址则默认为 /*。

第二种方式:使用 XxxRegistrationBean 来注册 Servlet、Filter 或 Listener。在容器中配置 XxxRegistrationBean 可注册 Web 组件,每个注册 Bean 注册一个 Web 组件。ServletRegistrationBean 注册 Servlet、FilterRegistrationBean 注册 Filter、ServletListenerRegistrationBean 注册 Listener。通过这种方式注册时,开发者可获得对 Web 组件全部的控制权,但它们不是 Spring 容器中的 Bean,因此不会自动接收依赖注入。

第三种方式:使用 Classpath 扫描的方式来注册 Web 组件。为 Web 组件添加 @WebServlet、@WebFilter 或 @WebListener 注解。

三、数据访问与视图技术

(一)多样的数据访问方式

Spring Boot 提供了多种数据访问方式,以满足不同项目的需求。

1. JPA(Java Persistence API)

Spring Boot JPA 是 Spring Boot 框架与 Java Persistence API 的结合,它提供了一个简单、灵活和强大的方式来管理和访问数据库。在 Spring Boot 中,JPA 是一个默认的集成框架,它可以让开发者更加便捷地进行数据持久化操作。

  • 自动化配置:Spring Boot 提供了自动化的 JPA 配置,可以让我们快速地集成 JPA 到应用程序中。只需要在 pom.xml 文件中添加相应的依赖,Spring Boot 就会自动配置 JPA 所需的所有内容,包括数据源、EntityManagerFactory 等。
  • 简化数据访问层:Spring Boot JPA 通过使用 Repository 接口,简化了数据访问层的编写。只需要定义一个接口,Spring Boot JPA 就会自动为其生成实现类。这极大地减少了工作量,提高了开发效率。
  • 事务管理:Spring Boot JPA 支持声明式事务管理,我们可以通过注解或 XML 配置来管理事务。在 JPA 中,使用 EntityManager 来管理事务,它支持事务的提交、回滚和并发控制等功能。
  • 查询能力:JPA 的查询语言是面向对象的,它以面向对象的自然语法构造查询语句,可以看成是 Hibernate HQL 的等价物。Spring Boot JPA 支持使用 JPQL(Java Persistence Query Language)来进行数据库查询,它是一种面向对象的查询语言,与 SQL 类似但更加易用。
  • 容器级特性:JPA 框架支持大数据集、事务、并发等容器级特性,这使得 JPA 不仅适用于简单的持久化框架,还在企业级应用中发挥着更大的作用。
  • 非侵入式设计:JPA 基于非侵入式原则设计,因此可以很容易地与其他框架或容器集成。例如,可以将 JPA 与 Spring Boot 的 Web 模块集成在一起,实现数据的增删改查功能。

2. Spring Data JDBC

Spring Data JDBC 是 Spring 框架提供的一种简化 JDBC 访问的方式,它提供了一组模板类和回调函数,可以帮助我们快速开发访问数据库的代码。

  • 优点:简单易用,不需要学习 JPA 规范或 SQL 语言;支持多种数据库;可以通过 NamedParameterJdbcTemplate 类来实现参数化查询,避免 SQL 注入问题;支持事务管理机制,可以保证数据的一致性和完整性。
  • 缺点:对于复杂的查询,需要手写 SQL 语句,可能会降低开发效率;不支持自动化映射,需要手动将结果集转换为对象。

3. MyBatis

MyBatis 是一种基于 XML 配置文件和 Java 注解的 ORM 框架,它提供了灵活的 SQL 映射方式和强大的动态 SQL 功能,可以帮助我们更加精细地控制 SQL 的执行过程。

  • 优点:灵活性高,允许直接编写原生的 SQL 语句,提供了很高的灵活性,可以根据需要编写任何复杂的 SQL,从而满足各种业务需求;易于使用,通过 XML 配置文件和注解,让你可以轻松将 SQL 语句与 Java 代码分离,使得代码结构更清晰、易维护;映射简单,提供了简单的映射方式,可以将数据库表中的字段自动映射到 Java 对象的属性上,降低了数据转换的复杂性;扩展性良好,提供了丰富的插件接口,你可以通过编写自定义插件来扩展 MyBatis 的功能,以满足特定需求;易于集成,与各种流行的 Java 框架(如 Spring)很好地集成,使得开发人员可以方便地将 MyBatis 与其他组件一起使用;社区活跃,有一个活跃的开发者社区,为使用者提供了丰富的文档、教程和支持。
  • 缺点:需要手写 SQL,对于不熟悉 SQL 的开发者来说,学习成本较高;XML 配置文件相对于注解来说,比较繁琐,需要花费一定的时间维护。

4. Spring Data Redis

Spring Data Redis 是 Spring Data 提供的一种简化 Redis 访问的方式,它提供了一组注解和默认实现,可以帮助我们快速开发访问 Redis 数据库的代码。

  • 优点:简化了 Redis 访问的代码,提高了开发效率;支持多种 Redis 数据结构,包括字符串、哈希、列表、集合、有序集合等;可以通过注解来定义 Redis 的缓存策略,提高了应用程序的性能;提供了事务管理机制,可以保证数据的一致性和完整性。
  • 缺点:不支持复杂的数据操作,如多表关联等;Redis 数据库性能较差,不适合存储大量数据。

5. Spring Data MongoDB

Spring Data MongoDB 是 Spring Data 提供的一种简化 MongoDB 访问的方式,它提供了一组注解和默认实现,可以帮助我们快速开发访问 MongoDB 数据库的代码。

  • 优点:简化了 MongoDB 访问的代码,提高了开发效率;支持多种 MongoDB 数据结构,包括文档、集合等;可以通过注解来定义 MongoDB 的索引和查询条件,提高了应用程序的性能;支持事务管理机制,可以保证数据的一致性和完整性。
  • 缺点:不支持复杂的数据操作,如多表关联等;MongoDB 数据库性能较差,不适合存储大量数据。

(二)常用的视图技术

Spring Boot 支持多种视图技术,以满足不同项目的需求。

1. Thymeleaf

Thymeleaf 是一款现代化的服务器端 Java 模板引擎,适用于 Web 和独立应用场景。它具备处理 HTML、XML、JavaScript、CSS 以及纯文本的能力。

  • 特点:可读性强、易于理解的语法;支持 Spring MVC 的所有特性,可以与 Spring 框架无缝集成;可以在没有 Web 服务器的情况下运行,便于开发和测试;支持多种模板解析器,可以根据需要选择合适的解析器。
  • 应用场景:适用于各种 Web 应用程序,无论是传统的服务器端 Web 应用程序、单页应用程序,还是移动 Web 应用程序,都能够轻松应对。此外,Thymeleaf 不仅局限于动态内容的生成,还可以用于生成静态内容,如电子邮件模板等。
  • 在 Spring Boot 中的使用:添加 Thymeleaf 的依赖,在 pom.xml 文件中添加 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>;配置 Thymeleaf,在 application.properties 或 application.yml 文件中,可以配置 Thymeleaf 的相关属性,例如模板文件的位置、缓存策略等;编写 Thymeleaf 模板,在指定的模板文件夹中,创建一个 HTML 文件,例如 index.html。在 HTML 文件中,可以使用 Thymeleaf 的语法编写动态内容;编写 Spring Boot 控制器,在 Spring Boot 项目中,创建一个控制器类,使用 @Controller 注解。在控制器方法中,可以将数据添加到 Model 对象中,并返回 Thymeleaf 模板的名称。

2. FreeMarker

FreeMarker 是一个基于模板生成输出文本(HTML 页面、电子邮件、配置文件等)的模板引擎,它不是面向最终用户的,而是一个 Java 类库,是一款程序员可以嵌入所开发产品的组件。

  • 特点:强大的模板语言,可以实现复杂的逻辑和数据处理;支持多种数据类型和数据结构;可以与 Spring 框架很好地集成。
  • 应用场景:适用于生成动态的 HTML 页面、电子邮件、配置文件等。

3. JSP

JSP(JavaServer Pages)是一种基于 Java 的服务器端页面技术,它允许开发人员在 HTML 页面中嵌入 Java 代码,以实现动态内容的生成。

  • 特点:简单易用,开发人员可以快速上手;与 Java 语言紧密结合,可以直接在 JSP 页面中使用 Java 代码;支持多种服务器端技术,如 Servlet、JSTL 等。
  • 应用场景:适用于传统的 Web 应用程序开发,尤其是那些对性能要求不高的项目。

4. Velocity

Velocity 是一个基于 Java 的模板引擎,它允许开发人员使用简单的模板语言来生成文本输出。Velocity 的模板语言类似于 HTML,但它支持变量、循环、条件判断等编程结构。

  • 特点:简单易学,模板语言简洁明了;支持多种数据类型和数据结构;可以与 Spring 框架很好地集成。
  • 应用场景:适用于生成动态的文本输出,如电子邮件、报告等。

5. Mustache

Mustache 是轻逻辑的模板引擎(Logic-less templates),它是一个 JS 模板,用于对 JS 进行分离展示。Mustache 的优势在于可以应用在 JavaScript、PHP、Python、Perl 等多种编程语言中。

  • 特点:简单易用,模板语言简洁明了;不支持复杂的逻辑和数据处理;可以与多种编程语言集成。
  • 应用场景:适用于生成简单的文本输出,如 HTML 片段、JSON 数据等。

四、实际项目中的应用

(一)架构搭建与配置

Spring Boot 在项目架构搭建和配置方面表现出了极大的灵活性和便捷性。在架构搭建方面,Spring Boot 提供了一种约定大于配置的理念,使得开发人员能够快速构建起项目的基本架构。通过引入不同的依赖,可以轻松地实现各种功能模块的集成,如数据库访问、Web 服务、消息队列等。

在配置方面,Spring Boot 支持多种配置方式。可以使用传统的 properties 或 yml 文件进行配置,将数据库连接信息、服务器端口等参数集中管理。同时,Spring Boot 还支持外部化配置,可以将配置信息存储在环境变量或外部配置文件中,方便在不同环境中进行切换。例如,在开发环境中可以使用本地数据库,而在生产环境中可以切换到远程数据库,只需修改配置文件即可,无需修改代码。

此外,Spring Boot 还提供了自动配置功能,根据项目中引入的依赖自动进行配置,大大减少了手动配置的工作量。例如,当引入 spring-boot-starter-web 依赖时,Spring Boot 会自动配置嵌入式的 Web 服务器,如 Tomcat 或 Jetty,无需开发人员手动进行配置。

(二)开发 Web 应用程序

使用 Spring Boot 开发 RESTful 服务或普通 Web 应用程序非常方便。首先,通过引入 spring-boot-starter-web 依赖,就可以快速搭建起一个 Web 应用的基础框架。

在开发 RESTful 服务时,可以使用 @RestController 注解定义控制器类,使用 @RequestMapping 或其衍生注解(如 @GetMapping、@PostMapping 等)来映射 HTTP 请求方法和路径。例如:

 
@RestController@RequestMapping("/api/users")public class UserController {@GetMapping("/{id}")public User getUserById(@PathVariable Long id) {// 获取用户信息的逻辑return user;}}

对于普通 Web 应用程序,可以结合使用模板引擎,如 Thymeleaf,来生成动态的 HTML 页面。在控制器方法中,可以将数据添加到 Model 对象中,然后返回模板的名称,由模板引擎渲染页面并返回给客户端。

(三)使用数据库与消息队列

Spring Boot 集成常见数据库和消息队列具有很多优势。对于数据库集成,Spring Boot 支持多种数据库,如 MySQL、PostgreSQL、Oracle 等。通过引入相应的数据库驱动和 Spring Data JPA 等依赖,可以轻松实现对数据库的访问和操作。

例如,使用 Spring Data JPA 可以通过定义 Repository 接口来实现对数据库的 CRUD 操作,无需编写大量的 SQL 语句。同时,Spring Boot 还支持数据库连接池,如 HikariCP,可以提高数据库连接的性能和效率。

在消息队列方面,Spring Boot 集成了常见的消息队列,如 ActiveMQ、RabbitMQ 等。使用消息队列可以实现异步处理和解耦,提高系统的性能和可靠性。通过引入相应的依赖和配置,可以轻松地发送和接收消息。例如,使用 RabbitMQ 可以定义消息生产者和消费者,通过 @RabbitListener 注解监听队列中的消息。

(四)使用缓存与安全认证

Spring Boot 在缓存和安全认证方面提供了强大的支持。对于缓存,Spring Boot 集成了多种缓存实现,如 Ehcache、Redis 等。通过使用缓存,可以提高应用的性能,减少数据库的访问次数。

可以使用 @Cacheable、@CachePut、@CacheEvict 等注解来标记方法,实现对方法返回值的缓存。例如,对于经常访问但不经常变化的数据,可以使用缓存来提高访问速度。

在安全认证方面,Spring Boot 集成了 Spring Security,可以实现用户的身份认证和授权。通过配置 Spring Security,可以定义用户和角色的信息,实现对 URL 资源的访问控制。例如,可以限制只有特定角色的用户才能访问某些页面或接口。

(五)监控和管理

Spring Boot 提供了丰富的监控和管理功能,帮助开发者更好地了解应用的运行状态。Spring Boot Actuator 提供了一系列的端点,可以通过 HTTP 请求获取应用的运行状况、系统指标、日志等信息。

例如,可以通过 /health 端点获取应用的健康状态,包括数据库连接、消息队列连接等信息。通过 /metrics 端点可以获取应用的性能指标,如 CPU 使用率、内存使用率等。

此外,还可以集成第三方监控工具,如 Prometheus 和 Grafana,实现对应用的实时监控和可视化展示。

(六)部署和发布

Spring Boot 提供了多种部署和发布方式,可以满足不同的需求。可以将应用打包为可执行的 JAR 文件,通过命令行或脚本运行应用。这种方式简单方便,适合小型项目和开发环境。

也可以将应用打包为 WAR 文件,部署到 Servlet 容器中,如 Tomcat、Jetty 等。这种方式适合传统的 Web 应用部署场景。

此外,Spring Boot 还支持 Docker 容器化部署,可以将应用打包为 Docker 镜像,通过 Docker 容器运行应用。这种方式可以提高应用的可移植性和部署效率,适合云原生环境。

五、快速构建应用的优势总结

Spring Boot 作为快速构建应用的利器,在现代 Java 开发中具有举足轻重的地位。以下是对其快速构建应用优势的总结:

(一)提高开发效率

Spring Boot 提供了大量的默认配置选项,使得开发者可以非常快速地搭建一个简单的应用。自动配置功能可以根据项目中的依赖自动配置相应的组件和功能,开发者只需关注业务逻辑,无需手动配置繁琐的 XML 或注解。例如,当引入 spring-boot-starter-web 依赖时,Spring Boot 会自动配置嵌入式的 Web 服务器,如 Tomcat 或 Jetty,无需开发人员手动进行配置。同时,Spring Boot 提供了多种 Starter 依赖,使得集成第三方库变得更加简单,开发者只需添加对应的依赖即可,大大简化了项目中的依赖管理,减少了潜在的冲突和版本不一致的问题。

(二)易于部署和运行

Spring Boot 可以以 jar 包的形式独立运行,无需外部的 Servlet 容器支持,使得部署和运行变得非常简单。可以将应用打包为可执行的 JAR 文件,通过命令行或脚本运行应用,也可以将应用打包为 WAR 文件,部署到 Servlet 容器中,还支持 Docker 容器化部署,提高了应用的可移植性和部署效率,适合不同的需求场景。

(三)丰富的生态系统支持

Spring Boot 拥有强大的生态系统,如 Spring Cloud、Spring Data、Spring Security、Spring Batch、Spring Integration、Spring Boot Admin、Spring Boot Actuator、Spring Boot Test 等,为开发人员提供了全方位的支持。通过这些组件,开发人员可以轻松实现服务注册与发现、负载均衡、断路器、数据访问、安全保护、批处理、系统集成、应用监控和管理、集成测试等功能,使得开发高效、可扩展、安全的 Java 应用程序变得更加容易。

(四)强大的数据访问和视图技术支持

Spring Boot 提供了多种数据访问方式,如 JPA、Spring Data JDBC、MyBatis、Spring Data Redis、Spring Data MongoDB 等,可以满足不同项目对数据存储和访问的需求。同时,支持多种视图技术,如 Thymeleaf、FreeMarker、JSP、Velocity、Mustache 等,以满足不同项目的页面展示需求。

(五)良好的架构搭建和配置灵活性

Spring Boot 提供了一种约定大于配置的理念,使得开发人员能够快速构建起项目的基本架构。在配置方面,支持多种配置方式,如 properties 或 yml 文件进行配置、外部化配置等,方便在不同环境中进行切换。自动配置功能也大大减少了手动配置的工作量。

总之,Spring Boot 在现代 Java 开发中具有重要的地位,其快速构建应用的优势使得开发人员能够更加高效地开发、部署和维护 Java 应用程序。

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

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

相关文章

爬虫实战:采集知乎XXX话题数据

目录 反爬虫的本意和其带来的挑战目标实战开发准备代码开发发现问题1. 发现问题[01]2. 发现问题[02] 解决问题1. 解决问题[01]2. 解决问题[02] 最终结果 结语 反爬虫的本意和其带来的挑战 在这个数字化时代社交媒体已经成为人们表达观点的重要渠道&#xff0c;对企业来说&…

微信小程序2-地图显示和地图标记

一、index修改页面&#xff0c;让页面能够显示地图和一个添加标记的按钮。 index.wxml <scroll-view class"scrollarea" scroll-y type"list"><view class"index_container"><map id"map" style"width: 100%; h…

Qt入门1——认识Qt的几个常用头文件和常用函数

1.头文件 ① #include <QPushButton>——“按钮”头文件&#xff1b; ② #include <QLabel>——“标签”头文件&#xff1b; ③ #include <QFont>——“字体”头文件&#xff1b; ④#include <QDebug>——输出相关信息&#xff1b; 2. 常用函数/类的基…

社交电商专业赋能高校教育与产业协同发展:定制开发AI智能名片及2+1链动商城小程序的创新驱动

摘要&#xff1a;本文围绕社交电商有望成为高校常态专业这一趋势展开深入探讨&#xff0c;剖析国家政策认可下其学科发展前景&#xff0c;着重阐述在专业建设进程中面临的师资短缺及实践教学难题。通过引入定制开发AI智能名片与21链动商城小程序&#xff0c;探究如何借助这些新…

CPU命名那些事

一、Intel CPU命名 1. 命名结构 Intel CPU 的命名通常包含以下几个部分&#xff1a; 品牌 产品线 系列 代数 具体型号 后缀 例如&#xff1a;Intel Core i7-13700K 2. 各部分含义 品牌 Intel&#xff1a;表示厂商&#xff08;几乎所有命名中都有&#xff09;。不同品…

AR智能眼镜|AR眼镜定制开发|工业AR眼镜方案

AR眼镜的设计与制造成本主要受到芯片、显示屏和光学方案的影响&#xff0c;因此选择合适的芯片至关重要。一款优秀的芯片平台能够有效提升设备性能&#xff0c;并解决多种技术挑战。例如&#xff0c;采用联发科八核2.0GHz处理器&#xff0c;结合12nm制程工艺&#xff0c;这种低…

第二十一周机器学习笔记:动手深度学习之——数据操作、数据预处理

第二十周周报 摘要Abstract一、动手深度学习1. 数据操作1.1 数据基本操作1.2 数据运算1.2.1 广播机制 1.3 索引和切片 2. 数据预处理 二、复习RNN与LSTM1. Recurrent Neural Network&#xff08;RNN&#xff0c;循环神经网络&#xff09;1.1 词汇vector的编码方式1.2 RNN的变形…

ThinkPad t61p 作SMB服务器,打印服务器,pc ,android ,ipad利用此服务器互传文件

1.在t61p上安装win7 2,配置好smb 服务 3.再安装好打印驱动程序 4.pc与win7利用系统的网络互相发现,映射为硬盘使用。 5.android&#xff0c;ipad安装ES文件浏览器访问win7 共享文件夹&#xff0c;互传文件。 6.android手机安装FE文件浏览器&#xff0c;可以利用花生壳外网…

【深度学习之二】正则化函数(weight decay, dropout, label smoothing, and etc)详解,以及不同的函数适用的场景

在深度学习中正则化函数的重要性不言而喻&#xff0c;今天主要总结一些当前常用的一些正则化函数 在深度学习中&#xff0c;正则化&#xff08;Regularization&#xff09;是一种防止模型过拟合的技术。过拟合指的是模型在训练数据上表现很好&#xff0c;但在未见过的测试数据…

神经网络(系统性学习二):单层神经网络(感知机)

此前篇章&#xff1a; 神经网络中常用的激活函数 神经网络&#xff08;系统性学习一&#xff09;&#xff1a;入门篇 单层神经网络&#xff08;又叫感知机&#xff09; 单层网络是最简单的全连接神经网络&#xff0c;它仅有输入层和输出层&#xff0c;没有隐藏层。即&#x…

Linux 手动升级软件保姆级教程,适用所有软件,不限于麒麟等国产系统

1、检查软件版本&#xff0c;及是否安装 openssh为例 是否安装 rpm -qa|grep openssh 备份 mv /etc/ssh/ /home/ssh-bakmv /usr/bin/ssh /usr/bin/ssh.bakmv /usr/sbin/sshd /usr/sbin/sshd.bakmv /etc/pam.d/sshd /etc/pam.d/sshd.old2、机器如果不在身边&#xff0c;机器…

【大数据学习 | Spark-Core】Spark的改变分区的算子

当分区由多变少时&#xff0c;不需要shuffle&#xff0c;也就是父RDD与子RDD之间是窄依赖。 当分区由少变多时&#xff0c;是需要shuffle的。 但极端情况下&#xff08;1000个分区变成1个分区)&#xff0c;这时如果将shuffle设置为false&#xff0c;父子RDD是窄依赖关系&…

java操作doc——java利用Aspose.Words操作Word文档并动态设置单元格合并

在实际工作中&#xff0c;如果业务线是管理类项目或者存在大量报表需要导出的业务时&#xff0c;可以借助第三方插件实现其对应功能。 尤其是需要对word文档的动态操作或者模板数据的定向合并&#xff0c;使用Aspose会相对来说容易一些&#xff0c;而且相关文档比较完整&#…

电商一件发货软件闲管家使用教程

闲鱼闲管家是一款专为闲鱼卖家设计的电脑版工作台&#xff0c;旨在帮助卖家更高效地管理其在闲鱼平台上的业务。以下是关于闲鱼闲管家的一些主要特点和功能&#xff1a; 主要特点&#xff1a; 多账号管理&#xff1a;支持同时管理多达30个闲鱼账号&#xff0c;方便大型卖家或…

Docker Seata分布式事务保护搭建 DB数据源版搭建 结合Nacos服务注册

介绍 Seata&#xff08;Simple Extensible Autonomous Transaction Architecture&#xff09;是一个开源的分布式事务解决方案&#xff0c;旨在为微服务架构中的分布式系统提供事务管理支持。Seata 通过提供全局事务管理&#xff0c;帮助开发者在分布式环境中保持数据一致性 …

HTB:WifineticTwo[WriteUP]

目录 连接至HTB服务器并启动靶机 信息搜集 使用rustscan对靶机TCP端口进行开放扫描 使用nmap对靶机开放端口进行脚本、服务扫描 使用curl访问靶机8080端口 使用浏览器直接访问/login路径 漏洞利用 使用searchsploit搜索该WebAPP漏洞 Payload USER_FLAG&#xff1a;bb…

【MySQL课程学习】:MySQL安装,MySQL如何登录和退出?MySQL的简单配置

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;MySQL课程学习 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 MySQL在Centos 7环境下的安装&#xff1a; 卸载…

oracle如何配置第二个监听优化数据传输

oracle如何配置第二个监听优化数据传输 服务器两个网卡&#xff0c;配置两个不同IP和端口的监听。 归档日志量每天很大&#xff0c;为了不影响业务&#xff0c;需要配置一个单独的万兆网络来专门的传输归档日志到DG库&#xff0c;这里就涉及到在19c中增加一个监听用来使用专门…

Feed流系统重构:架构篇

重构对我而言&#xff0c;最大的乐趣在于解决问题。我曾参与一个C#彩票算奖系统的重构&#xff0c;那时系统常因超时引发用户投诉。接手任务时&#xff0c;我既激动又紧张&#xff0c;连续两天几乎废寝忘食地编码。结果令人振奋&#xff0c;算奖时间从一小时大幅缩短至十分钟。…

【Linux驱动开发】驱动中的信号 异步通知开发

【Linux驱动开发】驱动中的信号 异步通知开发 文章目录 应用中的信号驱动中的信号应用程序接收驱动信号附录&#xff1a;嵌入式Linux驱动开发基本步骤开发环境驱动文件编译驱动安装驱动自动创建设备节点文件 驱动开发驱动设备号地址映射&#xff0c;虚拟内存和硬件内存地址字符…