使用Hibernate和Spring构建Java Web应用程序

这篇文章将展示如何在Spring环境中使用带有Hibernate ORM的MYSQL DB创建学生注册应用程序。 这是一个简单的应用程序,旨在在注册过程中从用户收集输入详细信息,将这些详细信息保存在MYSQL DB中,并在登录期间对其进行身份验证。

1.使用Maven模板创建Java Web应用程序项目

首先,在IDE中,通过为项目的GroupId和Artifact Id提供适当的值,使用maven-archetype-webapp模板创建Java Maven项目(基于字符串“ webapp”过滤目录)。 下面显示了示例Web应用程序目录结构,其中包含标准部署描述符web.xml和Maven pom.xml。

弹簧布局

2.更新pom.xml

为了使上述Maven Java Web Application项目支持Spring框架中的Hibernate ORM,请将以下依赖项添加到现有pom.xml中

  • jstl,spring-webmvc和servlet-api(用于Spring支持)
  • mysql-connector-java(用于MYSQL支持)
  • spring-jdbc(用于使用JDBC Spring进行数据访问)
  • spring-orm(用于使用Spring进行ORM数据访问)
  • spring-data-jpa(用于JPA支持)
  • hibernate-validator和hibernate-entitymanager(用于Hibernate支持)
  • jta(用于事务支持)
<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>3.2.4.RELEASE</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.21</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>4.2.0.Final</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-entitymanager</artifactId><version>4.1.9.Final</version></dependency><dependency><groupId>javax.transaction</groupId><artifactId>jta</artifactId><version>1.1</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>3.2.0.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>3.2.0.RELEASE</version></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-jpa</artifactId><version>1.3.0.RELEASE</version><exclusions><exclusion><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId></exclusion></exclusions></dependency>

3.修改web.xml

修改web.xml的内容以包括以下内容:

  • 一个servlet,并为其指定配置文件的位置。 在此示例中,在项目布局的WEB-INF / config文件夹下创建了一个名为springConfig.xml的配置文件。
  • Servlet映射,以映射在上一步中创建的servlet,当客户端指定与url模式匹配的url时应调用该servlet。
  • 一个ContextLoaderListener,用于将spring与Web应用程序集成在一起,并提供contextConfigLocation用于JPA的上下文文件。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><servlet><servlet-name>studentHibernateServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/config/servletConfig.xml</param-value></init-param>
</servlet><servlet-mapping><servlet-name>studentHibernateServlet</servlet-name><url-pattern>*.html</url-pattern>
</servlet-mapping><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:/jpaContext.xml</param-value>
</context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener><display-name>Archetype Created Web Application</display-name>
</web-app>

4.创建Spring配置文件

在文件夹WEB-INF / config下创建一个Spring Bean配置文件。 如果STS(Spring Tool Suite)是IDE,请继续启用上下文和mvc命名空间。 servletConfig.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"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"></beans>

启用所需的名称空间后,包括以下内容(在<beans>和</ beans>标记之间),以指示该应用程序是注释驱动的,并且是上下文组件扫描的基本包。

<mvc:annotation-driven /><context:component-scan base-package="com.github.elizabetht" />

包括Spring的bean InternalResourceViewResolver以查找jsp文件

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" />
</bean>

包括用于指定属性文件的Bean(稍后将对此进行详细介绍),该文件将用于存储自定义消息或属性。 通过以下配置,可以在项目的src / main / resources文件夹下创建一个名为messages.properties的属性文件。

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"><property name="basename" value="messages" />
</bean>

5.创建persistence.xml

在项目的src / main / resources / META-INF文件夹下创建一个名为persistence.xml的文件,以定义JPA所需的持久性单元。 将以下内容添加到persistence.xml中,以定义名为punit的持久性单元。

<persistence xmlns="http://java.sun.com/xml/ns/persistence"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="{http://java.sun.com/xml/ns/persistence} {http://java.sun.com/xml/ns/persistence_2_0.xsd}"version="2.0"><persistence-unit name="punit"></persistence-unit></persistence>

6.创建jpaContext.xml

按照web.xml中的定义,在项目的src / main / resources文件夹下创建一个名为jpaContext.xml的文件,以定义JPA和Hibernate相关的配置。 请注意,在Maven项目中的src / main / resources文件夹下创建的任何文件都会由Maven自动添加到类路径中。 如果STS(Spring Tool Suite)是IDE,请继续启用context,jpa和tx命名空间。 jpaContext.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:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xmlns:jpa="http://www.springframework.org/schema/data/jpa"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"><beans>

