Maven项目下详细的SSM整合流程

文章目录

  • 🎉SSM整合流程
    • 一、两个容器整合✨
      • 1、先准备好数据库config.properties连接、mybatis-config.xml🎊
      • 2、容器一:优先配置spring.xml文件🎊
      • 3、容器二:配置springMVC.xml文件🎊
      • 4、Tomcat整合spring容器、springMVC容器,webapp文件下的web.xml文件🎊
    • 二、一个容器整合
      • 1、 现在去掉了spring.xml文件,将spring.xml文件的内容放到springMVC🎊
      • 2、Tomcat整合springMVC容器,webapp文件下的web.xml文件🎊

🎉SSM整合流程

分为两种:两个容器整合
在这里插入图片描述
一个容器整合
在这里插入图片描述
本项目的路径参考:
在这里插入图片描述

  注意:优先maven项目的pom.xml文件里导入jar包依赖:

    <properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><aaa>4.3.8.RELEASE</aaa></properties><dependencies><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><exclusions><exclusion><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></exclusion></exclusions><version>3.19.2</version></dependency><dependency><groupId>org.dom4j</groupId><artifactId>dom4j</artifactId><version>2.0.0</version><type>pom</type><!--依赖的类型,声明引入的依赖的类型,值一般有jar、war、pom--></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!-- spring的webmvc的依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${aaa}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${aaa}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${aaa}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.3.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.3.8.RELEASE</version></dependency><!-- Mysql的依赖 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency><!-- mybatis的依赖 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><!--数据库连接池的依赖 --><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.4</version></dependency><!-- spring-mybatis的依赖 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.2</version></dependency><!-- springjdbc的依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.3.8.RELEASE</version></dependency><!-- aspectj的依赖 --><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.4</version></dependency><!-- 添加日志log4j的依赖 --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- jackson的依赖 --><!--    <dependency>--><!--      <groupId>com.fasterxml.jackson.core</groupId>--><!--      <artifactId>jackson-databind</artifactId>--><!--      <version>2.9.7</version>--><!--    </dependency>--><!-- 依赖 --><dependency><groupId>aopalliance</groupId><artifactId>aopalliance</artifactId><version>1.0</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-servlet-api</artifactId><version>8.0.28</version><scope>provided</scope><!-- 生命周期:test  --></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.0.1</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version><scope>provided</scope></dependency><!-- json依赖 --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.71</version></dependency><!--导入lombok依赖 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.8</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.3.2</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.5</version></dependency><!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version></dependency><!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.5</version></dependency><!-- https://mvnrepository.com/artifact/org.jdom/jdom2 --><dependency><groupId>org.jdom</groupId><artifactId>jdom2</artifactId><version>2.0.6</version></dependency><!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.71</version></dependency><dependency><groupId>org.testng</groupId><artifactId>testng</artifactId><version>RELEASE</version><scope>compile</scope></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.4</version></dependency><!-- redis客户端jar --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.7.3</version></dependency><!-- spring-redis实现 --><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>1.7.2.RELEASE</version></dependency><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-api</artifactId><version>0.11.2</version></dependency><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-impl</artifactId><version>0.11.2</version></dependency><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-jackson</artifactId><version>0.11.2</version></dependency></dependencies>

一、两个容器整合✨

1、先准备好数据库config.properties连接、mybatis-config.xml🎊

(1)数据库config.properties连接

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/emp?serverTimeZone=Asia/ShangHai&useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=nigx=0128

(2)mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- <properties resource="config.properties"> --><!-- </properties> --><settings><!--将表中字段的下划线自动转换为驼峰--><setting name="mapUnderscoreToCamelCase" value="true"/><setting name="logImpl" value="STDOUT_LOGGING"/><!-- 如果需要更改一级缓存的范围,可以在Mybatis的配置文件中,在下通过localCacheScope指定。 --><!-- <setting name="localCacheScope" value="STATEMENT"/> --></settings><!--  类型别名配置各个标签时,需要遵守前后顺序--><typeAliases><package name="com.pojo"/></typeAliases><!--    <typeAliases>--><!--        <typeAlias alias="user" type="com.pojo.User"></typeAlias>--><!--        <typeAlias type="com.pojo.Employee"></typeAlias>--><!--        <typeAlias type="com.pojo.Log"></typeAlias>--><!--        <typeAlias type="com.pojo.Dept"></typeAlias>--><!--    </typeAliases>--><!--  environments:配置数据库的连接环境信息,可以配置多个environment,通过default属性切换不同的environment  --><!-- <environments default="development"> --><!--     <environment id="development"> --><!--         <transactionManager type="JDBC"/> --><!--         &lt;!&ndash;数据库连接池&ndash;&gt; --><!--         <dataSource type="POOLED"> --><!--             &lt;!&ndash;数据库的连接信息&ndash;&gt; --><!--             <property name="driver" value="${driver}"/> --><!--             <property name="url" value="${url}"/> --><!--             <property name="username" value="${username}"/> --><!--             <property name="password" value="${password}"/> --><!--         </dataSource> --><!--     </environment> --><!-- </environments> --><mappers><!--加载SQL映射文件--><!--<mapper resource="nigaoxian\mapper\UserMapper.xml"/>--><!--  Mapper 代理方式,在spring容器映射过就不需要配置了--><!-- <package name="com.dao"/> --></mappers>
</configuration>