启用所需的名称空间后,包括以下内容(在<beans>和</ beans>标记之间),以指示该应用程序是注释驱动的,并且是jpa存储库扫描的基本包。

<context:annotation-config /><jpa:repositories base-package="com.github.elizabetht.repository" />

接下来,包括bean PersistenceAnnotationBeanPostProcessor。 这对于处理持久性单元,持久性上下文注释和注入JPA相关资源是必需的。

<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

包括EntityManagerFactory的bean,该bean列出了各种与JPA相关的属性/资源。

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"><property name="persistenceUnitName" value="punit" /><property name="dataSource" ref="dataSource" /><property name="jpaVendorAdapter"><bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"><property name="showSql" value="true" /></bean></property><property name="jpaPropertyMap"><map><entry key="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" /><entry key="hibernate.hbm2ddl.auto" value="validate" /><entry key="hibernate.format_sql" value="true" /></map></property></bean>

包括用于数据源的Bean,可在其中指定MYSQL DB的属性(例如url,用户名和密码)。 将<include connection url>替换为用于连接到MYSQL DB的实际连接URL。 同样,将<include username>和<include password>替换为实际的用户名和密码值。

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql//<include connection url>:3306/studentEnrollment?autoReconnect=true&createDatabaseIfNotExist=true&" /><property name="username" value="<include username>" /><property name="password" value="<include password>" />
</bean>

包括用于事务管理器的Bean,用于范围/控制事务。

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"><property name="entityManagerFactory" ref="entityManagerFactory" />
</bean><tx:annotation-driven transaction-manager="transactionManager" />

从而结束了jpaContext.xml中的长配置

7.创建用于学生注册/登录的JSP文件

在WEB-INF下创建一个名为“ jsp”的文件夹(将在此创建jsp文件的位置,如InternalResourceViewResolver bean的servletConfig.xml中所示)。

创建一个文件signup.jsp,以包含一个表单来获取输入信息,例如学生的UserName,Password,FirstName,LastName,DateOfBirth和EmailAddress。 注册页面的快照如下:

注册

接下来,创建一个文件login.jsp以包含带有用户名和密码的表单。 登录页面的快照如下:

登录

还要创建success.jsp来指示登录成功,并创建failure.jsp来指示登录失败(这些只是用于显示内容的页面-不涉及任何处理逻辑)。

此应用程序使用twitter bootstrap http://getbootstrap.com/和http://bootswatch.com/united/作为样式表。 它还使用日期选择器样式表在“学生注册”页面( http://www.eyecon.ro/bootstrap-datepicker/ )中为DateOfBirth字段弹出日历。

可以在https://github.com/elizabetht/StudentEnrollmentWithSpring/tree/master/src/main/webapp中找到此应用程序的webapp文件夹下的文件的参考链接。

8.为Controller,Model,Repository和Service层类创建包

在src / main / java文件夹下为Spring Controller,Model,Repository和Service类分别创建软件包。

包创建后的项目示例快照如下所示:

SpringHibernate包

9.创建模型层的类

在包com.github.elizabetht.model内创建一个名为Student.java的POJO类,以在注册过程中包含Student模型实体的详细信息。 在同一个包com.github.elizabetht.model中创建另一个名为StudentLogin.java的POJO类,以包含Student Login详细信息。

可以在https://github.com/elizabetht/StudentEnrollmentWithSpring/tree/master/src/main/java/com/github/elizabetht/model中找到到Model类文件的参考链接。

10.为存储库层创建类

在包com.github.elizabetht.repository中创建一个名为StudentRepository.java的接口类,以支持存储库层数据库操作。

为了应用程序的目的,需要两种接口方法。

  • 将学生注册详细信息插入数据库
  • 从数据库验证学生登录详细信息
@Repository("studentRepository")
public interface StudentRepository extends JpaRepository<Student, Long> {@Query("select s from Student s where s.userName = :userName")Student findByUserName(@Param("userName") String userName);}

Hibernate实现支持save()方法,因此数据插入不需要单独SQL语句。

11.创建服务层的类

在包com.github.elizabetht.service中创建一个名为StudentService.java的接口类,以支持服务层操作。

public interface StudentService {Student save(Student student);boolean findByLogin(String userName, String password);boolean findByUserName(String userName);
}

在com.github.elizabetht.service包中创建一个名为StudentServiceImpl.java的服务层实现类(实际上是POJO)。 这就是应用程序逻辑的用途–将学生的详细信息保存到数据库中,或从数据库中验证学生的(已保存)详细信息。

@Service("studentService")
public class StudentServiceImpl implements StudentService {@Autowiredprivate StudentRepository studentRepository;@Transactionalpublic Student save(Student student) {return studentRepository.save(student);}public boolean findByLogin(String userName, String password) {  Student stud = studentRepository.findByUserName(userName);if(stud != null && stud.getPassword().equals(password)) {return true;} return false;       }public boolean findByUserName(String userName) {Student stud = studentRepository.findByUserName(userName);if(stud != null) {return true;}return false;}}

12.创建控制器层的类

在com.github.elizabetht.controller包中创建一个名为StudentController.java的Controller层POJO类。 这就是应用程序路由逻辑的去向–无论是调用注册还是登录操作。

@Controller
@SessionAttributes("student")
public class StudentController {@Autowiredprivate StudentService studentService;@RequestMapping(value="/signup", method=RequestMethod.GET)public String signup(Model model) {Student student = new Student();        model.addAttribute("student", student);     return "signup";}@RequestMapping(value="/signup", method=RequestMethod.POST)public String signup(@Valid @ModelAttribute("student") Student student, BindingResult result, Model model) {        if(result.hasErrors()) {return "signup";} else if(studentService.findByUserName(student.getUserName())) {model.addAttribute("message", "User Name exists. Try another user name");return "signup";} else {studentService.save(student);model.addAttribute("message", "Saved student details");return "redirect:login.html";}}@RequestMapping(value="/login", method=RequestMethod.GET)public String login(Model model) {          StudentLogin studentLogin = new StudentLogin();     model.addAttribute("studentLogin", studentLogin);return "login";}@RequestMapping(value="/login", method=RequestMethod.POST)public String login(@Valid @ModelAttribute("studentLogin") StudentLogin studentLogin, BindingResult result) {if (result.hasErrors()) {return "login";} else {boolean found = studentService.findByLogin(studentLogin.getUserName(), studentLogin.getPassword());if (found) {                return "success";} else {                return "failure";}}}
}

13.创建messages.properties文件