2、容器一:优先配置spring.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:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><!-- 2*3+1 --><!--扫描组件(除控制层)--><context:component-scan base-package="com.service,com.service.serviceImpl,com.interceptor,com.exception"><!-- 按照注解进行排除,标注了指定注解的组件不要扫描 --><!--        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>--><!-- 指定排除某个具体的类,按照类排除  --><!-- <context:exclude-filter type="assignable" expression="com.controller.EmpController"/> --></context:component-scan><!-- 配置数据源 --><!--引入config.properties--><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>classpath:config.properties</value></list></property></bean><!-- 配置数据参数与连接属性 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"><property name="driverClass" value="${driver}"></property><property name="maxPoolSize" value="100"></property><property name="minPoolSize" value="30"></property><property name="jdbcUrl" value="${url}"></property><property name="user" value="${username}"></property><property name="password" value="${password}"></property></bean><!-- 配置spring事务管理器 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!--开启事务的注解驱动,将使用注解 @Transactional 标识的方法或类中所有的方法进行事务关联--><tx:annotation-driven transaction-manager="transactionManager"/><!-- 配置SqlSessionFactoryBean,可以直接在Spring的IOC中获取SqlSessionFactory--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 设置MyBatis的核心配置文件的路径 --><property name="configLocation" value="classpath:mybatis-config.xml"/><!-- 设置数据源 --><property name="dataSource" ref="dataSource"/><!-- 设置类型别名,默认为类名 --><!-- <property name="typeAliasesPackage" value="com.pojo"/> --><!-- 设置映射文件所在的包,只有在映射文件的包和mapper接口的包不一致时需要设置 --><property name="mapperLocations" value="classpath:com/dao/*.xml"/><!--引入分页插件--><!-- <property name="plugins"> --><!--     <array> --><!--         <bean class="com.github.pagehelper.PageInterceptor"/> --><!--     </array> --><!-- </property> --></bean><!--配置mapper接口的扫描配置,由mybatis-spring提供,可以将指定包下所有的mapper接口创建动态代理,并将这些动态代理作为IOC容器的bean管理,可以直接在Spring的IOC中获取Mapper接口了。--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><property name="basePackage" value="com.dao"/></bean>
</beans>

3、容器二:配置springMVC.xml文件🎊

<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:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"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.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 启动mvc注解驱动 --><mvc:annotation-driven/><!-- 配置扫描的包 --><context:component-scan base-package="com.controller"/><!-- 配置视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/"></property><property name="suffix" value=".jsp"></property></bean><mvc:cors><mvc:mapping path="/**" allowed-origins="*" allowed-headers="*" allowed-methods="*" allow-credentials="false"max-age="3600"/></mvc:cors><mvc:interceptors><mvc:interceptor><mvc:mapping path="/**"/><bean id="corsInterceptor" class="com.interceptor.CORSInterceptor"/></mvc:interceptor><mvc:interceptor><mvc:mapping path="/**"/><mvc:exclude-mapping path="/login"/><mvc:exclude-mapping path="/register"/><bean id="loginInterceptor" class="com.interceptor.LoginInterceptor"/></mvc:interceptor></mvc:interceptors>
</beans>

4、Tomcat整合spring容器、springMVC容器,webapp文件下的web.xml文件🎊

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!-- tomcat整合spring --><!--配置Spring的编码过滤器--><!--配置Spring的监听器,在服务器启动的时候加载Spring的配置文件 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--设置spring配置文件自定义的位置和名称--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring.xml</param-value></context-param><!-- <filter> --><!--     <filter-name>CharacterEncodingFilter</filter-name> --><!--     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> --><!--     &lt;!&ndash;只设置这个只会处理请求的编码,两个都设置请求响应都会处理&ndash;&gt; --><!--     <init-param> --><!--         <param-name>encoding</param-name> --><!--         <param-value>UTF-8</param-value> --><!--     </init-param> --><!--     <init-param> --><!--         <param-name>forceEncoding</param-name> --><!--         <param-value>true</param-value> --><!--     </init-param> --><!-- </filter> --><!-- <filter-mapping> --><!--     <filter-name>CharacterEncodingFilter</filter-name> --><!--     <url-pattern>/*</url-pattern> --><!-- </filter-mapping> --><!-- &lt;!&ndash; 配置处理请求方式PUT和DELETE的过滤器&ndash;&gt; --><!-- <filter> --><!--     <filter-name>HiddenHttpMethodFilter</filter-name> --><!--     <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> --><!-- </filter> --><!-- <filter-mapping> --><!--     <filter-name>HiddenHttpMethodFilter</filter-name> --><!--     <url-pattern>/*</url-pattern> --><!-- </filter-mapping> --><!-- tomcat整合spring --><!-- 配置SpringMVC的前端控制器 --><servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 设置SpringMVC的配置文件的位置和名称 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springMVC.xml</param-value></init-param><!-- 将DispatcherServlet的初始化时间提前到服务器启动时--><load-on-startup>1</load-on-startup></servlet><!-- 为什么使用/,并且这里为什么会默认放行jsp?设置/是为了兜底的,因为只有一个servlet,就是默认为DispatcherServlet的servlet,需要使用这个servlet拦截请求。因为jsp底层本身就是servlet,设置多个servlet此时只映射的是DispatcherServlet--><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

二、一个容器整合

1、 现在去掉了spring.xml文件,将spring.xml文件的内容放到springMVC🎊

springMVC.xml文件如下:

<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:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"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.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 2*3+1 --><!--扫描组件(除控制层)--><context:component-scan base-package="com.service,com.service.serviceImpl,com.interceptor,com.exception"><!-- 按照注解进行排除,标注了指定注解的组件不要扫描 --><!--        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>--><!-- 指定排除某个具体的类,按照类排除  --><!-- <context:exclude-filter type="assignable" expression="com.controller.EmpController"/> --></context:component-scan><!-- 配置数据源 --><!--引入config.properties--><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>classpath:config.properties</value></list></property></bean><!-- 配置数据参数与连接属性 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"><property name="driverClass" value="${driver}"></property><property name="maxPoolSize" value="100"></property><property name="minPoolSize" value="30"></property><property name="jdbcUrl" value="${url}"></property><property name="user" value="${username}"></property><property name="password" value="${password}"></property></bean><!-- 配置spring事务管理器 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!--开启事务的注解驱动,将使用注解 @Transactional 标识的方法或类中所有的方法进行事务关联--><tx:annotation-driven transaction-manager="transactionManager"/><!-- 配置SqlSessionFactoryBean,可以直接在Spring的IOC中获取SqlSessionFactory--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 设置MyBatis的核心配置文件的路径 --><property name="configLocation" value="classpath:mybatis-config.xml"/><!-- 设置数据源 --><property name="dataSource" ref="dataSource"/><!-- 设置类型别名,默认为类名 --><!-- <property name="typeAliasesPackage" value="com.pojo"/> --><!-- 设置映射文件所在的包,只有在映射文件的包和mapper接口的包不一致时需要设置 --><property name="mapperLocations" value="classpath:com/dao/*.xml"/><!--引入分页插件--><!-- <property name="plugins"> --><!--     <array> --><!--         <bean class="com.github.pagehelper.PageInterceptor"/> --><!--     </array> --><!-- </property> --></bean><!--配置mapper接口的扫描配置,由mybatis-spring提供,可以将指定包下所有的mapper接口创建动态代理,并将这些动态代理作为IOC容器的bean管理,可以直接在Spring的IOC中获取Mapper接口了。--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><property name="basePackage" value="com.dao"/></bean><!-- 启动mvc注解驱动 --><mvc:annotation-driven/><!-- 配置扫描的包 --><context:component-scan base-package="com.controller"/><!-- 配置视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/"></property><property name="suffix" value=".jsp"></property></bean><mvc:cors><mvc:mapping path="/**" allowed-origins="*" allowed-headers="*" allowed-methods="*" allow-credentials="false"max-age="3600"/></mvc:cors><mvc:interceptors><mvc:interceptor><mvc:mapping path="/**"/><bean id="corsInterceptor" class="com.interceptor.CORSInterceptor"/></mvc:interceptor><mvc:interceptor><mvc:mapping path="/**"/><mvc:exclude-mapping path="/login"/><mvc:exclude-mapping path="/register"/><bean id="loginInterceptor" class="com.interceptor.LoginInterceptor"/></mvc:interceptor></mvc:interceptors>
</beans>

2、Tomcat整合springMVC容器,webapp文件下的web.xml文件🎊

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!-- tomcat整合springMVC --><!-- 配置SpringMVC的前端控制器 --><servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 设置SpringMVC的配置文件的位置和名称 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springMVC.xml</param-value></init-param><!-- 将DispatcherServlet的初始化时间提前到服务器启动时--><load-on-startup>1</load-on-startup></servlet><!-- 为什么使用/,并且这里为什么会默认放行jsp?设置/是为了兜底的,因为只有一个servlet,就是默认为DispatcherServlet的servlet,需要使用这个servlet拦截请求。因为jsp底层本身就是servlet,设置多个servlet此时只映射的是DispatcherServlet--><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

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

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

相关文章

解释PCIe MSI 中断要求中断向量连续?PCIe 规范里并没有明确指出

MSI 向量必须连续&#xff1f; 前言 MSI 物理条件&#xff0c;MSI 中断产生的逻辑是RC初始化的时候&#xff0c;由软件将配置写入到 EP 的 2 个寄存器中&#xff0c;这两个寄存器一个指示的是地址 Message Address&#xff0c;一个指示的是数据 Message Data。当 EP 试图触发…

你再不学Git就来不及了!!!

其他系列文章导航 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 版本控制 什么是版本控制 为什么要版本控制 一、认识 Git 1.1Git 简史 1.2Git 与其他版本管理系统的主要区别 1.3Git 的三种状态 二、Git 使用快速入门 2.1获…

springboot使用redis缓存乱码(key或者 value 乱码)一招解决

如果查看redis中的值是这样 创建一个配置类就可以解决 package com.deka.config;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; i…

CPU+GPU多样化算力,ZStack Cloud助力游戏精酿核心业务上云

游戏精酿通过ZStack Cloud云平台提供高性能、高可用的云主机、云存储和云网络&#xff1b;前期通过超融合架构快速构建云基础设施&#xff0c;来支持Jira、Redis等关键业务&#xff1b;并实现对原有私有云平台业务的替代&#xff0c;按需将原有私有云业务滚动迁移到ZStack Clou…

移动端浏览器 jquery 获取 pdf blob文件流 预览pdf

最近遇到一个需求&#xff0c;一个古早的移动端 juery 项目要求做一个页面&#xff0c;从接口获取 pdf 文件流&#xff0c;然后预览出来 这里使用第三方工具&#xff1a;pdf.js 代码如下&#xff1a; // 引入相关文件<script src"../js/pdf.js" type"text…

N_1 验证密码

N_1 验证密码 题目 设计一个用户密码验证程序&#xff0c;要求密码输入只有3次机会&#xff0c;且密码中不能包含”*”字符。 分析 需要考虑3个问题&#xff1a;验证次数、特殊字符和正误密码判断&#xff1b;验证次数需要使用循环&#xff0c;3个问题需要用到分支结构&…

java 系统属性和环境属性

Java系统属性和环境属性都是与Java应用程序相关的参数&#xff0c;但它们有以下区别&#xff1a; 系统属性是由Java虚拟机&#xff08;JVM&#xff09;设置的&#xff0c;而环境属性是由操作系统设置的。 系统属性是以“-D”开头的命令行参数传递给JVM的&#xff0c;而环境属性…

深入理解Spring AOP的工作流程

文章目录 引言什么是AOP&#xff1f;Spring AOP的工作原理1. JDK动态代理2. CGLIB代理 Spring AOP的注解方式Aspect注解EnableAspectJAutoProxy注解 Spring AOP的工作流程拓展应用1. 自定义注解2. 异常处理3. 切面优先级 结论 &#x1f389;深入理解Spring AOP的工作流程 ☆* o…

关于运行软件程序出现vcruntime140.dll丢失的修复教程-解决方案

vcruntime140.dll是Microsoft Visual C库文件的一部分&#xff0c;用于支持Windows操作系统上的应用程序。如果找不到或丢失了这个文件&#xff0c;可能会导致某些应用程序无法正常运行。下面是关于vcruntime140.dll丢失的5个修复方法&#xff0c;以及vcruntime140.dll文件属性…

Python基础教程之分支结构详解

文章目录 一、分支结构二、单分支结构三、双分支结构四、多分支结构五、嵌套分支结构六、三元表达式七、条件测试关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③P…

Elasticsearch基础优化

分片策略 分片和副本得设计为ES提供支付分布式和故障转移得特性&#xff0c;但不意味着分片和副本是可以无限分配&#xff0c; 而且索引得分片完成分配后由于索引得路由机制&#xff0c;不能重新修改分片数&#xff08;副本数可以动态修改&#xff09; 一个分片得底层为一个l…

python之pyqt专栏2-项目文件解析

项目结构 在上一篇文章python之pyqt专栏1-环境搭建&#xff0c;创建新的pyqt项目&#xff0c;下面我们来看一下这个项目下的文件。 从下面的文件结构图可以看到&#xff0c;该项目下有3个文件&#xff0c;untitled.ui,untitled.py 以及main.py。 QtDesigner可以UI界面的方式&am…

Feign接口请求返回异常 no suitable HttpMessageConvert found for response type

问题场景&#xff1a; 后端调用feign接口请求, 接口返回异常, no suitable HttpMessageConvert found for response type 问题描述 报错异常如下&#xff1a; //根据图片特征 去查询人员信息ResultVo<List> personVos ipbdFaceLibPersonApi.queryFacePersonByFeatur…

华为云之SFS弹性文件服务使用体验

华为云之SFS弹性文件服务使用体验 一、本次实践介绍1.1 实践环境简介1.2 本次实践目的 二、SFS弹性文件服务介绍2.1 SFS弹性文件服务简介2.2 SFS弹性文件服务特点 三、购买ECS弹性云服务器3.1 购买ECS弹性云服务器3.2 查看ECS弹性云服务器状态3.3 远程连接ECS3.4 检查操作系统版…

package.json 中的版本号,符号 ~ 与 ^ 的区别及其他符号的含义

"element-ui": "^2.15.1", 版本号&#xff1a; 2.15.1 对应 x.y.z z &#xff1a;表示一些小的bugfix, 更改z的号&#xff1b;(修复补丁-z)&#xff08;~符号&#xff09; y &#xff1a;表示一些大的版本更改&#xff0c;比如一些API的变化&#xff1b;(…

迭代器模式 (Iterator Pattern)

定义 迭代器模式&#xff08;Iterator Pattern&#xff09;是一种行为型设计模式&#xff0c;用于顺序访问集合对象的元素&#xff0c;而无需知道集合对象的底层表示。迭代器模式将遍历集合的责任从集合对象转移到迭代器对象上&#xff0c;这简化了集合接口和实现&#xff0c;…

计算机应用基础_错题集_基础知识---网络教育统考工作笔记006

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、基础知识部分错题集总结前言 计算机应用基础统考,错题集总结 一、基础知识部分 基础知识部分 2、微处理器芯片的位数即指______。 A.速度 B.字长 C.

Unity Android FireBase bugly报错查询

报错如下图&#xff0c;注意&#xff0c;标红的三处 使用的il2cpp和架构是arm64-v8a 那我们就可以根据这些去找对应的符号表&#xff0c;在unity安装目录下 Unity2020.3.33f1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Symbols\arm64-v8a 找到l…

Tomcat注册为服务后,如何配置Tomcat内存大小

前提条件&#xff1a;tomcat已经注册为服务。 1.winR,输入regedit打开注册表 2.找到Tomcat注册表路径&#xff1a; HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Tomcat80603.找到jvm内存配置路径&#xff1a; HKEY_LOCAL_MACHINE\SOFTW…

PTA-6-312 使用多态实现图书馆计算罚金功能

题目&#xff1a; 图书馆提供给读者借阅服务&#xff0c;包括借阅书籍及音像制品。如果借阅超时需要缴纳罚金。对于不同类型的书籍和音像制品罚款规则不同。 成人书籍:允许借阅的时间是21天&#xff0c;每超时1天&#xff0c;需要缴纳罚金2元;如果超时3天以上&#xff0c;超出的…