如上所示,@ Valid批注用于验证到达方法的表单的输入参数,并将验证结果存储在BindingResult对象中。 为了验证特定字段(请参阅为模型层创建的类– https://github.com/elizabetht/StudentEnrollmentWithSpring/tree/master/src/main/java/com/github/elizabetht/model ),请使用注释像@ NotEmpty,@ Size,@ Email和@NotNull,它们来自Hibernate Validator的各种验证。

在messages.properties文件中指定了上述任何一个验证器失败时应显示的定制消息。 在src / main / resources文件夹下创建一个名为messages.properties的文件,并包含以下内容

NotEmpty=Field cannot be blank
NotNull=Field cannot be blankEmail=Email Address not valid/well-formed
Past=Date of Birth must be in the past Size={0} must be between {2} and {1} characters long
typeMismatch=Invalid format

14.在MYSQL数据库中创建数据库模式

连接到将用于此应用程序MySQL数据库,并使用MySQL Workbench创建一个名为StudentEnrollment的新数据库架构。 这是必需的,因为在jpaContext.xml的dataSource bean中指定了StudentEnrollment的数据库模式名称。

一旦创建了StudentEnrollment DB Schema,就可以使用CREATE TABLE语句在DB Schema中创建一个名为Student的表,如下所示:

CREATE TABLE `student` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`dateOfBirth` datetime NOT NULL,`emailAddress` varchar(255) NOT NULL,`firstName` varchar(255) NOT NULL,`lastName` varchar(255) NOT NULL,`password` varchar(8) NOT NULL,`userName` varchar(20) NOT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=latin1;

15.在Tomcat服务器上部署应用程序

完成上述步骤并成功构建项目后,即可准备将Java Web应用程序部署在Tomcat Server 7上。

右键单击项目,然后选择“运行方式->在服务器上运行”选项,可以将Java Web应用程序本地部署。

通过将WAR文件(右键单击项目并选择“导出为WAR文件”选项)复制到/ var / lib / tomcat7文件夹(或适当的tomcat目录),然后重新启动tomcat,可以将其远程部署到任何支持Tomcat的本地服务器上。服务器。

此应用程序可在此处进行演示: http : //ec2-23-20-137-135.compute-1.amazonaws.com : 8080/StudentEnrollmentWithSpring/

16.克隆或下载代码

如果使用git,请在此处克隆该项目的副本: https : //github.com/elizabetht/StudentEnrollmentWithSpring.git

如果不使用git,请在此处以ZIP或tar.gz文件下载项目: https : //github.com/elizabetht/StudentEnrollmentWithSpring/releases/tag/1.6

参考:我的JCG合作伙伴博客“ 我的技术实验”博客中的合作伙伴,伊丽莎白·托马斯(Elizabeth Thomas) 使用Hibernate With Spring构建Java Web应用程序 。

翻译自: https://www.javacodegeeks.com/2014/03/building-java-web-application-using-hibernate-with-spring.html

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

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

相关文章

光纤交换机常见硬件、软件故障问题介绍

现如今&#xff0c;交换机已经普及到了各办公场所&#xff0c;商场&#xff0c;学校&#xff0c;医院等等几乎所有的需求上网的地方&#xff0c;各大光纤交换机厂商也加大了研发速度&#xff0c;使得现今的设备在性能上更加优越&#xff0c;价格更加合理&#xff0c;也促使了交…

将Amazon Cognito与单页面应用程序(Vue.js)集成

在本文中&#xff0c;我们将研究使用OAuth协议通过Amazon Cognito对单页应用程序&#xff08;使用Vue.js构建&#xff09;进行身份验证。 在上一篇文章中&#xff0c;我们将服务器端应用程序与Amazon Cognito集成在一起。 搭建单页应用程序 我们将使用vue-cli创建一个空的Vuej…

光纤交换机使用方法及应用方案详解

光纤交换机是一种高速的网络传输中继设备&#xff0c;又叫做光纤通道交换机、SAN交换机&#xff0c;它较普通交换机而言&#xff0c;采用了光纤电缆作为传输介质&#xff0c;光纤传输的优点是速度快、抗干扰能力强。那么&#xff0c;光纤交换机该如何使用呢&#xff1f;接下来我…

在监控网络项目中该如何选择光纤交换机?

现在&#xff0c;随着网络技术的发展&#xff0c;在安防监控项目中&#xff0c;尤其是在远距离点位的监控中&#xff0c;我们经常会用到光纤收发器、光纤交换机。那么&#xff0c;我们在监控网络中该如何选择光纤交换机呢&#xff1f;接下来就跟随飞畅科技的小编一起来详细看看…

2019年用于自动化的5个最佳Java测试框架

几十年来&#xff0c;Java一直是开发应用程序服务器端层的首选编程语言。 尽管JUnit一直在与开发人员一起帮助他们进行自动化的单元测试&#xff0c;但是随着时间的推移和测试的发展&#xff0c;当自动化测试不断增长时&#xff0c;已经开发了许多基于Java的开源框架&#xff0…

光纤交换机主要分为哪几类?

光纤交换机是一种高速的网络传输中继设备&#xff0c;又叫做光纤通道交换机、SAN交换机&#xff0c;它较普通交换机而言&#xff0c;采用了光纤电缆作为传输介质。光纤传输的优点是速度快、抗干扰能力强。光纤交换机主要有两种&#xff0c;一是用来连接存储的FC交换机。另一种是…

运算放大器的基本电路符号

今天给大家介绍几种运放应用相关的电路。 这是运放的最基本的电路符号&#xff08;1&#xff09; 物联网应用一&#xff1a;放大器 1.反相放大器电路图&#xff08;2&#xff09; 2.同相放大器&#xff08;3&#xff09; 3.电压跟随器&#xff08;4&#xff09; 4.差分放…

工业交换机厂家有哪些,国产工业交换机品牌排行榜

近些年来&#xff0c;交换机在国内的应用很是广泛&#xff0c;但是工业交换机市场竞争异常激烈&#xff0c;光是国内光就应用很多专业生产研发交换机的厂家&#xff0c;在与国外交换机品牌的竞争中&#xff0c;国内的交换机品牌是越来越有本土的优势。那么&#xff0c;2021年国…

spring 异常捕获异常_使用Spring跟踪异常–第2部分–委托模式

spring 异常捕获异常在上一个博客中 &#xff0c;我开始谈论需要弄清您的应用程序在生产环境中是否行为异常。 我说过&#xff0c;监视应用程序的一种方法是检查其日志文件是否存在异常&#xff0c;如果发现异常&#xff0c;则采取适当的措施。 显然&#xff0c;日志文件可能会…

LoRa在智能家居当中的物联网应用

一、智能家居行业背景 原文地址&#xff1a;LoRa在智能家居当中的应用 2020年&#xff0c;中国智能家居进入AIoT赋能期&#xff0c;全面革新智能家居产品形态。从市场规模来看&#xff0c;2019年智能家居市场规模达到1530亿元左右&#xff0c;2020年将达1820亿元。从设备出货量…

飞畅科技-国内老牌工业以太网交换机品牌

现如今&#xff0c;随着中国制造2025和工业4.0的逐渐展开&#xff0c;工业交换机的市场越来越大&#xff0c;尤其是在电力&#xff0c;交通&#xff0c;及工业自动化行业&#xff0c;但是进口品牌的在国内的份额却在不断的萎缩&#xff0c;这就给国内的很多工业交换机厂家一个非…

物联网是什么?物联网的关键技术是什么?

物联网是从应用出发&#xff0c;利用互联网、无线通信网络资源进行业务信息的传送&#xff0c;是互联网、移动通信网应用的延伸&#xff0c;是自动化控制、遥控遥测及信息应用技术的综合体现。 信息革命浪潮。物联网已经在全世界得到了很大的重视&#xff0c;随着“物联网十二五…

通过Java Hipster升级Spring Security OAuth和JUnit测试

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕&#xff1f; 尝试使用Okta API进行托管身份验证&#xff0c;授权和多因素身份验证。 使用单元测试和集成测试来验证代码质量是一种很好的方式来表明您对代码的关心。 我最…

核心交换机与汇聚交换机的区别

核心交换机并不是交换机的一种类型&#xff0c;放在核心层(网络主干部分)的交换机叫核心交换机。汇聚层交换机&#xff0c;是多台接入层交换机的汇聚地点。汇聚层交换机和核心交换机在功能、特性、参数、场景等都是有所区别。接下来我们就详细介绍下核心交换机、汇聚交换机、普…

TCP服务器虚拟串口工具的MCGS开发调试教程

TCP服务器虚拟串口&#xff08;Modbus RTU&#xff09; 虚拟串口的方式不同&#xff0c;虚拟从机的连接方式也就不同&#xff0c;利用虚拟串口的TCP服务器模式虚拟串口1&#xff08;COM1&#xff09;如下&#xff1a; MCGS配置不用修改&#xff0c;只需配置仿真从机&#xff0…

虚拟串口工具MCGS开发调试的灵活应用教程

MCGS开发调试一般来说具有三种方式&#xff0c;如下所述&#xff1a; &#xff08;1&#xff09;选择使用模拟设备&#xff0c;一般来说无法直接在电脑上调试真实设备&#xff08;不带以太网型号&#xff09;&#xff0c;需要通过USB转485设备中转实现&#xff0c;在调试完成需…

工业级环网交换机是做什么的?

什么是环网交换机&#xff1a; 环网交换机是一种特殊的交换机&#xff0c;因为主流的环网交换机均为工业交换机&#xff0c;因此一般可以将其称为工业级环网交换机&#xff0c;环网交换在环网结构上有很多的优点&#xff0c;比如有冗余性、可靠性等。 环网交换机可以组建环形网…

MCGS嵌入软件配置教程

设备驱动与变量定义 为了节省流量采用手动发送&#xff0c;因此不能使用官方驱动&#xff0c;需要使用用户自定义驱动&#xff0c;这里提供百度网盘下载地址&#xff08;见评论区&#xff09;。链接&#xff1a;https://pan.baidu.com/s/1ORy2UFOlHeRCXraYKC1xUA 提取码&#…

Apache Ranger插件的美丽简洁

如果您在这里&#xff0c;您已经知道什么是Apache Ranger 。 它是管理Hadoop框架中安全性的最流行&#xff08;即使不是唯一&#xff09;的方法。 它与Active Directory&#xff0c;Kerberos和其他各种身份验证集成在一起&#xff0c;但是我认为最有趣的功能是其授权支持。 作为…

交换机出现电源故障怎么解决?

现如今&#xff0c;随着信息化的飞速发展&#xff0c;工业交换机作为信息流通的承载者&#xff0c;可以说是应用最为广泛的网络设备之一&#xff0c;其作用不言而喻&#xff0c;因此工业交换机的选择是十分重要的。但是工业交换机在长期运行过程中&#xff0c;难免会出现一些故…